Scope: You’ve probably already heard about Hybrid apps and how they work. You may even have worked with Cordova or Phonegap. You are now wondering where and how Ionic fits in. Alternately you’ve used AngularJS and have heard from someone that Ionic and AngularJS make a great couple to build Hybrid apps. But why or How…. And you’d like to know this before you end up learning yet another programming framework / SDK.
What is an Hybrid app and What is Ionic to begin with
What does the Stack of a typical ionic Mobile App contain?
Angular — This is the web application that controls the app routing and function. The Angular web application runs inside of the WebView. Angular is a very popular framework for building powerful web applications. Angular is primarily used to manage the web application’s logic and data.
Ionic — This provides the user interface components rendered in the app. Ionic is built on top of Angular, and is primarily used to design the user interface and experience. This includes the visual elements such as tabs, buttons, and navigation headers. These interface controls are the heart of Ionic, and provide a near-native interface inside of a hybrid app. Ionic also includes a number of additional utilities and features that help manage your app from creation to previewing to deployment.
The combination of these technologies makes Ionic a very feature-rich platform for building your mobile apps.
How do Hybrid Apps work?
A hybrid app is a mobile app which has an isolated browser instance, often called a WebView, to run a web application inside of a native app. It uses a native app wrapper that can communicate with the native device platform and the WebView. This means the app runs as web applications on the mobile device and have access to the device, such as the camera or GPS features.
Ionic brings a new and important set of improvements to hybrid apps that other tools like jQuery Mobile haven’t been able to provide. Until recently, mobile devices were still relatively sluggish and only a native app could deliver the performance and experience many developers wanted or needed.
Uses modern techniques: Ionic was designed to work with modern CSS3 features like animations. Mobile browsers generally have better support for the latest web platform specifications, which allows you to use those features as well.
Engaged community and open source spirit: The Ionic community is very active on forums, with code contributions, and in sharing tips and tricks about the platform. The open source spirit is alive and well within the project.
Powerful CLI tool: With the Ionic CLI tool, you can quickly manage development tasks such as previewing the app in a browser, emulating the app, or deploying an app to a connected device. It helps with setting up and starting a
project as well.
Ionic services: Ionic also provides services that make development much easier. The Ionic Creator service allows you to use a drag-and-drop interface to design and export an app. The Ionic View service allows you to deploy an app beta release to customers or test users. In short, Ionic is all about creating not just the basic tools for making hybrid apps, but also the development tools that will help you create them efficiently.
Ionic has a dedicated team: Open source projects can be difficult to select because you can’t be sure if they will be properly developed or supported. Ionic has a dedicated team that has a vested interest in keeping the platform on the leading edge.
Native-like experience: With Ionic, you can create a look and feel that’s like the native apps, making it easier for your customers to use the app.
Performance: The performance with Ionic is comparable to a native app; the better the app performs, the happier app users will be.
Beautiful, flexible design: The user interface components have been carefully designed to implement native style guidelines, but also allow for easy customisation of any visual aspect of the app.
When Ionic may NOT be the right choice for you
Learning Curve: After Ionic 1.0, Ionic 2.0 and even Ionic 3.0 arrived with quite a few changes. Ionic 2 worked with Angular V2 and after that Angular 3 and Angular 4 has also arrived. Bottom line, if you’re not comfortable with Angular or this regular keeping up with the versions is becoming too involving AND their are alternative platforms for you to consider, then you may reconsider the use of Ionic.
Not suitable for gaming apps where unity etc. and native platforms may be more suitable, or heavy graphical / 3d etc. apps.
Complex app which you already know requires native libraries or SDK’s which are too many or two complicated to hack or code in for your app.
Ultra quick performance: Ionic was pretty fast to begin with and performance improved with Ionic 2 even more so really speaking, there would be very few apps where Ionic may not be able to match up to the performance required. But it is still possible.