Thoughts on Mobile App Development in 2019
According to Statista, the global mobile app market will be worth $190 billion in 2020. Currently, Android and iOS are two the most widely used mobile platforms in the world. This is why clients coming to Waverley for software development usually prefer mobile applications supporting both. For many years we have developed numerous hybrid applications. At the same time we also created native products. And we were never totally happy with the results. Here’s why.
In the case of a native approach, we had two code bases to support. Different development speed for each platform, some features are easy to implement on Android, while others are better supported on iOS. The design should be adapted to peculiarities of each of the platforms.
For many other projects, we used a Cordova-based hybrid approach as an alternative for native. It was easy to start developing and wasy to show the result to the client. I think, it is an ideal way for the POC or for the case when you need to quickly verify an idea despite certain time and budget limits. Creating a hybrid app is like a battle, a constant fight for performance. Your application is covered with many performance checkpoints. You have to write and run performance tests. You can get performance issues just because of the wrong CSS and layout. Even now, when our phones become more productive from year to year, we continue having these countless performance and memory issues in hybrid apps.
The second one we looked into was React Native. We used React before on our projects and we were really happy with it. That’s why we gave it a try. It was a small project with some sort of a camera scanner. Nothing special, a List page, Details page, Help page, etc. But during the development process, we got a lot of problems with the camera, with third-party modules, React Native updates. We seemed to need a lot of tricks to make things work,. It was really hard to migrate to the new version of React Native for some reason. So we decided to never use it again until it is stable. News from AirBnB show that we are not alone in our feelings towards React Native. I know that now things are more or less stable in the React Native world, and I don’t deny that we might consider using it again.
I think Flutter is a game changer. It allows to use the same code base to build applications for Android and iOS. It provides a good balance between reusability and performance. Of course, we can’t use it for every kind of projects, but the number of projects we build based on Flutter will undoubtedly grow.