What is the Ionic Framework?
Basically, the Ionic framework is an open-source, mobile app development framework. It is used to build top quality hybrid mobile apps for Android, iOS, and Windows platforms.
The Ionic framework is mainly focused on building the UI design and interaction of your mobile app and it is quite a new technology.
Ionic Framework History
Drifty Co is the company behind Ionic framework. The concept of building this framework started way back in 2013 and from then on, they had been releasing the new upgraded versions of Ionic.
Ionic is highly dependent on the Angular framework. This means that Ionic 1 is heavily using AngularJS and same goes for Ionic 2, which is based on Angular 2 and the succeeding upgraded versions of Angular framework.
Ionic 1, which is the first ever release version of the framework, was unveiled on May 2015. On October of that same year, the first Alpha version of Ionic 2 was announced. On February 2016, the first beta version of Ionic 2 came out. On April 2016, the Ionic version 1.3, which is an upgrade to the Ionic 1 was released. After this, the Drifty team did NOT make any additional upgrade on Ionic 1 and just focused on delivering the new Ionic 2 framework instead. Finally, on January 2017, the final version of Ionic 2 was released in the market.
But wait…. don’t be surprised when I tell you that on April 2017, a new Ionic version 3 was released! Yes, that’s right! Ionic version 3 which was released in a span of barely 3 months after Ionic 2!
As I said earlier, Ionic is highly dependent to the Angular Framework, which means that the new Ionic 2 simply following the changes of Angular 2.
What happened is that, the Google team which handles development of Angular 2 decided to use Semantic Versioning for the succeeding versions of their framework. The Ionic team also followed this convention, and thus, the Ionic version 3.0 was released after Angular 4 was released last March.
But to clarify, there is actually very little difference between Ionic 2 and the new Ionic 3. In fact, Ionic 3 is still using the majority of code of Ionic 2 and hence, it is not a total re-write nor a brand new code base.
There is actually no way for the Angular and the Ionic team to release a totally brand new framework in a span of 3 months! That’s just… too short right?! What we have to understand here is the switch to the new Semantic Versioning system that they have used for incrementing the version numbers of the new releases.
Semantic versioning basically means that if your next release change will break the current API, then, you have to increment the major version number of your application. So for example, we already have Ionic version 2.0.0 release last January 2017. It has a version number of 2.0.0 where 2 is the major version, the next 0 digit is the minor version and lastly, the 0 at the end is the patch number.
In previous versioning system of both Ionic and Angular, they will only increment the MINOR version numbers on their succeeding releases, EVEN if they are breaking changes to its API. So it will go as Ionic 2.1, 2.2, 2.3, 2.4 and so on and so forth. The only time that it will change the MAJOR version number is when they will release a totally new and a complete re-write of the framework. Just like Angular 1 to Angular 2 and Ionic 1 to Ionic 2.
In Semantic versioning, the MAJOR version number will always be incremented for any changes that can break or affect the existing API. That is why, even though there is absolutely no new re-write of Ionic 2, the Ionic version 3 was still released. It is simply because there are breaking API changes that were introduced in that new version.
For Angular framework, they released the Angular 2 version on September 2016, then they skipped Angular 3 to advance in releasing Angular 4 on March 2017 which is just barely 6 months after releasing the original Angular 2 version.
As explained before, this new Angular 4 version is not a complete re-write of the original Angular 2. These 2 versions have minimal differences in the code base. The new Angular 4 and the upcoming Angular 5, 6 and so on and so forth have a few but critical changes that breaks the initial API of the original Angular 2.
And since Ionic is dependent to the Angular framework, the same versioning style goes with Ionic 2, Ionic 3 and the succeeding upgrades. Ionic 3 and the new upcoming versions only have small differences to the original Ionic 2 and actually, you can even call these new releases simply as Ionic 2 because they are almost the same.
Thus, throughout this tutorial site, we will use the term Ionic framework and Ionic version x interchangeably.