Continuing our article last week on “How to choose between native or hybrid development for mobile apps?” we will focus in this article on budget consideration when choosing between native or hybrid development for your mobile apps.
This article assumes you are building your mobile app for both iOS and Android platforms.
Native apps; simply put are costly to build.
Native apps as mentioned in the last article are built using technologies specific to iOS (Objective-C or Swift) and Android (Java or Kotlin). These 2 technologies are vastly different and are not interchangeable. Therefore, you need to hire engineers who specialize in each of the technologies. The cost of each engineer based in US with benefits can range between $100,000 – $150,000 per year. So that is at least $200,000 – $300,000 for just 2 engineers. Depending on the size of your project you may need more engineers. Note: You still need a designer(this could be part-time or outsourced), product owner(this could be you or hired help), and quality assurance(again this could be you or hired help).
Another overhead of using 2 different technologies to build an app for iOS and Android is that there will be two separate code bases or programs that have to be managed by the software developers. That means every feature update or fix will have to be made in both programs.
If you want to follow sound development practices such as test driven development or automated unit tests where test programs are written in advance of the actual program that runs your app, then you need to allocate time for test programs to be written for both code bases. Test driven development for one code base can add programming time that is 2 – 3 times that it takes to write the program for your app. For 2 code bases you can expect that it will be 4 – 6 times.
App built using Hybrid development frameworks or toolkits on the other hand are less costly to build. At least in the beginning. I’ll highlight this point later. For now let’s look at how hybrid apps can be less costly.
Hybrid development frameworks allow developers to build apps for both Android and iOS using the same technology. For example, React Native framework allows engineers to build apps using Javascript. Xamarin uses Microsoft C#. Google’s Flutter has their own proprietary framework that also allows engineers to build apps for both platforms.
Only one engineer is needed then to author the program that will run on both devices. Engineers who are experienced in any of these technologies based in the US can cost between $100,000 – $150,000 per year. This provides a 50% cost reduction when compared to Native application developers.
The single development framework also means that only one code base needs to be maintained. That is all feature enhancements and bug fixes are made to one code base.
Again if you choose to follow test driven development then only one set of test scripts are required. Again cutting the development time in half when compared to native application development.
Based on the costs of each development framework it seems hybrid would be the obvious choice. However, looking long term and depending on the complexity of your app Hybrid development can have hidden costs that can add up.
First some items that can be disadvantageous to the same code base advantage of using a Hybrid framework.
- UI design. iOS and Android both have their own unique user interface. If your design is not agnostic then you will have to maintain 2 different designs in your code base. In the long term managing this as you build more enhancements and features can become difficult and time consuming.
- Depending on the complexity of your application you may need to make minor adjustments in the program to affect your applications performance or behavior depending on the mobile device’s platform. Again, in the long term these accumulation of these minor changes can become difficult and time consuming to manage.
Second, the use of 3rd party libraries in your app can have a major impact when using hybrid frameworks. It is very likely that your app will require a 3rd party library to implement a feature in your app. Examples, of such features could be Audio/Video calling, Image/Video editing, Data visualization, etc…
For such functionalities you may have to rely on other software publishers to expedite the development of these features without spending time and money to custom develop it on your own.
The software publisher will only have libraries that will work with native mobile development technologies. When using hybrid framework you have to use adapters to then make these libraries work. It’s rare that the library publisher will provide this adapter. You have to rely on open source communities or author the adapter on your own. This becomes a problem when the iOS or Android decide to upgrade their software. At which point the 3rd party components may also need to be upgraded. This will require that the adapter also be upgraded. Instead of simply upgrading the device software and the 3rd party library you also have to spend time to upgrade the adapter. This over the long run can be time consuming and add additional development costs.
What I recommend? If money is not an issue then native development is the way to go. If money is an issue then Hybrid development is a great option. But this option that comes with certain caveats listed above. Being mindful of the pitfalls can help better prepare for some of the challenges involved in using hybrid development frameworks.
Please leave me comments about your experiences how budget affected your choice for development framework for your app. I’d love to hear from you.