27
Лисовский Артем

FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js: от web-based к native

Embed Size (px)

Citation preview

Page 1: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Лисовский Артем

Page 2: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native
Page 3: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Чтоэтоисчемедят

Page 4: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native
Page 5: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Область применения AngularJS. Откуда такая популярность?

•  Идеален для Single Page Application (SPA) приложений («богатое» приложение, генерирующее и изменяющее большой объем DOM’а «на лету» без перезагрузки страницы)

•  «Умный». Возможность директив •  Код более сложный, но его в разы меньше •  Никакой привязки к #id и .class для работы с элементами

Page 6: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native
Page 7: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Ionic<ion-header-barclass="bar-posi?ve">

<h1class="?tle">Haha</h1></ion-header-bar><ion-content>

<ion-list> <ion-itemng-repeat="iteminitems">

Item{{item.id}} </ion-item></ion-list>

</ion-content>angular.module('ionicApp',['ionic']).controller('MyCtrl',func?on($scope){

$scope.items=[{id:0},{id:1},{id:2}…];

});

Page 8: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Ge^ngstartedInstall$sudonpminstall-gionicStartproject$ionicstarttodoblankRun&debug$ionicserve$ionicserve--labAddpladormfordeployorna?verun$ionicpladormaddios$ionicbuildios$ionicemulateios

Page 9: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Чтовкоробке?

Стилиииконкиhmp://ionicframework.com/docs/components/

Директивыhmp://ionicframework.com/docs/api/direc?ve/ionTabs/hmp://ionicframework.com/docs/api/direc?ve/ionScroll/

Page 10: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Кудадальше?•  МодулиCordova

–  Ac?onSheet–  AdMob–  AppAvailability–  AppRate–  AppVersion–  Badge–  BackgroundGeoloc–  BameryStatus–  BarcodeScanner–  Calendar–  Camera–  Capture–  Clipboard–  Contacts–  DatePicker–  Device–  DeviceMo?on

–  DeviceOrienta?on–  Dialogs–  EmailComposer–  Facebook–  File–  FileTransfer–  FileOpener2–  Flashlight–  Geoloca?on–  Globaliza?on–  GoogleAnaly?cs–  HealthKit–  ImagePicker–  InAppBrowser–  Instagram–  Keyboard–  Keychain–  LocalNo?fica?on–  Media–  Na?veAudio–  Network

–  OAuth–  PinDialog–  Preferences–  Printer–  ProgressIndicator–  PushNo?fica?ons–  SMS–  SocialSharing–  SpinnerDialog–  Splashscreen–  SQLite–  StatusBar–  Toast–  TouchID–  Vibra?on–  ZIP

hmp://ngcordova.com/docs/plugins/

Page 11: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native
Page 12: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Итог:плюсы

БыстроПросто-легкаясборка-легкаяотладка

Чтоугодно,любойсложностиАвтоматическаягенерацияподлюбуюплатформуБольшоекомьюнити,многоинфы,плагиныБесплатно

Page 13: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Проблемыwebview-based

ВозможныеразличияввёрсткеТормозаилагиНевозможностьуправлятьпамятьюитпUIнеNa?ve(аэтоглавное)hmps://www.youtube.com/watch?v=juWhxCz1Wmg

Page 14: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Ктоещё?

EnyoJSSenchaMeteorPhoneGapOnsenUIIntelXDK

KendoUIJqueryMobileFramework7Famo.usMonacaMeteor.js…

Page 15: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Окей.ХочуNa?ve.Какэтобудетработать?

•  Пишемкоднаjs•  Происходитпреобразованиеjsto<pladorm-code>

Page 16: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Какиепроблемы?•  Неultra-crosspladorm,таккак:

– укаждойплатформысвоикосяки– частонеобходимразныйкодподразныеплатформы(работасView’хамиитп)

•  Нужночто-тоизучатьдополнительно•  Порогвхода

Page 17: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Ктоестькто?•  Na?veSсript•  TabrisJS•  Appcelerator•  Fuse(FuseTools)•  Trigger.io•  ReactNa?ve

Page 18: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native
Page 19: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Минусы•  нетмногихкомпонент•  маленькоекоммьюнити

Page 20: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Tabris

Page 21: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Appcelerator

Page 22: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Минусы

•  баги•  ide–Aptana•  прайс•  коммьюнити

Page 23: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native
Page 24: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

ReactNa?ve

Плюсы:•  Facebook•  коммьюнити•  react

Минусы:•  разныйкодподразныеплатформы

Page 25: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

кодим

Page 26: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

НЕJS

•  Xamarin•  unity•  Coronalabs

Page 27: FrontDays #2. Артём Лисовский, Кроссплатформенные приложения на js:  от web-based к native

Вывод

•  JSкакЯПдлямобильнойразработкиэтовозможно

•  возможнописатькроссплатформенныенативныеприложения

•  реальнаявозможностьдляweb-разработчиков