Codename One

Last updated

Codename One
Original author(s) Shai Almog, Chen Fishbein
Developer(s) Shai Almog, Chen Fishbein, Steve Hannah
Initial release2012;12 years ago (2012)
Stable release
7.0 (Video) / February 5, 2021;2 years ago (2021-02-05) [1]
Repository https://github.com/codenameone/CodenameOne
Written in Java, Kotlin
Platform Cross-platform, Web
Type Application framework, Software framework, Mobile development framework
License GPL 2.0 with the Classpath exception [2]
Website 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. [3] [4] It was described at the time by the authors as "a cross-device platform that allows you to write your code once in Java and have it work on all devices specifically: iPhone/iPad, Android, Blackberry, Windows Phone 7 and 8, J2ME devices, Windows Desktop, Mac OS, and Web. The biggest goals for the project are ease of use/RAD (rapid application development), deep integration with the native platform and speed."[ citation needed ]

Contents

Codename One took the LWUIT platform abstraction and extended it by adding a simulator and a set of cloud-based build servers that build the actual native applications from the Java bytecode. [5]

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. [6] 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. [7] [8]

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. [9] 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. [10] [11]

Codename One also supports the ability to use an offline "in-house" build cloud which removes the use of Codename One build servers completely. [12] This is important for governments and other businesses, which may have regulatory requirements that preclude the use of the cloud.

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. [13]

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. [10] The server build code and the Codename One LIVE! Tool are proprietary. [14]

Community

Codename One claimed 200,000 downloads of its SDK as of release 1.1 on May 20, 2013. [15] It has since released version 3.0 and claims 180 million applications installed on devices and 40,000 developers using the tool. [16]

See also

Related Research Articles

Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices. Java ME was formerly known as Java 2 Platform, Micro Edition or J2ME. As of December 22, 2006, the Java ME source code is licensed under the GNU General Public License, and is released under the project name phoneME.

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

In software engineering, a compatibility layer is an interface that allows binaries for a legacy or foreign system to run on a host system. This translates system calls for the foreign system into native system calls for the host system. With some libraries for the foreign system, this will often be sufficient to run foreign binaries on the host system. A hardware compatibility layer consists of tools that allow hardware emulation.

Mobile app development is the act or process by which a mobile app is developed for one or more mobile devices, which can include personal digital assistants (PDA), enterprise digital assistants (EDA), or mobile phones. Such software applications are specifically designed to run on mobile devices, taking numerous hardware constraints into consideration. Common constraints include CPU architecture and speeds, available memory (RAM), limited data storage capacities, and considerable variation in displays and input methods. These applications can be pre-installed on phones during manufacturing or delivered as web applications, using server-side or client-side processing to provide an "application-like" experience within a web browser.

<span class="mw-page-title-main">Adobe AIR</span> Cross-platform runtime system for building rich web applications

Adobe AIR is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile applications, programmed using Adobe Animate, ActionScript, and optionally Apache Flex. It was originally released in 2008. The runtime supports installable applications on Windows, macOS, and mobile operating systems, including Android, iOS, and BlackBerry Tablet OS.

<span class="mw-page-title-main">UC Browser</span> Chinese web browser developed by UCWeb Inc

UC Browser is a web browser developed by mobile internet company UCWeb, a subsidiary of the Alibaba Group. It was the most popular mobile browser in India and Indonesia, and the second most popular one in China as of 2017. Its world-wide browser share as of May 2022 is 0.86% overall according to StatCounter.

NS Basic is a family of development tools developed and commercially marketed by NSB Corporation in Toronto, Ontario, Canada for iOS, Android, Microsoft Windows, MacOS, Linux, BlackBerry OS, WebOS, Newton OS, Palm OS, Windows CE and Windows Mobile.

A mobile development framework is a software framework that is designed to support mobile app development. It is a software library that provides a fundamental structure to support the development of applications for a specific environment.

Apache Cordova is a mobile application development framework created by Nitobi. Adobe Systems purchased Nitobi in 2011, rebranded it as PhoneGap, and later released an open-source version of the software called Apache Cordova. Apache Cordova enables software programmers to build hybrid web applications for mobile devices using CSS3, HTML5, and JavaScript, instead of relying on platform-specific APIs like those in Android, iOS, or Windows Phone. It enables the wrapping up of CSS, HTML, and JavaScript code depending on the platform of the device. It extends the features of HTML and JavaScript to work with the device. The resulting applications are hybrid, meaning that they are neither truly native mobile application nor purely Web-based. They are not native because all layout rendering is done via Web views instead of the platform's native UI framework. They are not Web apps because they are packaged as apps for distribution and have access to native device APIs. Mixing native and hybrid code snippets has been possible since version 1.9.

<span class="mw-page-title-main">RhoMobile Suite</span>

RhoMobile Suite, based on the Rhodes open source framework, is a set of development tools for creating data-centric, cross-platform, native mobile consumer and enterprise applications. It allows developers to build native mobile apps using web technologies, such as CSS3, HTML5, JavaScript and Ruby. Developers can deploy RhoMobile Suite to write an app once and run it on the most-used operating systems, including iOS, Android, Windows Phone, Windows Mobile, Windows CE, Windows 10 Mobile and Windows Desktop. Developers control how apps behave on different devices. RhoMobile Suite consists of a set of tools for building, testing, debugging, integrating, deploying and managing consumer and enterprise apps. It consists of the products Rhodes, RhoElements, RhoStudio, RhoConnect, and RhoGallery, and includes a built-in Model View Controller pattern, an Object Relational Mapper for data intensive apps, integrated data synchronization, and a broad API set. These mobile development services are offered in the cloud and include hosted build, synchronization and application management.

