Codename One
{{Use mdy dates|date=October 2020}}
{{Multiple issues|
{{advert|date=March 2018}}
{{third-party|date=June 2013}}
}}
{{Infobox software
| name = Codename One
| logo = Codename One.png
| logo size = 100px
| author = Shai Almog, Chen Fishbein
| developer = Shai Almog, Chen Fishbein, Steve Hannah
| released = {{Start date and age|2012}}
| platform = Cross-platform, Web
| repo = https://github.com/codenameone/CodenameOne
| programming language = Java, Kotlin
| latest release version = 7.0 (Video)
| latest release date = {{Start date and age|2021|02|5}}{{cite web|url=https://github.com/codenameone/CodenameOne/releases/tag/version7|title=Codename One 7.0 - Video|website=GitHub|access-date=2021-02-05}}
| genre = Application framework, Software framework, Mobile development framework
| license = GPL 2.0 with the Classpath exception{{cite web|url=https://github.com/codenameone/CodenameOne/blob/master/LICENSE|title=LICENSE file in git repository|website=GitHub }}
| website = {{url|https://codenameone.com}}
}}
Codename One is an open-source cross-platform framework aiming to provide write once, run anywhere code for various mobile and desktop operating systems (like Android, iOS, Windows, MacOS, 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.{{Cite web|url=http://codenameone.blogspot.com/2012/01/what-is-codename-one.html|title=What Is Codename One|access-date=June 18, 2013|archive-date=October 24, 2012|archive-url=https://web.archive.org/web/20121024000237/http://codenameone.blogspot.com/2012/01/what-is-codename-one.html|url-status=live}}{{Cite web|url=https://www.scribd.com/doc/95684851/Codename-One-Developers-Guide|title=Codename One Developers Guide | Xcode | Ios|website=Scribd}}
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.{{Cite web|url=https://stackoverflow.com/questions/10639766/how-does-codename-one-work|title=mobile - How does Codename One work?|website=Stack Overflow}}
Architecture
Developers using Codename One build their app using various Java IDEs like Eclipse, NetBeans or IntelliJ IDEA; they need the Codename One plugin to be installed on either IDE.{{Cite web|url=http://www.codenameone.com/download.html|title=Download Java IOS Development and Mobile App Plugins - Codename One|website=www.codenameone.com|access-date=June 18, 2013|archive-date=June 21, 2013|archive-url=https://web.archive.org/web/20130621055341/http://www.codenameone.com/download.html|url-status=live}} 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.{{Cite web|url=http://www.codenameone.com/how-do-i.html|title=How Do I? - Codename One|website=www.codenameone.com|access-date=June 18, 2013|archive-date=June 21, 2013|archive-url=https://web.archive.org/web/20130621060702/http://www.codenameone.com/how-do-i.html|url-status=live}}{{Cite web|url=https://stackoverflow.com/questions/10639766/how-does-codename-one-work/10646336|title=mobile - How does Codename One work?|website=Stack Overflow|access-date=August 13, 2023|archive-date=December 28, 2022|archive-url=https://web.archive.org/web/20221228082344/https://stackoverflow.com/questions/10639766/how-does-codename-one-work/10646336|url-status=live}}
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.{{Cite web|url=http://www.codenameone.com/build-server.html|title=Cross Platform IOS, Iphone Mobile App Development Using Java|website=www.codenameone.com|access-date=June 18, 2013|archive-date=June 20, 2013|archive-url=https://web.archive.org/web/20130620133956/http://www.codenameone.com/build-server.html|url-status=live}} 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.{{Cite web|url=http://codenameone.com/faq.html|title=FAQ - Codename One|website=codenameone.com|access-date=June 18, 2013|archive-date=May 22, 2013|archive-url=https://web.archive.org/web/20130522144145/http://www.codenameone.com/faq.html|url-status=live}}{{Cite web|url=https://stackoverflow.com/tags/codenameone/info|title='codenameone' tag wiki|website=Stack Overflow|access-date=July 25, 2016|archive-date=August 26, 2016|archive-url=https://web.archive.org/web/20160826034412/http://stackoverflow.com/tags/codenameone/info|url-status=live}}
Codename One also supports the ability to use an offline "in-house" build cloud, which removes the use of Codename One build servers completely.{{Cite web|url=http://www.codenameone.com/corporate-server.html|title=Corporate Server - Codename One|website=www.codenameone.com|access-date=October 25, 2014|archive-date=October 22, 2014|archive-url=https://web.archive.org/web/20141022173929/http://www.codenameone.com/corporate-server.html|url-status=live}}
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.{{Cite web|url=http://www.codenameone.com/blog/understanding-peer-native-components-why-codename-one-is-so-portable.html|title=Understanding Peer (native) Components & Why Codename One is so portable - Codename One|website=www.codenameone.com|date=May 2, 2014}}
Open source
The Codename One project is a combination of open source and software as a service. 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.{{Cite web|url=https://github.com/codenameone/CodenameOne|title=Write once run anywhere native mobile apps using with Java 8 or Kotlin. Supports iOS (iPhone/iPad), Android, Windows (UWP) & others: codenameone/CodenameOne|date=October 9, 2019|via=GitHub}}
Community
Codename One claimed 200,000 downloads of its SDK as of release 1.1 on May 20, 2013.{{Cite press release|url=http://www.sbwire.com/press-releases/with-200000-sdk-downloads-mobile-development-platform-codename-one-announces-version-11-253990.htm|title=With 200,000 SDK Downloads, Mobile Development Platform Codename One Announces Version 1.1|date=May 20, 2013|website=SBWire}} It has since released version 3.0 and claims 180 million applications installed on devices and 40,000 developers using the tool.{{Cite web|url=https://www.codenameone.com/|title=Cross Platform IOS, Iphone Mobile App Development Using Java|website=www.codenameone.com}}
See also
{{Portal|Free and open-source software}}