27
IONIC V2 Jad Salhani | @JadSalhani

Ionic2 jad-salhani

Embed Size (px)

Citation preview

Page 1: Ionic2 jad-salhani

IONIC V2

Jad Salhani | @JadSalhani

Page 2: Ionic2 jad-salhani

Computer Science graduate from the American University of Beirut and Product Manager at Novium, I have invested a lot of my time into Mobile development and research. My work varies from Java Web applications

to Android native apps to AngularJS webapps and mobile apps

A BRIEF ABOUT ME

Jad Salhani

Currently, I'm working on 6 projects, 3 of them are Ionic 1 Applications (eTobb, MyBartender, AreaPlug), 2 are Ionic 2 applications, and 1 is an

Angular 2 resource website (howtoangular.io)

Page 3: Ionic2 jad-salhani

Side Menus

Tabs

Actionsheet

Modal

Pull To Refresh

Slidebox

The beautiful, open source front-end SDK for developing hybrid mobile apps with web technologies.

Infinite Scroll

Swipeable List

Collection Repeat

Popup

Popover

Loading Overlay

Inputs

Buttons

Form Controls

Page 4: Ionic2 jad-salhani
Page 5: Ionic2 jad-salhani

ONE MILLION apps built with the SDK

Ionic apps top app store charts

Used everywhere from

Fortune 500 co’s to YC/TechStars companies

Page 6: Ionic2 jad-salhani

A LOT'S CHANGED

Better APIs

ES6/ES7 & Typescript

Better Devices & OSs

Did I mention ES6?!

Page 7: Ionic2 jad-salhani

ANGULAR 2

Page 8: Ionic2 jad-salhani

Angular 1 - getting long in the tooth

Lot of NG specific APIS for yesterday's browser

Wasn't built for ES6/7

Page 9: Ionic2 jad-salhani

NG-EUROPE

RIP $scope, Directives, Controllers, Service

Page 10: Ionic2 jad-salhani

NG1 APIs

Page 11: Ionic2 jad-salhani

ES6 Class

export class MainController { constructor(){ this.items = [1,2,3]; } add(){ this.items.push(this.items.length + 1) }}

Page 12: Ionic2 jad-salhani

TEMPLATES

Page 13: Ionic2 jad-salhani

NG1 Template

<div ng-controller="MainCtrl"> <p ng-repeat="item in items">{{item}}</p> <button ng-click="add()">Add item</button></div>

Page 14: Ionic2 jad-salhani

@Component({ selector: 'hello-app', template: ` <p *ngFor="#item of items">{{item}}</p> <button (click)="add()">Add item</button> `})

export class MainController { constructor(){ this.items = [1,2,3]; } add(){ this.items.push(this.items.length + 1) }}

Page 15: Ionic2 jad-salhani

Controllers => Classes Directives => Components

Angular.module => ES6 Modules

Page 16: Ionic2 jad-salhani

WELL, WHAT ABOUT IONIC?

Page 17: Ionic2 jad-salhani
Page 18: Ionic2 jad-salhani

Simplicity

Platform Continuity

Performance

Creative Freedom

Code once

Page 19: Ionic2 jad-salhani

<ion-content> <ion-list> <ion-item> <ion-avatar item-left> <img src="img.png" /> </ion-avatar> <p>User 1</p> </ion-item> </ion-list></ion-content>

<ion-content> <ion-list> <ion-item> <ion-icon name="person"

item-left></ion-icon> <p>User 1</p> </ion-item> </ion-list></ion-content>

SIMPLICITY

Page 20: Ionic2 jad-salhani

@Page({ template: `<ion-navbar> <ion-title>{{name}}</ion-title></ion-navbar><ion-content> Hi, my name is {{name}}</ion-content>`})export class Profile { constructor() { this.name = 'Mike'; }}

SIMPLICITY

Page 21: Ionic2 jad-salhani

LET’S LOOK AT A REAL APP

Page 22: Ionic2 jad-salhani

EVERYTHING FROM IONIC 1 IS IN IONIC 2

Page 23: Ionic2 jad-salhani

JUST MUCH MORE POWERFUL

Page 24: Ionic2 jad-salhani

WANT TO TRY IT OUT?

Page 25: Ionic2 jad-salhani

NOW IN BETA!IONIC.IO/2

Page 26: Ionic2 jad-salhani

GET STARTED WITH IONIC

Ionic Documentation

Ionic Forum

Ionic Slack Signup

Contribute on GitHub

Page 27: Ionic2 jad-salhani

</HTML>

@JadSalhani

@IonicLebanon