The Official Ionic Blog

The next generation HTML5 hybrid app development SDK

Today, we are excited to announce the soft release of Ionic 1.2. This release comes with over 100 bugs fixed, tons of PRs merged, and some awesome new features that I’ll get to in a second. It also marks the start of our transition into the next generation of Ionic. We are looking for help testing this release before we make it available by default in our starters and templates next week (so you’ll need to npm/bower install or download manually).

I’ve been really looking forward to writing this blog post for a number of reasons, not the least of which is that I feel like it’s been forever since we announced a major Ionic 1 release. I want to say that sorry for the lack of communication and improvements to Ionic 1 recently. We’ve been so excited about Ionic 2 and the problems it will solve for each of you that we’ve neglected to improve our bread-and-butter. You’ve been telling us you love Ionic 1 and you want it to get better, so today we are excited to give you what you want. Consider it an early holiday gift! 🎁

With this release, we’ve made some pretty significant changes to the way Ionic apps work, and some may require updates to how you’re using Ionic today. Please read this post carefully to best prepare your app for 1.2.

Native Scrolling

By default, Ionic 1.2 will use native scrolling on all platforms. When we first built Ionic, native overflow scrolling was very buggy in the browser, and to bring parity with features we’ve come to expect from mobile apps, such as pull-to-refresh and virtual scrolling, we decided we needed to have full control over our scroll view, so we utilized a JS scrolling technique. Generally, this worked okay on iOS but was poor on Android.

A few months ago we released a new version of Ionic with many of the core scrolling-related features implemented to work with the modern overflow scrolling on new devices and browsers (including modern Web Views on Android and Crosswalk). Today we are taking it a step further and making native scrolling the default.

In general, this should be a pretty immediate and possibly significant performance and user experience improvement to your Ionic apps, especially on Android.

However, there’s a slight possibility that the change could impact your app or any external libraries that depended on the old scrolling method, so please test with the new version.

To force Javascript scrolling, use <ion-content overflow-scroll="false">. Note: collection repeat still uses Javascript scrolling which we will phase out in 1.3.

New Slide Box

One of the most requested improvements in Ionic was a better Slide Box component for UIs that let the user swipe between a set of slides.

Today, we are releasing a new Slide Box based on the amazing Swiper widget. This is, by far, the most feature rich and widely used slider component out there, and it’s no surprise that many Ionic users requested us to support it officially. It also happens to be the new slider and markup that Ionic 2 uses, so you’ll be future proof!

With 1.2, we still support the old slider, but it’s deprecated and will be removed in a future release.

To use the new slider, use the <ion-slides> tag:

<ion-slides options="options" slider="slider">

The options argument is passed directly to Swiper and follows the official API options. Set a $scope.$watch on slider to get full access to the Swiper object to control the internal API.

Windows 10

Ionic 1.2 marks the first release with a new supported platform. Today, Ionic 1.2 supports Windows 10 and Edge, which runs on the new Windows Phone 10 platform.

For many, this is probably not the Windows Phone 8 update you were hoping for, but we just couldn’t get Ionic apps to perform well enough on that platform to officially support it. With all the changes and updates in the Windows/Edge ecosystem over the last few months, it made sense to just wait and see how it all played out.

This is a functional release that ensures existing Ionic apps run on Windows 10, and later releases will see formal design updates done to match the platform.

Mobile Web

Ionic 1.2 marks the first release where we actively recommend Ionic for those looking to build a mobile website (not just an app for the app store). Lately, the mobile web has been the center of attention with Google now changing how it ranks sites that use Download interstitials. Interstitials are the ads that you see on the mobile web that push you to download the company’s native app, and websites that utilize them instead of providing a nice mobile web experience are being penalized.

It’s fascinating how the mobile web is back in vogue. I’m proud that Ionic is one of few major players in mobile that actively supports this platform out of the box instead of only focusing on the native platform which feels like a step backward.

At Ionic, we know that the mobile web and the native app store environments can share the exact same code, they are just two different distribution methods with their own pro’s and con’s. An Ionic app for the app store would pair very well with an Ionic app for the mobile web. In fact, if you’ve built an Ionic app today, chances are you already have an amazing mobile web experience just waiting to be hosted on the web!

We are passionate about focusing entirely on the open web platform, and will continue to support using Ionic for both the app store and the mobile web.

Form Inputs

With Ionic 1.2, we no longer support using <label> tags anywhere in your app. Unfortunately, <label> triggers complex and buggy behavior in most web browsers, especially when using native scrolling.

