In a previous article we asked the question ‘Mobile App vs Mobile Website – What’s Best for your Business?’ and the answer ultimately depends on your business objectives and potentially a two-pronged approach could be the solution. However, if you have decided that your company needs a mobile app, then this opens a whole new debate on whether to go down the native or hybrid route (and if hybrid is the preferred option, which development framework do you use? But we’ll come to that later!).
Native or hybrid – what’s the difference?
Native apps are designed and coded for their specific platform (e.g. iOS, Android, Windows Phone etc.) and consider the differing needs of the appropriate range of devices. This requires more effort because each platform has its own software language (typically Objective-C or Swift for iOS, and Java for Android), development tools, user interface elements and Software Development Kits (SDKs). A native app written for one OS won’t run on any of the others, so if you’re looking to release your app, you’ll need to write separate versions for each platform.
Conversely, a hybrid app is a mobile app that contains a web view (essentially an isolated browser instance) to run a web application inside of a native app, using a wrapper that can communicate with the native device platform and the web view. This means web applications can run on a mobile device and have access to the device, such as camera or GPS features. Hybrid apps are possible because of tools that have been created that facilitate the communication between the web view and the native platform. When a hybrid app is built, it will be compiled, transforming your web application into a native app.
Which is the best route to take?
This decision comes down to your own individual circumstances. When launching a hybrid application, one of the main appeals is that you build it once, and then release it across multiple platforms. One UI – nice and simple. That means hybrid apps are 1) easier to build, 2) take less time to market, and 3) maintain one code base.
The trade-off is the user experience. The downside with a hybrid app is that even the most brilliant user experience architect cannot truly build an app that caters to the two dominant user types: iPhone and Android. Their style guidelines are simply too different, and from a design perspective any decision becomes a compromise which, on a case-by-case basis, must be weighed against all other strategic/tactical factors. Native apps are also generally faster, more reliable and more responsive than the alternatives because there are fewer layers in between the app code and device hardware. This also means that they have access to the full range of device capabilities (e.g. camera, microphone, GPS, accelerometer, battery level, and other onboard sensors) as well as OS-level apps and features (e.g. contacts, calendar, tasks/reminders and health data etc.).
However, despite native being seen as the premium option, there’s recently been a big shift to cross platform development to hybrid. Maintaining one source code is very appealing because new features are also easier to develop and deploy. Conversely, bug fixes are platform agnostic and can be done and released easily to production. Lastly, hybrid apps are distributed through the app store like all other apps which means the user will not see any immediate difference between a hybrid and a native app.
So, if a company follows the philosophy of “falling forward fast” and learns from user analytics while potentially reaching out to 90% of all users (that’s the combined market share of iOS and Android users), then a hybrid application could be the right approach. However, how important is the trade off in user experience? If your app is internally focused (for your employees) then simply having the appropriate functionality will probably suffice. However, if it’s customer facing then can you risk a poor user experience? While 79% of consumers would retry a mobile app only once or twice if it failed to work the first time, only 16% would give it more than two attempts. Poor mobile app experience is likely to discourage users from using an app again. You might get one chance to get it right. But you almost certainly won’t get a second.
The final debate – which hybrid development framework?
If you have chosen the hybrid as your preferred option, the final decision to make is which development framework to use. To reduce the line of difference between native and cross-platform mobile apps, the app development communities are striving hard to develop new frameworks and tools that can not only compete with native apps, but also have the potential to win the game. Xamarin, React Native, Ionic and Flutter are popular examples of such tools.
Below is a comparison of these tools to highlight the qualities that make them different from one another, and hopefully highlight the best one that you should choose.
|Performance||Xamarin iOS/Android||Xamarin Forms||Close-to-native||Moderate||Amazing
|GUI||Use Native UI Controllers||Use Native UI Controllers||HTML, CSS||Use Proprietary Widgets and deliver amazing UI|
|Market and Community Support||Strong||Strong||Strong||Not very popular|
|Code Reusability||96% of code is reusable||90% of code is reusable||98% of code is reusable||50-90% (approx.) is reusable|
paid as well
paid as well
For cross-platform development, all four frameworks have gained reliability among organisations aiming to decrease the time and expenses of app development. And depending upon your priorities and business needs, they can all be useful.
With growing mobile internet usage, implementing a mobile strategy is crucial for modern businesses. However, when you look at the mobile market today, with its many operating platforms and devices, it’s easy to get confused and can be difficult to decide what exactly your strategy should look like, as well as what kind of application do you need. The most important thing to focus on is to be specific about your goals. Do you want to attract a particular demographic to your brand via your app? Increase customer retention? Or brand awareness? How important is the trade off in user experience? Each of these requires different approaches and considerations. Of course, you could want it all, and it is possible to achieve it, but the more realistic you are about your mobile goals, the more likely you are to meet them.