Ionic

Mobile App Development

Ionic Development - The 12 Primary Characteristics

In this article we are going to go through all the pros and cons of the Ionic technology for the purposes of application development. The categories which we are going to use for comparison are the same categories used for the Mobile App Development page. 

To learn more about other app development technologies (e.g. Flutter, React Native, Swift etc.) go to the Mobile App Development page.

INTEGU-Ionic-Framework

Table of Contents

1. Webview

Ionic is a webview technology intended for both the iOS and Android operating systems.

However, since it is essentially a website wrapped in a smartphone application, it can also be reused as a web service. This is of cause dependent on the level of necessary integration with the smartphone device APIs.

Ionic is a framework based on the Cordova framework. It therefore works in the same way, but as an addition provides hot reload and a set of native consistent components to work with.

INTEGU-Apache-Cordova

2. Development Cost

Ionic is together with Cordova among the cheapest development technologies, since the code base can be reused, not only for both iOS and Android, but also for any web project.

This also means that there might be a chance that the developer won’t even have to create an app for mobile platforms, if you are already in possession of a website which mirrors the intended content of the app. Although this might be unlikely, it is at least a possibility, if you for example want to recreate an online store, a news site, or a blog as a mobile application.

3. Programming Language

Ionic is a smartphone-application-wrapper for web development projects, and similar to the majority of web development technologies it is written in JavaScript.

It provides official Angular or React framework integration, unlike Cordova, which requires manual integration to any framework.

4. Page-By-Page Adoption

Doing a page-by-page adoption with Ionic is not recommended. However as with all programming, it can be done, but it will be the equivalent to working on two projects, where one is dependent on the other.

5. Supporters

The foundation (PhoneGap/Cordova) for the Ionic framework was originally developed at iPhoneDevCampin San Francisco. The original PhoneGap project was released by Nitobi. Currently, Adobe purchased Nitobi and later re-released the PhoneGap project under the new name of Cordova.

At a later point in time the Cordova project was used to build on top of to create the Ionic framework. The history and relationship between Cordova and Ionic might therefore also affect the support and community around the technologies.

When looking at Ionic’s GitHub repository, it is clear that it has attracted more contributors than its ancestor, Cordova, over the past two years. However, it would appear that the primary volume of commits comes from the Ionic organization.

INTEGU-PhoneGap

6. Open Source

Ionic is open source. The repository can be found here.

When looking at Ionic’s GitHub repository, it is clear that it has attracted more contributors than its ancestor, Cordova, over the past two years. However, it would appear that the primary volume of commits comes from the Ionic organization.

7. Device API-Access

Ionic can access native APIs through the same plugins as Cordova. However, these plugins will have an effect on the performance of the application.

Additionally, not all plugins are built with the same attention to detail, which means that you might experience some unwanted side-effects when compared to how the native device API is intended to function.

8. Performance

Ionic, together with Cordova, has among the slowest performance of all the mobile technologies we have reviewed. This is because the code is never compiled to native and therefore never gains a direct access to all the native APIs

Adobe even warns that Apple might reject apps build with Cordova, if their performance is too slow. Unfortunately, Cordova is not alone with this issue, as it is an inherited disadvantage of the webview technology. This of cause also means that Ionic is affected by the same performance issue.

Source: PhoneGap advice on dealing with Apple Application rejection (remember that Cordova is the open source version of PhoneGap)

9. UI Consistency

Ionic comes with a rich suit of native components, which can easily be implemented and reused. This is of cause one of the big differences between Ionic and Cordova.

This becomes especially important when considering that Apple might reject an application from the App Store, if it does not provide the correct “look and feel” required to fit into the iOS ecosystem.

10. Hot Reload

Ionic does not support hot reload (stateful), but it does support live reload (stateless) as part of the core technology. Unlike Cordova, that means there is no need for third-party plugins to enable this feature.

11. Require Native SDK

When developing the Ionic project, there is no need for neither the Android or iOS SDK, since you will get the same results from launching the project through the Chrome browser and setting the viewport settings to mobile with touch.

However, when the time comes to deploying the application to Android and iOS it will be required to install the native SDKs.

As mentioned in the Swift section, deploying to an iOS device requires Xcode, since it is the only way to get the iOS SDK. Unlike other non-native technologies (e.g. NativeScript), Ionic does not provide a way of deploying the app onto an iOS. This means that Xcode is the only option.

On the other hand, it is easy and simple to deploy the application to an Android phone, through the use of Android Studio to obtain the Android SDK.

12. Require Specific IDE

With Ionic it is possible to select your preferred web development IDE.

Dependent on which one you choose, you might be able to find special plugins or tools, which will improve the experience of developing with Ionic. However, from an objective perspective, this is probably more a question of individual preference.

Ionic highlights the Visual Studio, Webstorm and Atom IDEs, to name a few, as potential developer environment on their homepage.

When you eventually want to deploy your application to a physical device, it will be necessary for you to download and install Android Studio or Xcode.

Recommended Reading

Article

  • Introduction to Ionic – Ashish Singh T Bhatia – Blog
  • Ionic – Homepage – Ionic – Website
  • How to wrap Anuglar with Cordova – Elia Palme – Blog
  • Ionic – Repository – GitHub – Website
  • Ionic – Contributors – GitHub – Website
  • Introduction to Cordova – Wern Ancheta – Website
  • PhoneGap advice on dealing with Apple Application rejection – Adobe – Website (remember that Cordova is the open source version of PhoneGap)
  • UI Components – Ionic – Website
  • Live Reload – Ionic – Website
  • Deploying – Ionic – Website
  • IDE – Ionic – Website
  •  

About

Hi, I'm the Author

My name is Daniel H. Jacobsen and I’m a dedicated and highly motivated software developer with a masters engineering degree within the field of ICT. 

I have through many years of constantly learning and adapting to new challenges, gained a well-rounded understanding of what it takes to stay up to date with new technologies, tools and utilities. 

The purpose of this blog is to share both my learnings and knowledge with other likeminded developers as well as illustrating how these topics can be taught in a different and alternative manner.

If you like the idea of that, I would encourage you to sign up for the newsletter.

Cheers! 🍺

Didn't Find What You Were Looking For?

Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages
Scroll to Top