Picking the right Mobile App Framework for your business
So your business needs a new app. Your current app hasn’t been updated in years, only supports iOS 8 and is languishing in the depths of the app store. It’s time to start fresh.
After a bit of searching, your head is spinning with terms like ‘Mobile App Framework’, ‘React’, ‘Xamarin’, ‘Native’ and ‘Hybrid’. Surely it can’t be this hard to get a new app developed? Somehow you ended up on this blog post, looking for answers.
Read on for a business-oriented run-through of Mobile App Frameworks, what they mean for you, and how to pick the right one for your business to save yourself time and money.
BackgroundBack in the dark ages of mobile app development there was only one way to make an app: natively. You downloaded the native iOS or Android toolkit, hired an iOS or Android developer, locked them in a room together and eventually an app popped out. If you wanted a cross platform app, you needed two toolkits, two developers, two rooms and twice as much money.
Even without cross platform support, mobile app development was often prohibitively expensive for simple apps when compared to web development. Many opted to develop ‘mobile websites’ instead (i.e. web pages designed specifically for mobile that often act like an app). There are various limitations to this approach - you cannot use native UI widgets, device capabilities (e.g. camera) and many complex features are impossible to implement.
Enter the Mobile App FrameworkThe introduction of Mobile App Frameworks solved these issues. A Mobile App Framework is an alternative toolkit for mobile app development with three main benefits:
1. Improved development speed
Native toolkits lock you into a specific programming language and supported libraries.
Mobile App Frameworks can use any language and alternative libraries, that often drastically increase development speed.
2. Native power
'Mobile Websites' have both improved development speed and free cross platform support, but prevent you from implementing various native features (e.g. accessing the camera).
Mobile App Frameworks support native features, ranging from a small subset of the full feature-set, to the equivalent of a native toolkit app
For example: Ionic provides certain native APIs (such as accessing the camera) while Xamarin gives you full native API access (on a platform-specific basis)
3. (Almost) free cross platform support
'Native toolkits lock you into a specific platform - iOS or Android, potentially doubling your development time.
Mobile App Frameworks often support both iOS and Android, with very little platform-specific code required.
For example: Ionic, React Native and Xamarin can all export to iOS and Android from the same codebase.
Comparison of Mobile App FrameworksAs of January 2018, the top 3 most popular Mobile App Frameworks to choose from are Ionic, React Native and Xamarin. Not all frameworks are equal. Some excel in certain areas, at the cost of others, and some simply cannot do what you need for your app. For certain use cases, even a non-framework-based approach (such as a native app or mobile website) may be the best for your business.
Typically, the two main benefits of frameworks (development speed and native power) come at the cost of each other. The faster the development speed, the less native features are available, and vice versa. While this is not strictly true in all cases, it’s a good baseline for comparison.
We will now briefly outline each approach with this comparison in mind:
1. Mobile Website
Designing a website specifically for mobile devices, typically styled to look and act similar to an app (e.g. touch menus, etc) while running in the user’s browser. You cannot use (almost) any native features with this approach, and there is no ‘app’ to be added to an app store - instead, users must visit your website directly.
Recommended for: simple, information-only “apps” that replicate the features of your website.
Development speed: Very fast
Native power: Very low
A hybrid framework utilizing web technologies (HTML/CSS/JS) to design the UI/logic of the app, in addition to a limited set of native feature APIs (for accessing things like the device’s camera). Apps created using this framework do not have a native UI - instead the UI is implemented via a web browser embedded in the app. While Ionic manages to replicate the native UI fairly well, discerning users can often tell the difference between this style of ‘hybrid’ app and true native apps.
Recommended for: simple apps that mostly show information with minor native features - such as a conference app.
Development speed: Fast
Native power: Low
3. React Native
A relatively new framework developed by Facebook utilising (a specialised form of) web technologies (HTML/CSS/JS). However, unlike Mobile Websites and Ionic, React Native does not render in a browser window - the HTML/CSS is interpreted and used to render native widgets. This allows React Native apps to appear indistinguishable from Native apps while still leveraging the advantages of web technologies. Additionally, the developer community for React Native is very active, thanks to its use of NPM, which increases development speed.
Recommended for: apps that require a balance between development speed and native features, such as various web service backed apps.
Development speed: Medium
Native power: Medium
A framework recently purchased by Microsoft that utilizes .NET/C#. Uses standard .NET technologies (e.g. XAML) for developing mobile apps, while supporting platform-specific features through platform-specific modules. Unfortunately, the developer community for Xamarin is not as active as React Native, which can slow down development speed.
Recommended for: complex apps that require powerful native features, such as encryption, and maintainability, such as a secure document viewer.
Development speed: Slow
Native power: High
5. Native Apps
Using the iOS or Android mobile app development toolkits for developing native apps - allows you to use cutting-edge native features that may not yet be compatible with a Mobile App Framework.
Recommended for: complex apps that require cutting-edge native features, such as 3D rendering, machine learning and high maintainability, such as an augmented reality game.
Development speed: Very slow
Native power: Very High
The following chart summarises the comparison of each mobile app development approach:
ConclusionFor the majority of new apps, React Native provides the best balance between native power and development speed, allowing you to get the best app for your buck. However, the Mobile App Framework you choose is entirely up to your business’s needs. For complex, feature-rich apps, going for a purely native app is still the best approach. Conversely, when you simply want to improve your customer’s mobile experience without expanding beyond the functionality of your website, it may be best to forgo an app and instead develop a mobile website.
This article presents a very simplified overview of Mobile App Frameworks. This is a good starting point for your business to make an informed choice about the development of your next app.
For more specific advice on Mobile App Frameworks, call us on +61 (0)7 3891 2299 to discuss your next project.