At Elitech Systems, We have been developing mobile applications since 2006 and in these years, technologies have changed a lot! Our challenge has always been to design the best possible user experience for all projects. One of the challenges is choosing the best development technology for each project and each era, while respecting the golden rule: Quality is not negotiable.
Hybrid Application versus Native Application
The number 1 recommendation of platforms (Apple, Google, and before Microsoft or BlackBerry…) has always been to use their own solutions, ie their programming language, their SDK, their development tools… By regularly following the major events for mobile developers (Apple WWDC, Google I / O…), we can see that the message has not changed, and this is also our recommendation. If you have the possibility, native development is always preferred because it will be the most durable.
These solutions specific to each OS are of course incompatible with each other, which requires specific development for iOS and another for Android, and previously a third for Window. Gradually different solutions appeared – most often called “hybrid” or sometimes “cross-platform” – to avoid multiplying developments platform by platform (PhoneGap, Ionic, Titanium, Xamarin, NativeScript, ReactNative…). For a long time, all the solutions we tested did not allow us to guarantee a quality result (user experience, speed, reliability, scalability…). So if you wanted a good quality iOS and Android app, we have so far always advised 2 specific developments. But in 2020, where are we with regard to cross-platform developments?
Cross-platform technologies and languages
Hybrid: PhoneGap, Cordova, Sencha, Ionic
These are HTML and Javascript.
Advantages : suitable for teams with mainly web skills (same languages)
Disadvantages : Works on the basis of an internet browser embedded in the application. Sometimes very slow and often has many stability and reliability issues with many advanced mobile terminal features. The diagnosis is often complicated by the software overlays.
Our advice : We strongly advise against these approaches.
Native and cross-platform: Titanium, Xamarin, NativeScript, React Native
We also talk about generated native development , with Titanium (Appcelerator, since 2009) and Xamarin (Microsoft, since 2011) for the oldest, then recently NativeScript (Telerik since 2014) and React Native (Facebook, since 2015).
Advantages : one code for both platforms and much better performance than web browser-based (hybrid) solutions.
Disadvantages : the choice of technology is strategic because it commits the project over time while the stability of the code and the takeover by another developer can be complex for the evolution of the project.
Our opinion : Although these technologies are interesting, they lack stability and sustainability. We do not recommend investing in these technologies, following our experiments and those of other platforms, such as Airbnb, which backtracked on React Native .
Native and multi-Platform: Futter
Flutter is the cross-platform technology announced by Google in 2015 and introduced in May 2017.
Advantages : a single code for both platforms, performance equal to native development and very rapid market adoption.
Disadvantages : it is a recent technology (version 1.0 stable in November 2018, 1.2 in March 2019), on which we have less perspective than on other technologies.
Our opinion : Flutter offers quality rendering and performance by operating differently from previous technologies.
Flutter: the small cross-platform revolution?
Flutter offers a new alternative by completely rethinking its approach, with the aim of resolving the limitations of its predecessors: an approach which is called “multi-platform”. It differs from cross-platform solutions by a different approach on platform-specific aspects:
- cross-platform : basic access provided for the “lowest common denominator” between the 2 platforms (the possibilities are reduced)
- multi-platform : basic access to all specific functionalities (no compromise).
In other words, the cross-platform gets rid of the overlay that smooths out the differences between the 2 platforms. Flutter does not seek exhaustiveness at all costs which requires sometimes disappointing compromises, but relies on the features offered by each of the OS.
In conclusion, Flutter benefits from advantages that we have never seen before for non-native technologies:
- Application performance (speed and responsiveness), thanks to innovative multiplatform operation.
- Sustainability, as a Google technology and thanks to an active and growing community. We recently saw that “ Flutter is now the fastest growing skill among software engineers” .
In view of all these elements and after having pushed Flutter to the limits that we knew from the technologies that preceded it, we can conclude to a reliable, future-oriented and economically advantageous solution for quality iOS and Android mobile applications. It appears more and more likely that cross / multi-platform developments will generalize in Flutter at the expense of other non-native technologies.
Comments are closed.