Codename One is an
open-source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
cross-platform framework aiming to provide
write once, run anywhere
''Write once, run anywhere'' (WORA), or sometimes ''Write once, run everywhere'' (WORE), was a 1995 slogan created by Sun Microsystems to illustrate the cross-platform benefits of the Java (programming language), Java programming language. Ideally, ...
code for various
mobile and desktop operating systems (like
Android,
iOS
Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
,
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
,
MacOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
, and others). It was created by the co-founders of the
Lightweight User Interface Toolkit (LWUIT) project, Chen Fishbein and Shai Almog, and was first announced on January 13, 2012.
Codename One built upon the LWUIT platform abstraction by adding a simulator and a set of cloud-based build servers that build native applications from the
Java bytecode
Java bytecode is the instruction set of the Java virtual machine (JVM), the language to which Java and other JVM-compatible source code is compiled. Each instruction is represented by a single byte, hence the name bytecode, making it a compact ...
.
Architecture
Developers using Codename One build their app using various Java
IDEs like
Eclipse
An eclipse is an astronomical event which occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ...
,
NetBeans
NetBeans is an integrated development environment (IDE) for Java (programming language), Java. NetBeans allows applications to be developed from a set of modular software components called ''modules''. NetBeans runs on Microsoft Windows, Windows, ...
or
IntelliJ IDEA
IntelliJ IDEA () is an integrated development environment (IDE) written in Java for developing computer software written in Java, Kotlin, Groovy, and other JVM-based languages. It is developed by JetBrains (formerly known as IntelliJ) and is a ...
; they need the Codename One plugin to be installed on either IDE. Applications can be created either via the GUI builder tool or via code using standard Java. Running/debugging the application is possible via the standard IDE tools and the Codename One simulator.
To build a native application, developers sign in and register with the Codename One build server. They then send builds to the cloud based build server. Then they can download the native app from the build server to run on the device or submit it to the store. Since the build server performs static translation of the code into a native application, it is no longer required after the application has been compiled.
Codename One also supports the ability to use an offline "in-house" build cloud, which removes the use of Codename One build servers completely.
Native
The developers of Codename One define the platform as a native code generator but clarify that native widgets are usually not used to render the user interfaces of Codename One applications. This allows for great portability but has also come under fire from some critics of the lightweight approach.
Open source
The Codename One project is a combination of
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
and
software as a service
Software as a service (SaaS ) is a cloud computing service model where the provider offers use of application software to a client and manages all needed physical and software resources. SaaS is usually accessed via a web application. Unlike o ...
. Most of the client-side code is open source, including the iOS, Android, Windows, JavaScript, RIM and
J2ME ports.
The server build code and the Codename One LIVE! Tool are proprietary.
Community
Codename One claimed 200,000 downloads of its SDK as of release 1.1 on May 20, 2013. It has since released version 3.0 and claims 180 million applications installed on devices and 40,000 developers using the tool.
See also
*
React Native
*
Flutter (software)
Flutter is an open-source UI software development kit created by Google. It can be used to develop cross platform applications from a single codebase for the web, Fuchsia, Android, iOS, Linux, macOS, and Windows. First described in 2015, Flut ...
References
{{Reflist
Software frameworks
Mobile software development
Mobile software programming tools
Cross-platform mobile software
Cross-platform software
Java platform
Java development tools