Trending in the mobile application development world are cross-platform mobile apps. There are a great many tools and frameworks available for this specific purpose. This article offers a selection of what the author considers the five best cross-platform app development tools. A word of caution though—some of these tools come with certain strings attached.
With the increasing number of smartphones and tablets being used all over the world, mobile app development is becoming a major attraction among technologists, developers, enterprises and even everyday users. Android and iOS have become the main platforms for smartphones. With the aim of providing all sorts of services and improving business processes, companies today focus on creating the most effective and easy-to-use applications on smartphones.
The current requirements for mobile application development are cross-platform tools (CPTs), which enable developers to build apps that can be supported on both Android and iOS platforms.
Today, we have numerous CPTs available, but every development platform has its pros and cons. Ultimately, which CPT the developer chooses depends on the needs and goals of the app-based business.
Popular open source CPTs available are Sencha Touch, PhoneGap (Apache Cordova), Appcelerator Titanium, Qt and Xamarin SDK.
Let us delve deeper into these tools to get an idea of their unique features.
Its features are listed below.
- Faster layouts: The layout components are faster and, in turn, make apps run faster. The orientation of the layout is highly attractive and advanced.
- Cordova support: Supports Apache Cordova APIs for the accelerometer, camera, capture, compass, connections, contacts, device, events, files, geolocation, InAppBrowser, media, notifications and storage.
- HTML5 device APIs: A lot of native device APIs can be added to the packager API surface, which make it compatible with all Web browsers.
- Native packaging: This inbuilt feature of Sencha Touch can now package applications for mobile platforms such as Android and iPhone.
Apache Cordova supports the development of various mobile app platforms like iOS, Bada, BlackBerry, Firefox, Windows Phone, Android, WebOS, Symbian, Tizen and Ubuntu Touch.
The unique features of Apache Cordova are:
- Cordova is bundled with predeveloped plugins to support access to the phone’s camera, GPS and file system.
- Cordova installs just like native applications. It will produce an IPA file for iOS, APK file for Android and XAP file for Windows Phone.
Its features are:
- Developers can make use of their Web development skills to build rich and fully native mobile apps for almost any mobile platform.
- Reuses 60-90 per cent of code when supporting multiple platforms.
- Has a cross-platform APU for accessing native UI components such as navigation bars, menus and dialogue boxes and native device functionality including the file system, network geolocation, accelerometer and maps.
Qt is an important cross-platform mobile application framework mostly used for developing application software that can run on various software and hardware platforms with little or no change in the underlying code base. Qt is mainly used for developing various application software with or without GUI interfaces like command line tools, mobile apps, etc.
Its features are listed below.
1. WinRT: Support for native settings container.
2. QStorageInfo: A class for providing information about currently mounted storage volumes and drives.
3. QByteArrayList: Convenience class adding similar extra methods on top of QList.
4. QTabletEvent: Added information about which stylus buttons are pressed; rotation and proximity events.
1. Improved scaling of widget styles based on DPI.
2. Android style; also works even when not using Ministro for deployment.
1. Declarative State Machine (DSM): QML wrapper for Qt’s State Machine Framework.
1. Support for Bluez5.
2. Preview of Bluetooth Low Energy.
Qt Web Engine:
1. New module with Web engine based on Chromium.
1. QOpenGLContext: Allows interoperability between Qt and other frameworks.
2. OpenGL is improved.
3. QOpenGLWidget: Modern replacement for QGLWidget.
4. QRasterWindow: Class for performing OpenGL drawing onto a QWindow.
5. WinRT: Added support for native file dialogues.
1. Added support for OpenGL accelerated 2D canvas to QtWebKitWidgets.
2. OpenGL acceleration now also works with QOpenGLWidget.
3. Qt Webkit module is replaced by Qt WebEngine.
Qt is available in four editions: Community, Indie Mobile, Professional and Enterprise. The Community edition is available under the open source GNU License 2.1.
Xamarin has created a robust cross-platform mobile application development platform that has been adopted by various IT tech giants like Microsoft, Foursquare, IBM, etc, using Ruby or C#. With the C# shared code base, developers use Xamarin tools to write native Android, iOS and Windows apps with native user interfaces and shared code across multiple platforms.
Xamarin offers two commercial products: Xamarin.iOS and Xamarin.Android. Both are built on top of Mono, an open source version of the .NET framework and can run on various platforms like Linux, UNIX, FreeBSD and MAC OS X.
On iOS, Xamarin’s Ahead-of-Time (AOT) compiler compiles Xamarin.iOS applications directly to native ARM assembly code.
On Android, Xamarin’s compiler compiles down to the Intermediate Language (IL) which is then Just-in-Time (JIT) compiled to the native assembly when the application launches.
The various products under the Xamarin platform are: Xamarin 2.0, Xamarin.Forms, Xamarin Test Cloud, Xamarin for Visual Studio, Xamarin Studio, Xamarin.Mac, .NET Mobility Scanner, RoboVM, etc.
Xamarin’s features are listed below:
1. Objective-C, Java, C and C++ Interop: Xamarin provides a platform for directly invoking Objective-C, Java, C and C++ libraries, which provide the unique advantage of existing iOS and Android libraries being written in Objective-C, Java and C/C++.
2. Modern language constructs: Xamarin applications are written in C#, a modern language that includes significant improvements over Objective-C and Java such as dynamic language features; functional constructs such as Lambdas, LINQ, parallel programming features, sophisticated generics, and more.
3. Binding for SDKs: Xamarin contains bindings for the entire underlying platform SDKs in both iOS and Android. Being strongly-typed, they are easy to navigate and use, providing robust compile time type checking during any sort of app development.
4. Cross-platform support: Xamarin offers cross-platform support for three major application platforms – Android, Windows Phone and iOS. Applications can be written to share up to 90 per cent of their code.