It is coming up to a year since I started using the Ionic framework on the InDEx App, a research project, and thought it would be helpful to post a reflection.
Ionic is an open-source SDK for hybrid mobile app development (web and device) built upon AngularJS and Cordova. Ionic is great, it provides similar functionality to that found in a native mobile development SDKs but without the hassle. Apps created via Ionic are compatible for iOS, Android and Windows phones and can be built with a single command. It also comes with a simple Command Line Interface to create, build, test, and deploy your Ionic apps onto any platform!
You can read more about the choices I made the following posts;
InDEx App: A Medical Research Council Funded Project
Using MEAN - Choosing the stack for InDEx
Optimising Technology for Efficiency in Research - InDEx Ecosystem
The reasons and how are explained above.
With everything, there are some limitations.
The biggest issue I had with Ionic is performance, while the user-interface is optmised when pushed out to Android devices the app was sometimes laggy. However, with iOS I did not encounter similar issues. This leads me to suspect that it is an issue with how Android handles web technologies and rendering.
I came from a background of rapid development in Computer Vision and Machine Learning, while I had done some work in native iOS/Android development I knew it wouldn't be enough. Developing an app takes a lot of time some of the issues such as cross-device support, functionality, performance and rendering (screen resolutions) are tricky to handle.
This is where Ionic is awesome, it removes most of these issues and ensures that you focus on the user interface and functionality and not on the inner-workings. It also has a very large community supporting both its developments and to answer community questions. For research, you can rapidly develop an app and quickly publish, without much hassle, I would recommend this framework to anyone.
Consider Ionic on your next project!