Mobile apps with web tech (HTML5, CSS3, JS)
Focused on mobile first
Easily customized
Built using Angular
Uses Cordova/Phonegap
Top 40 Open Source projects (~23,000 stars on GitHub)
Amazing community
Ionic apps have topped app store charts
Fortune 50 co’s to Y Combinator/TechStars companies
App Showcase (showcase.ionicframework.com)
Hybrid SDK that didn't exist
Validated the hybrid approach
Garnered massive adoption
Built during iOS 6
Android 2.3 - 4.3
Better/faster devices!
Fewer slow/bad devices!
Widely available web APIs!
Improved browser engines!
Same powerful framework
With lessons learned from v1
Amazing performance from Angular2
New features
Simplicity
Platform Continuity
Performance
Creative Freedom
Code once
Component Model
Elements and attributes
Ready for customization
Clean JavaScript
<button>...</button>
<button danger>...</button>
<ion-checkbox>...</ion-checkbox>
<ion-list>
<ion-item>...</ion-item>
<ion-item>...</ion-item>
</ion-list>
<ion-navbar>
<ion-title>Profile</ion-title>
</ion-navbar>
<ion-content>
{{first}} {{middle}} {{last}}
</ion-content>
@Page({
templateUrl: 'profile.html'
})
export class Profile {
constructor() {
this.first = 'Keith';
this.middle = 'D.';
this.last = 'Moore';
}
}
<ion-app></ion-app>
@App({
template: '<ion-nav [root]="rootPage"></ion-nav>'
})
class MyApp {
constructor() {
this.rootPage = HomePage;
}
}
iOS : Android
One code base
Same HTML and JS
More than just different CSS
~900 Ionicons
Now SVGs
iOS versions
MD versions
<icon home></icon>
<icon mail></icon>
<icon share></icon>
<icon map></icon>
Navigation tightly-coupled to address bar
UI-Router: challenge to have full control
Developers NEED complete control
Rethought navigation for v2
Similar to iOS/Android
Full control of nav experience
URL and deep-linking support
Push on to the nav stack
Pop from the nav stack
Insert/Remove/Update
URL reflects app's state
pushSettings() {
this.nav.push(Settings);
}
goBack() {
this.nav.pop();
}
resetHome() {
this.nav.setRoot(Home);
}
Apps must fit their brand first
Numerous Ionic themes
Build tools already included
Sass is enabled by default
Quickly create entire theme
Design for your brand
Add, Remove, Rename
~Everything is a variable
$colors: (
primary: #387ef5,
secondary: #32db64,
danger: #f53d3d,
light: #f4f4f4,
dark: #222222,
favorite: #69BB7B
)
Mix of CSS and JS
CSS animations limited
Difficult to interact with
.entering-view {
transform: translate3d(...);
transition-property: transform;
transition-duration: 300ms;
}
.entering-view.active {
transform: translate3d(...);
}
Browser's animation engine
Flexibility of JavaScript
Native on Chrome/Android
Great iOS polyfill
Extend and add animations
Interactive control
Thin wrapper to WAPI
~ Everything has a config
Global config
Platform config
Attribute config
Component instance config
v1 was built with ES5
v2 built with the latest standards
ES6 brings many new features
ES6 + Decorators + Types
Ionic 2 / NG2 built using TS
Editor Code completion
Less Code to write
[optional]
Batteries included
Brought straight into Ionic
Easier to get native access
GPS, Bluetooth, Camera, etc.
ES6/Typescript transpilation
Sass compiling
Cordova builds
Scaffolding
Resource Generator
Crosswalk
Package (iOS and Android)
Deploy to Ionic View
Deploy to App
Push Notifications
Authentication
OAuth2 (FB, Twitter, etc)
Ionic Lab
Ionic Creator
Analytics
2M+ forum page views/mo.
105 Meetups worldwide
3,000+ active Slack members
4,000+ Ionic apps created every day
Angular2 Beta released December 15, 2015
Ionic2 Beta released in February 10, 2016
Angular2 Release Candidate rumored to be May 2016
What's your risk tolerance?
What does your app do?
Release Candidate soon after Angular2 RC
Web Worker Support
Server Side Rendering
Build time template compilation
Staying 'Nsync with Angular2
Full support for ionic.io services
More tooling (testing, constants, etc)