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;3 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]

Contents

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

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

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.

A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific to a hardware platform and operating system combination. To create applications with advanced functionalities such as advertisements, push notifications, etc; most application software developers use specific software development kits.

<span class="mw-page-title-main">Xcode</span> IDE including tools for developing software for Apple platforms

Xcode is Apple's integrated development environment (IDE) for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, tvOS, and visionOS. It was initially released in late 2003; the latest stable release is version 15, released on September 18, 2023, and is available free of charge via the Mac App Store and the Apple Developer website. Registered developers can also download preview releases and prior versions of the suite through the Apple Developer website. Xcode includes command-line tools that enable UNIX-style development via the Terminal app in macOS. They can also be downloaded and installed without the GUI.

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.

iOS SDK Software development kit for iOS

The iOS SDK, formerly the iPhone SDK, is a software development kit (SDK) developed by Apple Inc. The kit allows for the development of mobile apps on Apple's iOS and iPadOS operating systems.

The Android SDK is a software development kit for the Android software ecosystem that includes a comprehensive set of development tools. These include a debugger, libraries, a handset emulator based on QEMU, documentation, sample code, and tutorials. The SDK is part of the official Android Studio IDE but its various tools and resources can be used independently.

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">MoSync</span>

MoSync is a discontinued free and open-source software development kit (SDK) for mobile applications. It is integrated with the Eclipse development environment. The framework produces native mobile applications for multiple platforms using C/C++, HTML5 scripting and any combination thereof. The target group for MoSync are both web developers looking to enter the mobile space, as well as the ordinary PC/Mac desktop developer with knowledge in C/C++ development.

Titanium SDK is an open-source framework that allows the creation of native mobile applications on platforms iOS and Android from a single JavaScript codebase. It is presently developed by non-profit software foundation TiDev, Inc.

<span class="mw-page-title-main">Android software development</span> Process of writing software for Android operating system

Android software development is the process by which applications are created for devices running the Android operating system. Google states that "Android apps can be written using Kotlin, Java, and C++ languages" using the Android software development kit (SDK), while using other languages is also possible. All non-Java virtual machine (JVM) languages, such as Go, JavaScript, C, C++ or assembly, need the help of JVM language code, that may be supplied by tools, likely with restricted API support. Some programming languages and tools allow cross-platform app support. Third party tools, development environments, and language support have also continued to evolve and expand since the initial SDK was released in 2008. The official Android app distribution mechanism to end users is Google Play; it also allows staged gradual app release, as well as distribution of pre-release app versions to testers.

<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.

Dart is a programming language designed by Lars Bak and Kasper Lund and developed by Google. It can be used to develop web and mobile apps as well as server and desktop applications.

<span class="mw-page-title-main">Mono (software)</span> Computer software project

Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many software systems.

<span class="mw-page-title-main">Ionic (mobile app framework)</span> Open-source framework to develop hybrid mobile apps

Ionic is an open-source UI toolkit for building cross-platform mobile, web, and desktop applications using web technologies such as HTML, CSS, and JavaScript/TypeScript. It provides a set of pre-designed UI components and tools for building high-quality, interactive applications. Ionic was originally built as a complete open-source SDK for hybrid mobile app development created by Max Lynch, Ben Sperry, and Adam Bradley of Drifty Co. in 2013. The original version was released in 2013 and built on top of AngularJS and Apache Cordova. However, the latest release was re-built as a set of Web Components using StencilJS, allowing the user to choose any user interface framework, such as Angular, React or Vue.js. It also allows the use of Ionic components with no user interface framework at all. Ionic provides tools and services for developing hybrid mobile, desktop, and progressive web apps based on modern web development technologies and practices, using Web technologies like CSS, HTML5, and Sass. In particular, mobile apps can be built with these Web technologies and then distributed through native app stores to be installed on devices by utilizing Cordova or Capacitor.

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.

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.

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, Flutter was released in May 2017. Flutter is used internally by Google in apps such as Google Pay and Google Earth as well as by other software developers including ByteDance and Alibaba.

References

  1. "Codename One 7.0 - Video". GitHub . Retrieved February 5, 2021.
  2. "LICENSE file in git repository". GitHub .
  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.