Why upgradation from Ionic 1 to Ionic 2 is required?

Millions of Mobile app developers around the world have built close to 1.2 million apps using an Ionic framework and Ionic 1 was built with the intention to help web developers build apps using their existing skill sets. Ionic is the most powerful and popular cross-platform mobile app development technology.

However, a recent massive ecosystem shift in JavaScript and embracing new components like Java web components has embraced towards next-generation mobile app framework with JavaScript called Ionic 2. At the higher level, Ionic 2 is a complete rewrite of Ionic 1 and is based on Angular >=2 and thus has gained huge popularity in the recent times and this paradigm shift has resulted in web developers to develop mobile apps more effectively without possessing huge skill sets.

It’s possible to actually move the code developed in Ionic 1 to Ionic 2 without making any significant changes to the existing code. However, if you are new to Ionic then it’s suggested to develop your app irrespective of the platform in Ionic 2 due to a huge number of added features and code optimization.

Below are some of the reasons why developers intend to migrate from Ionic 1 to Ionic 2:

1. Improved Performance

The overall purpose of the app is not just to provide good features and good user experience but an app must be able to: Speed up initial loading time, Remove a touch response delay, and improve the server response time and Minify JavaScript bundle size. The initial Ionic 1 had a huge issue with respect to prolonged application boot time because of the huge bundle size code. Ionic 2 thus comes with a brand new pre-compilation feature called AOTC(Ahead-Of-Time-Compiler) this helps to minimize the JavaScript code and thus precompile templates reducing the overall time. AOT also bundles large components and storage utilities into a hyper-efficient format which in turn results in instantaneous template rendering. Every component present in Ionic 2 is thus rendered upon to increase CPU performance to a large extent and also supports high-performance native scrolling. Ionic 2 comes with a new concept called Virtual scroll that allows to only creating enough elements in the DOM to display list data present on the screen.

Ionic 2 scrolls with 60 FPS(Frames Per Second) and thus every component makes use of new API’s to support high-performance native scrolling replacing the JavaScript scrolling in native Ionic 1. This allows scrolling through very large lists with minimal performance hit.

Some of the routing rules present in Angular JS2 helps in making Ionic 2 about 5x times faster than the native Ionic 1 version, with the use of some of the components and directives instead of the traditional controllers, enables a higher performance of Ionic 2 version overall when compared to Ionic 1. Any of the components can also use Typescript (with all its features that offer better control over code) and are now easier to work with thanks to enhanced dependency injection in Ionic 2.

2. Native plugin Support and Storage Utilities for Ionic 2

Ionic 2 comes with a Powerful set of API’s support for accessing app’s that require Bluetooth support, Touch ID, Camera usage, GPS, Finger Print support etc. The ion-List has a wide range of interface elements for mobile app development ranging from basic text all the way to buttons, toggles, icon, thumbnails etc.

Additionally, it comes with an easy way to store key/value pairs and JSON objects, Depending on the platform being used by the app the storage engine picks the best one like when running an application on native app Storage will be prioritized using SQLite, while running on Web or Progressive Web App Storage will attempt to use IndexedDB, Web SQL. So the user need not worry about the Underlying storage engine. This storage engine can thus be configured either with particular storage engine priorities depending on the application being created or with custom configuration options for specifying the custom flags.

3. More components

Applications built with Ionic irrespective of the version being used are built with high-level building blocks called components and these components allow us to construct a User interface for the app being built. Ionic 2 comes with a number of components. Ionic 2 comes with 30 high-quality components in contrast to Ionic 1 which has around 15 core components and also Ionic 2 has countless API’s support and new features which makes it the most preferred choice among web app developers.

One of the major and newly added Navigation components of Ionic 2 allows navigating and linking to any page in the app and new pages are pushed onto and popped off and moved forward and backward in history. Ionic 2 library provides a wide range of default components like lists, segments etc. which can be easily added to your applications however sometimes it becomes necessary to build your own components and Ionic 2 allows you to build your own custom Component. All Ionic 2 components use OnPush strategy which clearly implies that any change detection is not performed at all times time but, instead only when the input changes this strategy avoids unnecessary rendering of components sub trees thus optimizing the app. Ionic 2 also possess more strong theming based capabilities and thus, supports a large number of new native APIs like Taptic on iOS Platform.

Also, Forms have gone through quite a bit of change in Angular 2 hence apps can have much more complicated and in-depth forms compared to Ionic 1 and these new Form controls works natively and also on the web.

4. Support for progressive Web Apps

