The smartphone market is fragmenting in massive proportions. iPhone had the first mover advantage in the smartphone race. But consistent updates and device strategy by Google pivoted Android to #1 spot in the smartphone race. Windows phone although not anywhere near iOS or Android in terms of numbers, is still used by Microsoft loyalists.
This poses a difficult scenario for developers, where they have to code their apps natively for all major platforms. This is sluggish and not at all budget friendly. This is why a breed of cross-platform mobile app development frameworks have sprung up. Xamarin is a longstanding horse that lets you write a C# code and run in natively on iOS and Android. There is another framework called ‘Codename One’ which uses Java. They all follow the WORA (Write Once, Run Anywhere) concept. These frameworks promise a flexible and rapid route to app development.
Developers don’t just consider developing apps faster and adding a whole lot of features to it, but also expect wider audience reach when it comes to building a successful mobile app. And options like Xamarin and Codename One makes it difficult for them to figure out the best framework and settle down for one. So, take a look at the background of each cross-platform framework and thereafter a detailed comparison among them.
Xamarin: Xamarin was launched by Nat Friedman and Miguel de Icaza in 2011. Initially, the cross-platform Xamarin application development enabled developers to create native iOS apps in C# with garbage collection. It later contributed a number of updates including a Mac version and version 2.0 that included Xamarin Studio and integration with Visual Studio. In 2016, Microsoft acquired Xamarin and open-sourced it’s SDK.
Codename One: Codename One was developed by Chen Fishbein and Shai Almog, co-founders of the LWUIT project. It was first announced in 2012 as a cross-device platform for developers to write apps in Java for all device platforms like iPhone/iPad, Android, Windows Phone 7 & 8, Blackberry, Windows Desktop, J2ME devices, Mac OS, and Web.
|Programming Language||With Xamarin, you can write apps in C#. C# is a decent language but alienated to most popular mobile platforms.||Codename One is Java based. |
Java being native to Android performs better if the UI widgets are written in Java. While if they are written in C#, the performance may slow down.
|IDE (Integrated Development Environment)||Xamarin includes Visual Studio/Xamarin Studio.||Codename One includes Eclipse, NetBeans, or IntelliJ IDEA. As all three IDE are Java based, they include everything you may require to develop great applications.|
|Cloud Build||In Xamarin, it is important to have the knowledge of Android activity API for building a Xamarin Android App and ViewController for building a Xamarin iOS app. You also require Mac and Windows for full OS support.||Codename One has unique build capacity. You can use it’s servers (Macs for iOS, Windows machines for Windows) to build a native app. You can create native iOS and Windows apps directly from your Mac or Linux machines.|
|Widgets||Xamarin uses heavyweight widgets and exposes the underlying UI API to developers. It also supports Xamarin Forms that use XAML to enable maximum UI code sharing across platforms.||Codename One uses lightweight widgets. It frames a hierarchy of the components but allows to embed the native widgets for specific (HTML, media, text, etc.) requirements.|
If you’re a fan of C# and want to write a native app with it, you will have to deal with the compelling platform differences. But if you’re familiar with Java, then Codename One is a great option.
Rishabh Software specializes in developing cross platform mobile apps as per client requirement. Learn about our approach to developing an internet radio mobile app using Xamarin & Azure.