Ionic: Android & iOS apps made easy
This question often comes back: develop mobile applications externally, build an in-house team or go a hybrid?
In the spring of 2017, we faced a decision whether we would create a mobile app for the client to whom we supply the backend and the web part in cooperation with one of the external partners. Or if we can program it ourselves.
We looked again at the market situation regarding quality mobile developers. And not only in the Czech Republic is it increasingly difficult - free dates for the development of well-established firms are shifting, prices are rising. Subsequent maintenance and development depend on the capabilities of external developers, the two major platforms are evolving rapidly, and much testing and updating is needed. Additionally, sometimes not really happy triangle is created between backend/web supplier and application provider.
We focus on medium projects and we base our larger projects on Python/Django and REST architecture. Backend provides an API through which it communicates with a frontend that is mostly written in the new Angular. In other words, projects are ready for communication with "external applications" and Angular is suitable for solving not only desktop frontend, mobile web, but also mobile applications. So, what can we do if we don't want to develop in Java or Swift and we also need to make mobile apps? Hybrid mobile applications.
Historically, we experimented with Sencha or PhoneGap, but we've always come across limits regarding hybrid frames. This concerns in particular the speed, fluidity of the UI and working with native components. Hybrid mobile applications, few years back, were simply "mobile sites" wrapped in the application. And the convenience of use and user experience were affected. However, progress is unstoppable and keeps advancing, although for Apple, logically, HTML5 is not a priority for iOS. So, after a few years, we've done a survey of the best possible frameworks, and the Ionic Framework came out as the best solution.
It's HTML5 framework designed to create hybrid mobile applications. For the sake of completeness, let's just mention that these apps look like native mobile apps (downloaded from the app store and installed), but they're technically running in a "secretly launched" browser. This has many advantages (speed of development, versatility for all platforms), as well as disadvantages (access to phone peripherals, slower rendering) that developers are trying to quickly solve in recent years.
The main advantage of the Ionic framework is that it contains many finished graphical components for both platforms, so it's impossible for a normal user to recognize whether it is native or hybrid app. The Ionic creators have focused on the major weaknesses of hybrid applications and are trying to eliminate them in their concepts. This is in particular the rendering speed and user interface in general.
Ionic uses UI standards from iOS and Android, and for features that work directly with mobile hardware, it calls native SDK components. This ensures smooth work with most elements in common applications and UX is unrecognizable from native applications.
Of course, hybrid applications are not suitable for all types of applications and there are disadvantages - there is a risk of "early adopter" (the technology has no huge development base, some libraries can be completely overwritten), the resulting build is not completely native, it only uses access to some libraries which logically leads to a lower performance when comparing it with native apps. With the speed of today's phones, this disadvantage has been diminishing, but we certainly would not recommend building most games or a very robust application with high speed requirements with a hybrid application or with any other framework.
However, for many types of applications, Ionic is the right choice and we are looking forward to building other mobile applications. Development speed and costs are minimized thanks to one codebase for all 3 platforms, user experience is in many respects identical to a native application, automatic UI styling for every platform is a great help for developers. Now we're able to create a large part of the spectrum of needed mobile applications in house. Fast and very competitive. This also applies to subsequent maintenance and development. Don't hesitate to get in touch at firstname.lastname@example.org.