Codename One Adds Support for Java Apps to Target the Universal Windows Platform
Codename One, a popular app development environment that allows Java to be used for a variety of platforms, can now also target the Universal Windows Platform. This will allow Java developers to target any device where Windows 10 is installed- whether phone, table or desktop- and raises the number of targetable platforms to eight.
In the world of mobile development, with a fragmented market of several competing platforms, developers often have to choose between two opposite options: develop native applications for each of the target platforms (iOS, Android, Windows Phone, etc.), providing an optimum user experience at the expense of higher development and maintenance cost, or develop a single solution for all platforms, usually in the form of a web application, making better use of time and resources but giving up the particular advantages of each different platform. At a middle point between these two options, there are tools like Codename One or Appcelerator, which attempt to provide a unified development experience while making use of some platform-specific capabilities.
Codename One makes use of IKVM.NET, an implementation of Java for Mono and the .NET Framework, to be able to target UWP. IKVM includes a .NET implementation of the JVM and the Java class libraries, together with tools for interoperability between Java and .NET. When targeting UWP, Codename One will compile and pack the Java application together with IKVM and configuration settings specific to Windows 10; this may not be as optimum as developing the application directly in .NET, but has the advantage of reusing the same source code.
Whether this approach will become mainstream remains to be seen. Although the argument of being able to target a myriad of platforms with the same source code sounds compelling, and judging by reactions to previous releases of Codename One, there seems to be a common sentiment among users in the community having very high expectations of an app, and developers tend to conclude that the only way to meet such expectations is by developing the app natively. If nothing else, making it easy to port existing Java apps into UWP will probably boost the number of apps available for Windows 10.