I was hired by my old client on retainership 1 month ago. They have a native android app which they got developed from a company and wanted a senior person to take care of their security. Since, I do not make native android apps, I only took the work of managing the project and doing server side coding. They had got the app developed in java for android. And the problems started.
Problem 1: App crashes
They have been getting lot of crashes in the app. Why? Native code does not work consistently on all device configurations and manufacturers. In fact this is the number 1 problem of developers which results in headaches. Xiomi or Redmi phones are notorious for crashing your apps due to their own customisation to Android OS. They add their own code which results in incompatible code for the app. If the developer does not test on these devices, the app crashes very frequently. For iOS this is not a problem because Apple devices are already in sync and use same code base across.
Problem 2: Slow development
Yes, native development is very slow. You would need to write 10 lines of code which can be done in 1 line in a hybrid app. And you need to test the app on multiple devices so that no crashes occur. If your app has a complex design, it will take more time to create it as the design needs to be tested simultaneously on many device screens. In case of hybrid apps, it is write once and run every where.
Problem 3: Slow updates
Have a bug in your app? Is it critical? Sorry, your update will only go out when the app stores deem fit. Sometimes it will take 7 days for the app to update. During this time your users will keep on leaving and giving 1 star review. In case of hybrid apps, we can bypass app stores and deploy updates instantly.
Problem 4: Very costly development
Due to above 3 problems, the whole development time will stretch and it will increase your cost substantially. You will be stuck with a native app which has band aid fixes and takes a lot of effort to maintain.
So, how does hybrid app mitigate all these? Simple: Hybrid apps do not need to hook into the device features too deeply. Push, camera, bluetooth etc. are accessed using plugins which are available for both android and ios. The design is rendered in a web view (google chrome for android and safari for ios) on the device and you will not know that these hybrid apps are not native. 80% code is shared across android and ios thus resulting in faster development. We have a technology from Microsoft which enables hybrid apps to update instantly without re-submitting the app to the app stores. Thus, critical fixes are instantly available to all your users. No more 1 star review due to bugs. Crashes also do not happen as there is minimal native functionality used.
95% of the apps on app stores do not need to access device functionality at the core level. They do not need to control the screensaver or change settings of the phone. Your app might be used to consume content or might be a dating app like tinder and data might be stored on the server.
Yes, there are 5% use cases where you would definitely need a native android or ios app like Airtel. Airtel engineers can configure your modem/router right from their android app or change configuration by connecting via bluetooth. They need a native app as their requirement is very different.
You do not need native apps in 2020. Invest in hybrid app and you will see the difference.