ionic 2: mobile apps with the web

34
MOBILE APPS WITH THE WEB Mike Hartington | @mhartington

Upload: mike-hartington

Post on 09-Jan-2017

144 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Ionic 2: Mobile apps with the Web

MOBILEAPPSWITHTHEWEB

MikeHartington|@mhartington

Page 2: Ionic 2: Mobile apps with the Web

BEFOREWEJUMPINTOTHINGS...

Page 3: Ionic 2: Mobile apps with the Web

IONICV1!SDKforDevelopingHybridAppsFocusedonmobileappsfirstSassforeasycustomizationAngularforcodestructure

Page 4: Ionic 2: Mobile apps with the Web

EMPOWEREDDEVELOPERSEVERYWHERE

WebDeveloperscouldnowparticipateinmakingapps!

Page 5: Ionic 2: Mobile apps with the Web

THESTATS34thmostpopularOSSproject

(24,000+starsonGitHub)MeetupGroupsaroundtheworldIonicappstopappstorecharts

UsedeverywherefromFortune50co’stoYC/TechStarscompanies

Page 6: Ionic 2: Mobile apps with the Web

WAIT,THISWHOLE"WEBTHING"AGAIN?

Page 7: Ionic 2: Mobile apps with the Web

WETRIEDTHISBEFOREANDWERENOTIMPRESSED

Page 8: Ionic 2: Mobile apps with the Web

JS=>NATIVE

FALLBACKTONATIVE

Page 9: Ionic 2: Mobile apps with the Web

BUTTHEWEBHASGOTTENALOTBETTER

Page 10: Ionic 2: Mobile apps with the Web

IONIC2Pushingwhatspossiblewiththeweb

Page 11: Ionic 2: Mobile apps with the Web

V2GOALSSimplicityNavigationTooling

MakeNG2Easy

Page 12: Ionic 2: Mobile apps with the Web

SIMPLICITYMakeiteasytounderstandHTML

Page 13: Ionic 2: Mobile apps with the Web

CLASSES <a class="button button-positive"></a> <button type="button" class="btn btn-default"></button> <a class="small expanded button" href="#"></a>

Page 14: Ionic 2: Mobile apps with the Web

<div class="btn-group" role="group" aria-label="..."> <button type="button" class="btn btn-default">1</button> <button type="button" class="btn btn-default">2</button>

<div class="btn-group" role="group"> <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" Dropdown <span class="caret"></span> </button> <ul class="dropdown-menu"> <li><a href="#">Dropdown link</a></li> <li><a href="#">Dropdown link</a></li> </ul> </div></div>

Page 15: Ionic 2: Mobile apps with the Web

CSSCLASSESCANGETCOMPLEXANDCLUTTERED

Page 16: Ionic 2: Mobile apps with the Web

JUSTUSERAWELEMENTSEasiertounderstandandlessclutter

Page 17: Ionic 2: Mobile apps with the Web

THESTYLESDON'TCHANGE <ion-list> <ion-list-header> Action </ion-list-header> <ion-item>Terminator II</ion-item> <ion-item>The Empire Strikes Back</ion-item> <ion-item>Blade Runner</ion-item> </ion-list>

butthemarkupbecomesmuchclearer

Page 18: Ionic 2: Mobile apps with the Web

EQUALLYEASYTOSTYLEANDEXTEND

ion-avatar{ border-radius: 30px; } ion-card{ width: 80%; }

Page 19: Ionic 2: Mobile apps with the Web

NAVIGATIONMorerobustandpowerful

Page 20: Ionic 2: Mobile apps with the Web

INEEDTOOPENAMODAL,THENNAVIGATETOA

SUBVIEWIWANTTOCREATEASUBVIEWINA

SIDEMENU

Page 21: Ionic 2: Mobile apps with the Web

V1'SROUTING.config(function($stateProvider){ $stateProvider .state('firstpage', { url:'/firstpage', templateUrl: 'firstpage.html' }) .state('secondpage', { url:'/secondpage', templateUrl: 'secondpage.html' }) .state('thirdpage', { url:'/thirdpage/:id', templateUrl: 'thirdpage.html' });});

UI-Router

Page 22: Ionic 2: Mobile apps with the Web

DOESN'TGIVETHEFLEXIBILITYYOUWANT

Navigation:userexperienceURLsdon'tofferthat

DevelopersNEEDtobeincontrol

Page 23: Ionic 2: Mobile apps with the Web

PUSH/POP/PARAMS import SecondPage from '../secondpage'; export class FirstPage { constructor( public nav: NavController) {}; pushState() { this.nav.push(SecondPage) }; };

Page 24: Ionic 2: Mobile apps with the Web

FULLCONTROLPushpagesontothenavstackPoppagesoffthenavstack

Insert/Remove/UpdateCreateapphistoryfromnothingUpdatetheURLasanoption

Page 25: Ionic 2: Mobile apps with the Web

TOOLINGFOREVERYONE

Buildingappswithnewstandards

Page 26: Ionic 2: Mobile apps with the Web

JAVASCRIPTHASCHANGEDES6bringsmanynewfeaturesTypescriptbuildsontopofthatToolingthatIDEscanhookinto

Allofthis,helpingyoutodeveloperfaster

Page 27: Ionic 2: Mobile apps with the Web

ES6Modular:Importwhatyouneed&and

getsridofglobalsScoping:letdefinesablock-scoped

variablePromises:Builtintothelanguagenatively

Classes:Simplersyntaxforbuildingobjects

Page 28: Ionic 2: Mobile apps with the Web

TYPESCRIPTES6+Decorators+Types

Ionic2andNG2builtusingTSOptionalTypesforstrictercodingCodecompletioninyoureditor

Page 29: Ionic 2: Mobile apps with the Web

ALLTHESENEWFEATURES....

BUTHOWDOISTART?

Page 30: Ionic 2: Mobile apps with the Web

DON'TWORRY,IONIC'SGOTYOURBACK!

Page 31: Ionic 2: Mobile apps with the Web

IonicprovidesaTypeScriptsetupYoucanjustfocusonwritingyourappAbuildsystemhandleseverythingelse!

It"justworks"™

Page 32: Ionic 2: Mobile apps with the Web

SETUP$ NPM INSTALL -G IONIC@BETA$ IONIC START MYAPP --V2

$ CD MYAPP$ IONIC SERVE

Page 33: Ionic 2: Mobile apps with the Web

FINALMESSAGEIonic2isreallypushingwhat

wecandowiththewebThefutureislookinggreatforweband

webtechnologiesAlwaysbetontheweb