To mitigate this and ensure your app behaves as expected, we will be moving to the new <ion-input> directive that also forms the backbone of Ionic 2 (see what I did there?):

<ion-input class="item item-input">
  <i class="icon ion-person"></i>
  <input type="text">

Note that <ion-label> now replaces <span class="input-label"> and comes with full ARIA support for accessibility.

Radio and Checkbox

We are dropping support for the raw HTML and CSS versions of Radio and Checkbox. Instead, you must use the directives.

For example, instead of this way of using radio:

<div class="item item-radio">
  <input type="radio" name="group" value="go" checked="checked">
  <div class="item-content">
  <i class="radio-icon icon ion-checkmark"></i>

You will use these directives, which implements something similar under the hood to ensure maximum support with Ionic and to reduce errors in implementing the complex wrapping needed to make these components work:

<ion-radio ng-model="choice" ng-value="'A'">Choose A</ion-radio>
<ion-checkbox ng-model="test" ng-checked="test" ng-disabled="test">Disabled Directive</ion-checkbox>

Also, this is the way these components work in Ionic 2 so you will be ready when v2 lands.

Note: we’ve updated the component docs for these components to reflect the change. Going forward, we are no longer supporting using Ionic without the underlying Javascript as it didn’t make much sense in practice.

Cordova Help

One of the most common issues Ionic and Cordova developers run into is the lack of a Platform.ready() or lower-level deviceready event firing in their app. Generally, this issue occurs because one or more plugins are in an inconsistent state.

The remedy in most cases is to remove the plugins using cordova plugin rm and adding them back, or possibly removing platforms and adding them back.

To help debug the case where device ready does not fire, we now track and report this case to you in a console warning. This is the start of a much bigger integration with Cordova plugins that we are working on for a 1.3 and Ionic 2 release.


Ionic 1.2 does not change ngCordova, our companion library for accessing the full native power of the device through simple Angular 1 services. However, we are working on a new library called Ionic Native that solves a number of issues with ngCordova. Namely, that plugin wrappers would get stale and become extra surface area on top of the plugin itself that needed to be maintained, and the tight coupling with Angular 1.

The combined effect was that ngCordova plugins would get out of date or would hide useful functionality of the core plugin, making the project a pretty large maintenance overhead that we could not bear while also working on the framework.

Ionic Native takes a much simpler approach by wrapping plugin APIs and also providing TypeScript on top of existing plugins. That means you just need to create a stub for your plugin, say Camera, and Ionic Native will properly wrap the public API with promise and observable support that can be used by anyone building a Cordova app regardless of whether they choose to use Ionic, Angular 1, or Angular 2, or a totally different framework.

For those using ES6+ and TypeScript, which will be the default for Ionic 2, your plugin is exported as a service that you can use just like the original plugin. Additionally, TypeScript definitions mean that you’ll now have awesome auto complete for these native plugins if using a compatible IDE like VS Code or Atom 🤘

For those using Ionic 1 and Angular 1, we will export mostly identical service names as ngCordova (like $cordovaCamera), so moving from ngCordova will be simple.

Stay tuned for more info on this project which is not quite ready to be used in your apps today, but the combined effect here is that Ionic apps in the future are going to ship with this powerful library that unlocks the full power of the device, instead of having to find and add a separate project to your app.

We are also going to continue to document and show examples of how to use these interesting plugins, which was one of the big draws of ngCordova. And, if you’re already using ngCordova today, moving to Ionic Native in the future should just be a drop-in replacement of the script tag, so just stay put for now.

Ionic View

We’ve had a number of reports about issues and missing features in Ionic View. We are working on a new release for sometime in the next few weeks for both Android and iOS. With this release will be many more native plugins for your apps to utilize.


Today, the Cordova team announced preliminary support for WKWebView in Cordova. This new Web View comes with a beefier javascript engine and more modern Web API support. NSHipster did a great post on the differences with the UIWebView on iOS, so take a look if you’re interested.

WKWebView and Cordova/Ionic are still early. We have a guide for testing this release and we would love your feedback on how it works for you. This is the future of web views on iOS so one day we will make WKWebView the default, but until then we need to fully understand the impact on Ionic and Cordova apps.

Looking forward to Ionic 2

As we look to Ionic 2 alpha and beta coming soon, with a stable release in 2016, we are seeing a ton of opportunities to tell the story about how Ionic 1 apps can upgrade to Ionic 2, and helping make the transition easier and less scary for people.

