Traditionally mobile apps are built for two main platforms - Android and iOS. For building Android Apps, an app developer needs to master the JAVA programming language so that he/she can build useful apps with the help of the Android SDK. On the other hand, for building iOS Apps, you need to master the Objective C programming language and build your app with the help of the iOS SDK.
If you wish to target a wider audience, every App you develop, you have to essentially build two sets of the App - one in JAVA for Android, and the other one in Objective C for iOS. This is a very daunting task and I would say, a rather stupid (inefficient) approach towards app development. Every time you need to make changes to your App, you need to do so in two different sets of Apps.
What is you were provided with a mechanism where in you build only one set of your application and compile it for the two platforms - Android & iOS? This is exactly what the Ionic framework enables you to do.
Ionic is a an open source Software Development Kit built to enable hybrid mobile app development.
The ionic framework enables you to build mobile user interfaces with native look and feel which are very similar to the natively built Android and iOS apps. Typescript allows you to write complex logic for processing user data to provide a good interactive user experience. Further, it provides you with all the mechanisms to enable your app to communicate with core applications running on internet servers. You can conveniently build your mobile Apps with the above technologies and then distribute them through the Google and Apple app stores.
A Hybrid mobile app is essentially like a website that runs in a browser shell within the app. Do not mistake this browser shell with standard browsers such as Chrome or Safari that you find in your mobile phone. This browser shell is special in the sense that it is built to have access to the native mobile OS (operating system) layer. It is a low-level browser shell just like UIWebView (in iOS) or WebView (in Android), which is wrapped by a very powerful tool called Apache Cordova.
The hybrid app development environment thus provides multi-platform support, as it itself deals with the nuances of the specific underlying OS - be it Android or iOS. As an app developer you only write the higher level Typescript classes and codes that make a call to in-built modules in a generic fashion, without being too concerned with the underlying OS whether it is Android or iOS. The ionic framework will thereafter compile your app separately for the two platforms and auto-incorporate the platform specific codes in your published App.
Thus, building Hybrid app is a far more efficient approach over building pure native apps, thereby accelerating the speed of development. In terms of cost of development as well it requires much lesser man hours to build a hybrid app vis-a-vis building two separate native apps (one for Android & another for iOS).
Please also note that an ionic app is not merely a responsive website application. Ionic provides native-styled mobile UI elements and layouts that you would find in native SDK on iOS or Android. The underlying wrapper that makes this happen is Cordova. The end result is an App that no one can tell whether it was built natively or built over ionic framework.
When the ionic project was started way back in 2013, its sole purpose was to provide a better way for web developers to capitalize on their existing skill sets for building mobile apps. The journey for ionic project has been quite successful and in a quick span of 4 years Ionic has become the world's most popular App development framework. Thousands of web developers have been drawn towards this new technology and today Ionic can boast of more than 1 million apps having been built over this platform.
I hope the above introduction would have given you a reasonable understanding of what we are going to jump into in the next series of articles.
Rajeev Kumar is the primary author of How2Lab. He is a B.Tech. from IIT Kanpur with several years of experience in IT education and Software development. He has taught a wide spectrum of people including fresh young talents, students of premier engineering colleges & management institutes, and IT professionals.
Rajeev has founded Computer Solutions & Web Services Worldwide. He has hands-on experience of building variety of websites and business applications, that include - SaaS based erp & e-commerce systems, and cloud deployed operations management software for health-care, manufacturing and other industries.