Progressive Web App’s (PWA) is the new paradigm shift towards mobile app development which brings new API’s to app development to bring new user experience and capabilities. These apps thus attempt to combine features offered by both modern browsers with the benefits of mobile application development. Building PWA’s is the need of the hour as they are easy to delight the users.

Ionic 2 is embedded with a number of technologies which run in web view and when all of these are bundled as a Native app this makes the job even easier to work perfectly with any kind of browser without many changes. This is thus a huge advantage in itself when building your PWA with Ionic2, because if you already aware of how to build an Ionic 2 app packaged with a native application, then you are already 95% on its way in building a PWA.

Since Ionic 2 supports PWA’s an ionic developer can easily deploy the mobile app to the app store and mobile web platform with the exact same code. This is very important in recent times since different businesses have different requirements and some business cannot afford to lose their incoming traffic with just either of the app or web-version support thus requiring support for cross-platform-Where one app runs natively and other on the web without any changes to the actual code of deployment.

5. Modern JavaScript

The main reason to migrate to Ionic 2 from Ionic 1 is its ability with which it can convert ES5 Angular 1 JavaScript into modern, standards-compliant ES2015/TypeScript.JavaScript ecosystem is embracing ES2015 and TypeScript, and hence web-based application code will benefit to the maximum from this change thus, enabling the developers to work more effectively with the rest of the JavaScript.

Now, in particular, all the enterprise teams across companies developing mobile applications would find TypeScript to be a blessing in disguise in order to achieve maintainability of the code and provide good stability to their code, which comes with a powerful type system and advanced IDE features bundled with it.

Ionic apps utilize Typescript and SASS code. This code thus needs to be converted into browser-friendly code irrespective of the type of browser being used or tested upon. A rock solid and functionally stable build processes thus required to achieve this level of programming in development of an application. @ionic/app-scripts which are present in Ionic 2 are thus a set of scripts that can be configured to provide and also make it easy to create either a simple code or an ultra-highly customizable build process in developing an application across various platforms and browsers.

Ionic 2’s new CLI allows developers to use more optimized CLI and makes it possible to create pages, components and directives right in the command line. It also provides effective error handling and this speeds up the development process for an app. Error handling helps in debugging the code to a large extent.

6. Faster DOM Performance

Creating a good application requires efficient writes to the Document Object Model (DOM) and it has evolved a lot in Ionic 2 compared to Ionic 1. Firstly in order to ensure smooth and seamless scrolling, a number of updates have been made to DOM. In order to achieve reactive User Interface (UI), manipulation of DOM and performance enhancement of JavaScript is important.

Let’s just illustrate with a simple example, For creating 1,000 plus rows in a table with thousands of entries takes close to 126 milliseconds with vanilla type JavaScript, which is 110% more (264ms) with Angular.1.x version, and only 40% more (177ms) with Angular >= 2 version and hence it’s a drastic and significant improvement. With the above example, it’s clear that the performance of Angular >= 2.x version is much higher than that of Angular 1.x version. Ionic 2 has seen huge benefits from this performance upgrade.

7. Introduction of Web Workers

Web Workers allows the application to run scripts in background JavaScript threads. Web Workers will thus be capable of performing any kind any number of tedious tasks and any number of HTTP requests present outside of your application context without having much interference and with user interface being used. Almost all web browsers currently support Web Workers irrespective of the platform being used.

With Ionic 2 running web applications with Web workers is made easier. Ionic 2 is already experimenting with Web workers and Ion-img component is one of the examples for the same. It delegates the HTTP call to web browsers and supports Lazy loading(Retrieve and load the image only on the viewport)

8. The new Web Animation API

Ionic 2 is based on Angular >=2.x, thus making the developers to easily access the new Web Animations (W3C) via the Angular animation system.

The Web Animations API is a JavaScript API that provides developers with access to the browsers animation engine and is thus one of the most performant and promising ways to animate the web.

Conclusion

Ionic 2 is thus a huge step forward in the mobile app development industry although some set of components in Ionic 1 is similar to Ionic 2, Ionic 2 provides a performance enhancement and offers loads of tools that are not present in Ionic 1 as seen above.

Since Ionic 2 is completely revamped from Ionic 1 it will not be a very easy switch from Ionic 1 to Ionic 2, but however, it’s worth the switch. Ionic 2 is a step forward in Mobile-application development industry and is here to stay. And thus provides a performance boost and more maintainable code for app development irrespective of the platform being used. Ionic 2 supports a number of platforms like iOS, Android and Windows and also supports all major web browsers available in the market.

With Ionic 2 app will be more native than ever and is thus the most recommended way for creating apps.

Latest posts by Rahul Huria (see all)

Leave a Comment