Apple launches the Iphone
Google follows shortly with Android
Microsoft with Windows Phone
...............
Apple: IOS SDK with Swift/Objective C
Google: Android SDK with Java
Microsoft: Windows SDK with .NET
...............
Proficiency in each platform required
Entirely separate code bases
Expensive
Why are we still coding for multiple platforms in 2016?
“But I hear that Hybrid apps are slow!”
“Most people that say this have never developed Hybrid apps'”
If anything you are building is slow, don't blame the technology. You have either chosen the wrong approach, or are doing something wrong.
Year | Device | Processor | RAM |
---|---|---|---|
2007 | iPhone | 620 MHz | 128 MB |
2010 | iPhone 4 | 1 GHz | 512 MB |
2016 | iPhone 6s | 1.8 GHz dual-core | 2 GB |
Well no not really
Provide a lot of cool view component APIs
Cool animations & transitions
Solid navigation
Gestures
..................
SDK for building mobile apps with HTML5
Built on top of Angular JS
(You'll feel right at home)
Extends the HTML vocabulary
Proven for large-scale app development
Custom UI Components using Directives & Services
CSS generated from the Sass preprocessor
Quickly give your app its own look and feel
CSS designed to be easily overridden
Variables based with default settings
Your App
Ionic
Angular
WebView (Cordova)
Native App
Top 40 OSS project (~24,000 stars on GitHub)
Over 1.5 MILLION apps built with Ionic
Ionic apps have topped app store charts
Fortune 50 co’s to YC/TechStars companies
Amazing community
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! (WKWebview)
Same powerful framework
With lessons learned from v1
Amazing performance from Angular2
Tons of 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}} {{last}}
</ion-content>
@Page({
templateUrl: 'profile.html'
})
export class Profile {
constructor() {
this.first = 'Biff';
this.last = 'Tannen';
}
}
<ion-nav [root]="home"></ion-nav>
@App({
templateUrl: 'app.html'
})
class MyApp {
constructor() {
this.home = HomePage;
}
}
iOS : Android : Windows
One code base
Same HTML and JS
More than just different CSS
~1000 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
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,
)
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
[optional]
Batteries included
Brought straight into Ionic
Easier to get native access
GPS, Bluetooth, Camera, etc.
ES6/Typescript transpilation
Sass compiling
Cordova builds
Webpack bundling
Scaffolding/Architecture
Recommended best practices
Crosswalk
Lets go to this link
But wait,
The Ionic CLI
Different Ionic templates
Theming Your App
Ionic View App
The New Ionic Creator
Ionic Lab
$ npm install -g ionic@beta
$ ionic start myapp --v2 --ts
$ cd myapp
$ ionic serve
Forum Is Great
Top Notch Docs
105 Meetups worldwide
6,000+ active Slack members
Which version of Ionic do I use?
You are new to Ionic
Know V1 pretty well
Want all the cool new feature
Don't mind learning Angular 2
It is in Beta, but its a really good beta
Angular 2 is in RC, Ionic will soon follow
You already know angular 1 very well
Want to build something in production like ASAP
Don't require the latest features like MD & Windows Phone
Getting started guide ionicframework.com/docs/v2/getting-started
Documentation ionicframework.com/docs/v2/
Visit the Community Forum forum.ionicframework.com
Contribute on GitHub github.com/driftyco/ionic
App Camp appcamp.io