Smartface is a mobile technology company focusing on enterprise mobility in the cloud for mobile transformation in enterprises. Smartface is headquartered in Palo Alto with offices in New Jersey, Istanbul and Dubai.

<span class="mw-page-title-main">Xamarin</span> American software company

Xamarin is a Microsoft-owned San Francisco-based software company founded in May 2011 by the engineers that created Mono, Xamarin.Android and Xamarin.iOS, which are cross-platform implementations of the Common Language Infrastructure (CLI) and Common Language Specifications.

A mobile application or app is a computer program or software application designed to run on a mobile device such as a phone, tablet, or watch. Mobile applications often stand in contrast to desktop applications which are designed to run on desktop computers, and web applications which run in mobile web browsers rather than directly on the mobile device.

<span class="mw-page-title-main">Xojo</span> Programming environment and programming language

The Xojo programming environment and programming language is developed and commercially marketed by Xojo, Inc. of Austin, Texas for software development targeting macOS, Microsoft Windows, Linux, iOS, Android, the Web and Raspberry Pi. Xojo uses a proprietary object-oriented language.

Crosswalk Project was an open-source web app runtime built with the latest releases of Chromium and Blink from Google. The project was founded by Intel's Open Source Technology Center in September 2013.

Universal Windows Platform (UWP) is a computing platform created by Microsoft and introduced in Windows 10. The purpose of this platform is to help develop universal apps that run on Windows 10, Windows 10 Mobile (discontinued), Windows 11, Xbox One, Xbox Series X/S, and HoloLens without the need to be rewritten for each. It supports Windows app development using C++, C#, VB.NET, and XAML. The API is implemented in C++, and supported in C++, VB.NET, C#, F# and JavaScript. Designed as an extension to the Windows Runtime (WinRT) platform introduced in Windows Server 2012 and Windows 8, UWP allows developers to create apps that will potentially run on multiple types of devices.

<span class="mw-page-title-main">React Native</span> Open-source mobile application framework

React Native is an open-source UI software framework created by Meta Platforms, Inc. It is used to develop applications for Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP by enabling developers to use the React framework along with native platform capabilities. It is used to develop the Android and iOS applications at Facebook, Microsoft, and Shopify. It is also being used to develop virtual reality applications at Oculus.

NativeScript is an open-source framework to develop mobile apps on the iOS and Android platforms. It was originally conceived and developed by Progress. At the end of 2019 responsibility for the NativeScript project was taken over by long-time Progress partner, nStudio. In December 2020 nStudio also oversaw the induction of NativeScript into OpenJS Foundation as an Incubating Project. NativeScript apps are built using JavaScript, or by using any programming language that transpiles to JavaScript, such as TypeScript. NativeScript supports the Angular and Vue JavaScript frameworks. Mobile applications built with NativeScript result in fully native apps, which use the same APIs as if they were developed in Xcode or Android Studio. Additionally, software developers can re-purpose third-party libraries from CocoaPods, Maven, and npm.js in their mobile applications without the need for wrappers.

Firebase Cloud Messaging (FCM), formerly known as Google Cloud Messaging (GCM), is a cross-platform cloud service for messages and notifications for Android, iOS, and web applications, which as of May 2023 can be used at no cost. Firebase Cloud Messaging allows third-party application developers to send notifications or messages from servers hosted by FCM to users of the platform or end users.

This page details the history of the programming language and software product Delphi.

References

  1. "Codename One 7.0 - Video". GitHub . Retrieved February 5, 2021.
  2. "LICENSE file in git repository".
  3. "What Is Codename One". Archived from the original on October 24, 2012. Retrieved June 18, 2013.
  4. "Codename One Developers Guide | Xcode | Ios". Scribd.
  5. "mobile - How does Codename One work?". Stack Overflow.
  6. "Download Java IOS Development and Mobile App Plugins - Codename One". www.codenameone.com. Archived from the original on June 21, 2013. Retrieved June 18, 2013.
  7. "How Do I? - Codename One". www.codenameone.com. Archived from the original on June 21, 2013. Retrieved June 18, 2013.
  8. "mobile - How does Codename One work?". Stack Overflow. Archived from the original on December 28, 2022. Retrieved August 13, 2023.
  9. "Cross Platform IOS, Iphone Mobile App Development Using Java". www.codenameone.com. Archived from the original on June 20, 2013. Retrieved June 18, 2013.
  10. 1 2 "FAQ - Codename One". codenameone.com. Archived from the original on May 22, 2013. Retrieved June 18, 2013.
  11. "'codenameone' tag wiki". Stack Overflow. Archived from the original on August 26, 2016. Retrieved July 25, 2016.
  12. "Corporate Server - Codename One". www.codenameone.com. Archived from the original on October 22, 2014. Retrieved October 25, 2014.
  13. "Understanding Peer (native) Components & Why Codename One is so portable - Codename One". www.codenameone.com. May 2, 2014.
  14. "Write once run anywhere native mobile apps using with Java 8 or Kotlin. Supports iOS (iPhone/iPad), Android, Windows (UWP) & others: codenameone/CodenameOne". October 9, 2019 via GitHub.
  15. "With 200,000 SDK Downloads, Mobile Development Platform Codename One Announces Version 1.1". SBWire (Press release). May 20, 2013.
  16. "Cross Platform IOS, Iphone Mobile App Development Using Java". www.codenameone.com.