With 1.2, we are starting to bring parity to directive names used in v2 to v1. For example, ion-input, ion-slides, ion-label, etc. are all new directives in 1.2 that map to v2 components. This is great because it means fewer changes will be needed in your templates to move to v2.

Our developer advocate, Mike Hartington has started a series on adding TypeScript to your Ionic 1 apps. It’s a great way to dip your toes into this new world that Ionic and Angular 2 live in.

We are also going to start updating Ionic 1 issues with a v2 milestone. Many issues people have with Ionic 1, especially with navigation, will be resolved in v2. We strongly believe ionic developers will have a natural upgrade to v2 and will see tangible user experience and performance upgrades. v2 won’t be a separate project forever, so we are starting the process of integrating the v1 issues and code into a future v2 world.


Ionic 1.2 comes with a ton of changes, bug fixes, and improvements. Take a look at the CHANGELOG to see if your pet bug was squashed (👞 🐛).

From all of us at the Ionic team, we want to thank you for your continued support. We’ve been working incredibly hard behind the scenes to make sure that the open web platform that we’ve all been using for decades is a first-class citizen on mobile. Ionic 1.2 helps us push in that direction, and Ionic 2 takes that to a whole new level.

We are so excited to take the wraps off some big announcements in the coming month or so, so stay tuned!

  • Tom Beech

    Boom, looking good guys – Keep up the great work

  • Matheus

    Every release is a ton of nice surprises. There is no doubt why I fell in love about your work, guys. One more time, congrats. But some doubts raised about this big step forward, such as:

    – “Going forward, we are no longer supporting using Ionic without the underlying Javascript as it didn’t make much sense in practice.”. Is that means that HTML and CSS won’t be available anymore and only angular directives will be used?

    – Today is the first step to let ngCordova behind? I know is not for now, but is it a start? How Ionic Native (by the way, the name sounds familiar 😛 ) will be open to ngCordova authors and contributors to move on?

    Once again, congratulations.

    • yesimahuman

      Thanks, we appreciate that!

      For the first question about the CSS and HTML, it really just means that we are moving away from something like this:


      To using corresponding directives like , , and

      There are two major reasons for this:

      1) if we have you write the markup, then if we change the internal implementation it breaks your code. We saw this with iOS 9 where we patched but fix might not apply if you had written custom markup.

      2) Many components have javascript underneath that makes them do interesting things. This is really hard when the markup is not controlled. It’s also just more work for you to write this code 😛

      As for ngCordova, the plan is to have most of the plugins come over for the first release. Since we export the same Angular 1 service names, it shouldn’t change much of anything for v1 users. For v2 users and even non-Ionic cordova users, they’ll be able to use this library without having to use Angular 1.

      Going forward, we want Ionic to come out of the box with a ton of native features, but also have a good fallback for the web as the Web API feature set continues to expand.

      • Matheus

        I got it and I completely understand the reasons about leaving html and css like that. However, it will make the learning curve more steep to some people, especially newcomers. In all my presentations about Ionic, besides all the great stuff about the SDK, audience gets amazed how regular HTML and simple CSS does the magic. This ends up making Ionic more look like others frameworks the impose their own markup language to make the app. But if you guys believe is better this way, hope I too. Thanks for answering my doubts. 🙂

  • Anthony Bradley

    Great work thanks a million, shame double range sliders aren’t there, but hopefully soon

  • fiorotti

    Aí sim hein!

  • Simon Reimler

    It’s impossible to not love the Ionic team. Great job again, everyone!

  • Frantisek Kolar

    Great stuff.

    Any plans to maybe make collection repeat to go native ?

  • Usman Ahmad


  • Robin

    Daaaaamn, thanks guys!!!!! 🙂

  • Joel Piccoli da Rosa

    Great Improvements! Looking forward to Ionic 2! o/

  • Mark Bolden

    Awesome work everybody! I am looking forward to this!!

  • Fernando Ferrari

    are the docs gonna be updated?

    • http://www.raymondcamdencom/ Raymond Camden

      Keep in mind 1.2 isn’t out yet – it is just ready for testing. So the docs reflect what you get now – 1.1.

      • Wallace Breza

        When can we expect 1.2 to drop and ready to use?

        • http://www.raymondcamdencom/ Raymond Camden

          Looks like next week:

          “We are looking for help testing this release before we make it available by default in our starters and templates next week”

          • yesimahuman

            Next week. Treat this one as an “rc” release, we’ll move everything over after community testing and feedback.

      • Jonathan Beech

        Are the 1.2 docs complete / hosted anywhere?

  • Rafael Neri

    Very Nice!

  • Jack Guy

    Love the changes.

    My one reservation is that Angular 2 still seems pretty far from ready for prime time at the moment. Do you see this as potentially holding back the release of Ionic 2?

    • yesimahuman

      It was a concern, but the timeframe for ng2 I hear is quite aggressive now that the alpha period has been a success. Stay tuned 🙂

      • Julian

        And they just announced their Beta version

  • Igor Silva

    [BUG]ion-spinner stopped rotating.

  • Allan Downs

    Great job!!

  • Kyle Roach

    Yay super excited for this release!

  • imZenko

    Can’t wait, nice job fellas!

  • blinkcursor

    I’m a non-Ionic user who has been keeping tabs on the project but has no interest in learning Angular. How much closer are we to being able to use Ionic with something else (e.g. Meteor)?

    • Juarez Filho

      @blinkcursor:disqus did you see this post

      • Osei Fortune

        He still has to use angular :3 unless he chooses meteoric

    • yesimahuman

      It’s something I want to do but we don’t have any hard timeline for it. I think it’s unfortunate that the community is divided by something that really isn’t a major part of Ionic’s value (the MV* framework underneath). I’d love for Ionic to work with Angular, React, Ember, etc.

      We’ll get there, just not in the short term.

  • Pijamoney Get Free Bitcoins

    Angular, ES6+ and TypeScript are all bloated specs with no real improvements. They only look good in propaganda, for those selling it in order to restrict and control the web tooling markets. ES5 is forever good enough for those who love Javascript. Nothing is getting better, only bigger and weirder.

    • yesimahuman

      ES5 is great, and Ionic works great with it (and Ionic 2 does as well!). TypeScript and ES6+ help control complexity and make code easier to maintain and more standard. In practice we’ve benefited from that, but it’s certainly not a requirement to use it. Plus, lots of people love the autocompletion that TypeScript gives you.

  • Dyego Rodrigo

    Awesome, I’m looking foward to see what is next 🙂

  • Jon Hines

    Thanks for the updates and love your stuff (ionic), one thing that worries me and have been hearing is that when Angularjs goes to Version 2, its going to be a huge learning curve to learn the language. Is this going to affect ionic framework?

    • yesimahuman

      I’m planning on doing a blog post on this, because I think most people will find it pretty straightforward. The biggest change is really moving to ES6 and TypeScript. The benefit to learning that is pretty much everyone is moving to that, so you’ll need to learn it eventually. It does make the transition doubly hard though: new framework, new version of the language.

      Most of the feedback we’ve gotten has been positive about the transition, but we’ll do more coverage of it soon!

  • moussaoui91

    i love u guys

  • Okwara Godswill Ndukwe

    Awesome guys, There’s no going back!

  • Matthias Lienau

    Great news, keep up the good work!

  • Defaced

    looks good guys

  • aaronksaunders

    really like the ionic-native feature, Plugins are always a PITA when working with Cordova

  • Renato Molina

    Nice! keep up the awesome work!

  • Adam Proulx

    B) great work ionic team!

  • Pete Chapman

    Awesome news about the Windows 10 support! Can’t wait to try it! Well done team.

  • Juan David Nicholls

    Wowwww! The “” works in Windows 10 Remote Machine now? See please

  • Virender


  • Vijay

    Well done the team ionic. Very happy to see the support for windows 10. Kudos. Please can anyone point me in right direction to test my ionic app in windows phone. Publishing and viewing the published app in windows 10 and so on. I am developing the app using windows machine (OS 10). Your help is really appreciated. Thanks

  • Albert Au

    Great ,, but try the ionic lib update and cannot see the update reflected on my existing app

  • arun

    awesome work cheers !!!

  • codeinfaith

    When can i see 1.2. being released? I know there will be bunch of changes to make, but want to try out for better ionic apps..

  • Ramzi Youssef


  • Bikash Sundaray

    Really like the things related to “scroll” because that is most important for performance and migration path plan for ionic 2.0. But wanted to get a support for Windows Mobile 8.1. Good work guys !!! 🙂

  • Ashteya

    Wow! I was not expecting such a big update for Ionic 1, great work!!

  • ha1ku

    How does Ionic Creator fit in with the migration to Ionic 2?

    • yesimahuman

      The way creator is built, once v2 is stable we will have a “v2 output” mode. The tool itself won’t have to be modified much we will just need to output v2 compatible code, which is pretty straightforward. Stay tuned!

  • Fayozjon Berdiev

    Thank you Ionic creators! You rock as usual 🙂

  • Alex Ballesté

    Well done guys. Thanks for the great job. Just a question. I try to an existing project to 1.2 with ‘ionic lib update’ but still getting the 1.1.1. If I try with -v 1.2.0 I see ‘Invalid version’. Am I missing anything?

  • Wil Rodríguez Guevara


  • Matthias Götzke

    What bad behavior is triggered by label? If I remember correctly angular material and other frameworks all use label, so why shouldn’t they?

    • Emitstop

      Because Ionic decided to take the short-sighted and easy route and replace an extremely valuable and feature rich element like with a lackluster replacement with broken aria and missing standard features. Why doesn’t clicking on a check it’s associated checkbox?

      You’re leaving your users to recreate extremely basic HTML features already built into every browser. If something as basic as a element breaks Ionic framework, thats a problem with ionic framework, not the other way around. What a joke.

  • Sushant Verma

    Not having much luck running on windows 10. I replaced the /lib/ionic with the contents of /release in the 1.2 zip. However it seems to crash as soon as i launch. Visual Studio is showing the error is on > Anonymous function [ionic.bundle.js] Line 16558.

  • draderpt

    How can i update my ionic without lost my job?

  • susendaran kumar

    Well done guys keep it up..

  • Gus Smith

    Never used Ionic, but this relerase is interesting for me. To be sure you can create mobile web applications without needing to generate a native app first?

  • Aman

    Very well done for supporting SwiperJS officially ! Kudos ! I have published one of my app using that library and its really cool and with rich set of API.

  • ΚυριάκοΣ Μιχαήλ

    Actually, i’m impressed with Ionic team today. Such a respective work done here

  • Roberto Luiz Debarba

    Ionic creator export with new ionic 1.2 components?

  • Mohan Kumar D M

    Great to hear about mobile web announcement.. I’ve been using ionic from past 6 months and already a mobile web which works great.

  • Ron Farko

    Congratulations to the Ionic team for achieving such a great milestone.
    I have a question, I have the Ionic 2 (beta) installed which supposed to also build Ionic 1.x apps.
    Does Ionic 2 CLI support the new features of 1.2 as well or we need to switch to Ionic 1 CLI?

  • QuoteLight Dashboard

    How do I go to a specific slide using swiper?


  • David Pike

    With the JavaScript scrolling being phased out in 1.3, will the collection repeat directive still be supported, or will that also be phased out as well?

  • Biagio Paruolo

    Yes, Win10 support!

  • Dante Cervantes

    well done, love you, i will ever use ionic 1

  • Sébastien Loix

    Great news, thank you! It seems that the “has-bouncing=’true'” does not work with the native scroll, is it correct? I managed though to have it again by going to back go js scroll (overflow-scroll=”false”)
    I only checked in the browser so if any one can confirm that with native scrolling removes bouncing that would be great.
    I need this feature for a custom ‘pull refresh’ method I had.

  • James Parsons

    So how can we add Windows 10 as a platform, and also we will still see Windows 10 support (and maybe a UI to match) in Ionic 2.0?

  • Brian Jenkins

    Although the post mentioned support for mobile web, we still cannot find information about how to do this with Ionic. Any suggestions on where we can look?

    • eithe

      Did you find some documentation or something about this, Brian?

    • Matt Silverman

      Brian – I have this same question. Any luck finding an answer?

  • stonex

    Nice Job!

  • Alex Escalante

    I have an ionic 1.1.1 app that I will be updating as soon as GitHub is back again. I already started using WKWebView and it seems like an improvement. I have an iPad 2 where I started running my app on today and let’s say there’s room for improvement in performance. I hope updating to 1.2 gives me a smoother experience. Native scrolling sounds nice.

  • Nirav Gandhi

    this is great! could someone please point me to component documentation for this?

  • Vinod Shintre

    awesome this is getting better

  • Shion

    Well done, but why all of this is not documented? When I want to use some of this new features I have to come here. ion-slides, ion-input, etc etc. Thanks!

  • wzhsh90

    I upgrade the ionic lib version to 1.2.4 but the ‘$ionicView.leave’ and ‘$ionicView.afterLeave’ can not work but my current version (1.1.0) its works.I also test the version 1.2.0 but still not work. who can tell me what is the problem??

  • Jorge Cacho

    Where can I find the steps to add Windows 10 platform and build for W10?