Native code is code that is written specifically for one mobile platform or OS. The Apple platform is iOS and Google’s is called Android. Each one has it’s own programming language and set of development tools used to create, test and deploy to their respective platforms.
An alternative to creating native code is using a cross-platform mobile framework, usually based on JavaScript, CSS and HTML 5. In simple terms these frameworks allow developers to have a single code base for both app platforms. Once the single code base is done the developer can build the code into a functioning iOS and Android mobile app. Most of these platforms also allow you to build to other mobile platforms such as BlackBerry or Windows Mobile.
The use of cross-platform mobile frameworks can save a lot of time and money but they do have their drawbacks. Unless your app is really simple you will have to have two sets of views or user interfaces to make your mobile app look good in both platforms. A framework does not allow access to all of the functions of the specific mobile operating system. Most frameworks use HTML5 and require the mobile devices browsers to render the application, this can cause issues with compatibility among older devices and also require more device resources than a similar native app. The App stores will be able to detect your non-native code and this makes your app more susceptible to rejection. This is especially true for Apple.
When making a decision between native or cross-platform framework you need to consider the required functionality, amount or resources needed, and the level of compatibility you need for devices and operating system versions. A good rule of thumb is if your app requires a lot of resources or will be used by a lot of different devices and operating system versions, then you should choose native code. LTCS can assist you in making these types of infrastructure decisions.
Popular Mobile Cross-Platform Framworks
- React Native [learn more]
- PhoneGap/Cordova [learn more]
- Xamarin [learn more]
- Appcelerator [learn more]