Frameworks for Cross-Platform Mobile App Development

in #cross6 years ago (edited)

When we started building our first mobile App for both iOS and Android, the consensus from the team was that we needed to develop separately for each OS for better performance and user experience. We didn't have experience with the in-house development staff, so we worked with a local partner firm whose expertise is with user interface design and web development. After the mockups were done, we had two separate team start working on each platform. As these team working together and trying their best to get consistent look-n-feel and maintain the same experience, they learned quickly about the challenges of developing independently for two operating systems, including support for Bluetooth printers, release timing, different set of bugs reported by users.

That was when we started the evaluation of cross-platform App development frameworks. The following are a short list of these frameworks available on the market. Some are open source, and some are sponsored by different companies and organizations. They all have their pros and cons. What framework you choose to use for your development needs to be based on your specific use case.

List of Frameworks

NamePlatformDevelopment LanguageHardware
XamariniOS, Android, Windows PhoneC#Accelerometer, Camera, Capture, Compass, Connection, Contacts, Device, Native Events, File, Geolocation, Notification, Storage, Gestures & Multitouch, Messages & Telephone, Bluetooth, NFC, Vibration
Apache CordovaiOS, Android, Windows PhoneCSS3, HTML5, JavaScriptAccelerometer, Camera, Compass, File, Geolocation, Media, Network, Notifications, Storage
React NativeiOS, Android, Windows PhoneJavaScript, ReactAccelerometer, Camera, Capture, Compass, Connection, Contacts, Device, Native Events, File, Geolocation, Notification, Storage, Gestures & Multitouch, Messages & Telephone, Bluetooth, NFC, Vibration

There are more frameworks listed here, and you can read detailed descriptions for each of these. Whatever framework you choose, the emphasis is that you need to understand the business requirements for your App and the specific use case you are working on.