The MADP (Mobile App Development Platform) market has probably never been more active, and, ironically, more confusing, than it is today. Especially with regards to cross-platform compatibility that arises from the sheer number of different devices out there running different operating systems. The good news, however, is that with the increasing number of MADP vendors working hard to make the life of the developer easier, coding expertise is no longer a prerequisite to mobile app development. Proper planning, on the other hand, still definitely is.
There are a number of things to consider before choosing a mobile app development platform, and a quick Google search will tell you to do everything from setting goals, to understanding your audience and planning for multiple releases. The most important thing, however, is a proper assessment of your team and the skills they possess before making any decisions. Though a lot of development can now be done without writing a single line of code, there’s still going to be a lot of navigation around the tools and services, so it’s always a good practice to assess the learning curve beforehand.
Mobile app development: The Natives
The landscape of MADPs is made up of three sectors: native, hybrid, and mobile website environments. Native mobile apps are developed specifically for the platform they’re going to be hosted on and are generally written in languages specific to those platforms. For iOS devices it’s either Swift or Objective C, Java for Android and C# for a Windows Phone. Since these apps are written in languages specific to their native platforms, they’re able to take full advantage of the platform’s ability and features as opposed to an additional step in hybrids where code would need to be interpreted.
A common analogy of the flexibility that native apps provide as opposed to hybrids is a comparison with Legos. As opposed to a fixed design like a boat or a plane with limited room for customization, a native app is more like a non-themed Lego set (Basic Bricks) with which you could probably build a boat or a plane if you chose to, or anything else instead. They basically give up a lot of the control and functionality to the developers unlike apps created by services that give you limited options.
It all sounds great till you have to go cross-platform and your mobile app development dream quickly turns into a nightmare. There isn’t a way to squeeze your iOS app into a magic box and have it come out as an Android app. However, Hybrid app frameworks have definitely started bridging the gap between the performance of native apps and the ease of use of web ones. Like the hybrid cloud or hybrid storage or hybrid platforms, hybrid apps are here because different people prefer different setups, and vendors need to find an easy way to cater to everyone without duplicating efforts. The motive here is to alleviate the time and effort spent dealing with multiple code bases of different native applications. Native app development also allows for a single code base and language to be used across platforms, which makes life a lot simpler if you’re a developer.
A couple of popular hybrid platforms today are PhoneGap and Titanium Appcelerator, and while the both have different approaches, they also both have the distinction of being among the most popular and earliest hybrid solutions available. Their functionality is different in the sense that PhoneGap sort of disguises a web app as a native one, while Appcelerator acts like an interpreter between platform and the app. They both get the job done in terms of making your life easier. If you were to compare app building with shooting a movie in three different languages like English, French and Spanish, think of hybrid apps as your dubbing artists so you don’t have to actually shoot the movie three different times.
Now, let’s take a tour of some of the top MADPs available to mobile developers today.
Cordova is an open source set of APIs that allow applications to access specific device functions across platforms. Using Cordova’s APIs, developers can code applications using web development languages like CSS3, HTML5, or Java and have their code presented to multiple platforms in the guise of a native app built in a mobile programming language.
Parashuram Narasimhan, a senior program manager with Microsoft, told TechBeacon that the idea behind Cordova is pretty simple. “You write an app once and you’ll be able to run it on all your devices, like Android, iOS, BlackBerry, and a whole suite of devices.” Narasimhan added that “enterprises have invested a lot of effort in development skills, and those skills can be quickly transferred to Cordova.”
Ionic is a platform/SDK built on AngularJS, which facilitates the integration of services like push notifications and analytics. Based on jQuery Mobile, Ionic has a great UI, debugging capabilities, performance, and build quality, and though there are a bunch of components with a big list of options, they all work great and interact with each other seamlessly. Ionic combines AngularJS, HTML5+CSS and Cordova to access native device functions while offering extensive customization options that you would normally expect from native apps. With the new version, Ionic 2, which is based on Angular 2, the application layout is much more organized with better tools, navigation, and better UI with Crosswalk embedded.
Last but not least on our list of mobile app development platforms is Facebook’s React Native, and though it says “native in the name,” it’s got both IOS and Android covered, which makes up pretty much most of the world. It’s also been open sourced already so we can expect support for more operating systems soon. Unlike PhoneGap, Cordova, or Ionic, React Native doesn’t use web development languages in a webview or any interpreters but rather employs actual reusable native components that work on both platforms. This is probably as close as a hybrid gets to acting and feeling like a real native app
While hybrid apps running in a native app environment are usually associated with inefficiency, bugs, less developer productivity, and slower time to deployment, React Native is aimed at changing that perception. We don’t often hear about Facebook with reference to open source tools, but we know that what they do, they do really well. Added to the increasing monopoly that iOS and Android share right now, React Native is probably going to be the one to beat in this sector. I mean, who wouldn’t want a Native Hybrid App?