For about 3 years I’ve been a big supporter of Web and Hybrid app development. One of the main reasons for that was that I was firstly a hybrid app developer for these 3 years myself. I say “was” since I recently switched teams, and now I am a full-time iOS developer (native app development).
The turn of events is a little funny since I have circled back to what I started with in my college days. My first full-fledged app ever was a native Android app that I developed with 2 other people in college, and at that time the 3 of us were to some level experts in native Android development. Only in Zilker did I start to develop using Angular and Ionic, at the point in which I started to understand why web apps are more essential than mobile apps, and why cross-platform development is a great path to take.
But does that mean that mobile apps are not that important, and more specifically is dedicating resources for developing NATIVE mobile apps a waste of time?
In this post, I am going to point out some of the benefits of choosing to go native mobile when creating your next project.
For some apps, people use the Mobile version of the app more than the Web app
There was a time when computers were supposed to be big machines stored in air-conditioned rooms. Now that practically everyone has a smartphone, people have access to that more often than “regular” computers like desktops and laptops. Due to this, some use cases make more sense in phones rather than laptops or desktops.
Let’s take Google Maps for example. It’s true that people do use their web versions on their laptops and desktops when planning a trip or checking where things are. But the more common use case is to use it for navigation when actually traveling. The mobile version of the app here would be used more often than the web version, and therefore needs to be more polished.
It makes sense for premium businesses to invest in making the best possible versions of their mobile apps
Netflix, WhatsApp, Prime Video all have native iOS apps (probably built using Xcode and Swift), and it doesn’t have to be said to know that they are the leaders when it comes to apps. To understand why this is the case, we have to realize that native apps are always the best-performing versions of the app for the given platform. In the case of cross-platform frameworks, they either compile the code written in some other language to the native binary or use a web view to display HTML and JS in place of the UI. The former is much faster than the latter since it is basically native code in the end, but the additional wrapper needed for the code to support multiple platforms still has a minor impact on the performance, if not a lot.
Native app development is always backed by Apple and Google themselves
We know that Flutter is created by Google, and therefore is going to be backed by them for a long time. But though they have Flutter now, they still haven’t gotten rid of native Android development, and they probably would never due to the above 2 reasons I’ve mentioned above. It is in the best interest of Google to continue to let premium businesses develop the fastest possible apps for Android for their various use cases. The same is true for other frameworks like Ionic (my favorite), React Native, and Xamarin (created by Microsoft).
This is to not say that cross-platform app development frameworks don’t have their use cases. Web-based hybrid app frameworks like Ionic are king when it comes to developing an app that has to be optimized for the web and then extended to Android and iOS. But the problem with them is that they are not guaranteed to stay relevant if Apple or iOS were to make major changes to their platform. To this day Ionic does not support Android TV or tvOS.
On the other hand, as long as native app developers keep learning, any changes introduced by Apple or Google in the language or tools would not drastically affect what they have previously learned while developing for the platform. Examples of such changes could be the introduction of Kotlin in Android and the introduction of SwiftUI in iOS.
All of this is to say that native apps and cross-platform apps have their time and place of when they are supposed to be used.
That’s all for today’s post, see you next time!