It has been exactly one year since our team began the development of its first product, the ionic dating application, which is the domestic brother of the well-known tinder. Over the course of this year, we faced many problems specific to hybrid applications; we now have experience and comments that we would be happy to share with you.
Why ionic?
Ionic was chosen because we are web developers, and JavaScript in general, and angular in particular, is what we are really good at. We did not have time to delve into the details of the development under ios, then android, to spend on this limited time and money. It was necessary to do everything as quickly as possible, spend the least amount of time, release and check whether the application will fly. Classic prerequisites for developing a hybrid application.
Here are a couple of popular myths about hybrid applications and our view of them after a year of development.
Write once, run everywhere
Fact - 90-95% of the application code is common to both platforms. There are features of platforms that sometimes need to be taken into account, not all the plugins that we used worked equally well on both android and ios, but the fact remains - most often we wrote the same code that worked equally well on most devices . But. Often, writing code for a specific platform took more time than we would like.
')
You don't need to be a mobile developer to develop a hybrid application.
None of our team members had any mobile development experience. Basically, we were engaged in the usual web development, we used ready-made plug-ins for native phone capabilities. But not everything is so simple. The cordova plug-ins we used didn’t always have some “sharpening” and sometimes we really wanted to, and once I had to add a plugin in Java and Objective-C. So the experience of mobile development is not mandatory, but highly desirable, especially if your application will depend heavily on the native capabilities of the devices.
Hybrid applications slower than native
Hybrid applications lack the sense of originality and smoothness, you can't argue with that. With the development of browsers and frontend frameworks, a small step is taken every day, ionic already today has a good set of directives and styles to smooth out sharp corners. But the aforementioned sense of originality and smoothness is still not enough.
One of the main problems we encountered is the support of older versions of android 4.x. The browsers in these android versions spoiled our lives, everything worked very badly, and many things were simply not supported. We were saved by the
crosswalk , which together with the application encloses the current version of webview. Crosswalk has accelerated the application on older devices at times, and this is true. It is worth noting that this problem was not when working with ios-devices - they are updated promptly.
Ionic saves time and money
Ionic is good for a simple client to your server, which will be more convenient than the mobile version of the site. Ionic is also good for prototyping - it's a good idea to try out the concept, after which, having obtained enough resources, write native applications for the platforms you need. In these niches, ionic is really good and you can hardly regret using it. But if you decide to write something really complicated, especially an application that depends on many native capabilities of devices, then at a certain point you will spend too much and get a low-quality product at the output (which is very optimistic).
Result
For a number of reasons (mostly not dependent on the chosen technology), the development of the project was delayed for a year, it was repeatedly suspended and resumed, and we lost most of the enthusiasm. As a result, the product has grown from a prototype (which we liked) into a full-scale application with rich functionality (which we are not completely satisfied with). Sometimes there is not enough smoothness, sometimes speed and something else. We posted it first on the App Store and the Play market, then we thought and shared the code with everyone on
github .
What are our conclusions
Ionic is suitable for prototypes and simple client applications. Using it for this kind of application you will be happy. If your product is too complex and depends heavily on the native capabilities of the devices - forget about ionic, so you will save yourself from unnecessary costs and unnecessary work.