A while ago, lots of cross-platform frameworks, that allowed creating native apps using your favourite HTML5, JavaScript, Python or even C#, entered the scene of mobile development. All came with native capabilities and moreover – an ability to have a single codebase for iOS and Android platforms. This also enabled many development firms to extend their offering with native mobile apps in addition to a responsive web representation as well as save development costs.
Those frameworks sounded like a panacea for mobile development, right?!
Fast development. You can create some initial version of your mobile app relatively fast using just one programming language comfortable for you. It’s absolutely great to release something fast, say, to prove your concept being a startup.
Low cost. By using a single cross-platform codebase, you can produce apps for iOS and Android faster than building those separately as native that can result in up to 30% of cost-saving. Saving money is always a significant driver as this will also allow spending those onto the new features or advertising for instance.
Reusable code. You write and maintain just a single piece of code that is suitable for both platforms and that also saves development time and eliminate the need to sync the changes between different platforms. Time-to-market is an extremely important thing to consider especially if you need to release an update with the new important feature or an important bugfix.
However, what happens in real-life?
Once you continue to extend your app with new features or simply support it towards the new requirements you will be having an extra rework on maintaining the same code for heterogeneous platforms as it may act differently.
As platform releases the new feature or ability, your framework will release the corresponding update much later and, for sure, such features will vary from platform to platform. To support those different features there is no way than to maintain the different code.
Also, the frameworks may release a new major version that will require changes in your codebase and retesting the whole app on all platforms and devices. Needless to say, that platform can abandon access to one or another feature or simply halt the support of some non-native lib you’re using.
Does this all sound like ⏱speeding up the development or saving the 💷costs?!
We were sharing opinions with several development firms who are using the cross-platform frameworks and all confirmed that such frameworks are good for a simple app or as a temporal solution. But, should you need something solid then you’ll better plan to build your app as native from the very start.