Елена Жукова "native javascript на мобильных устройствах"

29
Native JavaScript на мобильных устройствах Елена Жукова

Upload: fwdays

Post on 15-Jan-2017

376 views

Category:

Technology


1 download

TRANSCRIPT

Native JavaScript намобильных устройствах

Елена Жукова

ЧТО ТАКОЕ НАТИВНОЕПРИЛОЖЕНИЕ ?

было разработано под конкретную OS ...

ТРЕБУЕТ ИНСТАЛЯЦИИНАТИВНЫЙ LOOK & FEEL (UX)

ЕСТЬ ДОСТУП К HARDWARE

ПРОИЗВОДИТЕЛЬНОСТЬ /ОТЗЫВЧИВОСТЬ

... НО!Нативный код, это код

компилируемый в машинныеинструкции и исполняемый

непосредственно процессором...

Любой Java код на android не нативный поопределению, так как исполняется в виртуальной

машине.

Нативная разработка на android возможна только спомощью NDK.

За исключением ART

ТЕРМИН "NATIVE APPLICATION"

ОТНОСИТЕЛЕН

ПОЧЕМУ JAVASCRIPT?

НЕДОСТАТКИ НАТИВНОЙРАЗРАБОТКИ

Нестандартный дизайн/UX/отображениеЦена(время/разработчики)Направленность на платформуОтсутствие шаринга кода

РЕАЛЬНЫЕ ПРОЕКТЫ:iOS PhoneGap

'Fabric''Crashlytics''UIColor-HexString''Slash''SVProgressHUD''SFStateViews''PPpdf417''SQLCipher''MPFoldTransition''SDWebImage''SSZipArchive''ZXingObjC''GoogleMaps''Flurry-iOS-SDK/FlurrySDK''Parse''ParseFacebookUtils''ParseCrashReporting''ParseUI''Reachability''FormatterKit''UIImageEffects''RESideMenu''GoogleAnalytics''Google-Mobile-Ads-SDK'

android.support.v4 1.0.0 "Android Support v4"co.themobilefirm.FlurryPlugin 3.3.6 "Flurry SDK"com.google.playservices 17.0.0 "Google Play Services for Android"com.googlemaps.ios 1.8.1 "Google Map iOS SDK for Cordova"com.jcesarmobile.IDFVPlugin 1.0.0 "Identifier For Vendor Plugin"com.phonegap.plugins.PushPlugin 2.2.0 "PushPlugin"com.phonegap.plugins.sqlite 0.7.0 "SQLitePlugin"com.phonegap.plugins.videoplayer 1.0 "VideoPlayer"com.plugin.datepicker 0.3.0 "Datepicker"de.appplant.cordova.plugin.email-composer 0.8.2dev "EmailComposer"nl.x-services.plugins.calendar 4.2.3 "Calendar"org.apache.cordova.camera 0.3.3 "Camera"org.apache.cordova.console 0.2.8 "Console"org.apache.cordova.device 0.2.9 "Device"org.apache.cordova.file 1.0.1 "File"org.apache.cordova.file-transfer 0.4.2 "File Transfer"org.apache.cordova.geolocation 0.3.10 "Geolocation"org.apache.cordova.inappbrowser 0.6.0 "InAppBrowser"org.apache.cordova.network-information 0.2.10-dev "Network Information"org.apache.cordova.splashscreen 0.3.4 "Splashscreen"plugin.google.maps 1.2.2 "phonegap-googlemaps-plugin"plugin.http.request 1.0.0 "phonegap-http-request"acra

JS ПЛАТФОРМЫ ДЛЯ "NATIVEAPPLICATION"

ТАК ЧТО ЖЕ ЛУЧШЕ ВСЕГО?Это зависит от того...

...Что именно вам нужно

НАЧНЕМ

PHONEGAP

ИДЕЯ: БРАУЗЕР ЕСТЬ ВЕЗДЕСПЕЦИФИКА PHONEGAP:

фонгап есть на 13 платформахсовместим с NW, Crosswalk, CocoonJS, Ludei ...это просто SPA (на любом фреймворке)мобильный браузер (память|GC|UI|UX)UX/UI будет таким, который вы реализуетесамое большое комьюнитинативные фитчи требуют нативной реализациипрактически не зависит от апдейтов OS

Каждая OS имеет свой браузер

Но! В Android их более 30...

TITANIUM MOBILE

ИДЕЯ: ОДИН КОД ДЛЯ ВСЕХПЛАТФОРМ

СПЕЦИФИКА TITANIUM:

свой MVC фреймворкне весь нативный функционал поддерживаетсякомпилируемый нативный UIработа с нативным кодом через прокси классыапдейт платформы производителемпостоянно меняется архитектура/подходмаленькое комьюнити

REACT NATIVE

ИДЕЯ: ВЫУЧИЛ ОДНАЖДЫ, ПИШЕШЬПОД ВСЕ

СПЕЦИФИКА REACT NATIVE:

FlexBoxES6сериализация сообщений, все асинхронноReact и сопутствующие технологииnpmапдейт платформы производителемСторонние нативные библиотеки/Кастомный UI

NATIVE SCRIPT

ИДЕЯ: ПРЯМОЙ ДОСТУП К NATIVECODE

СПЕЦИФИКА NATIVE SCRIPT:

прямая работа с ЛЮБЫМ нативным кодомработа в UI потокеобщие абстракции между платформамиReflection, апдейта платформы не требуетсяMVVMnpmчастые релизы

ИДЕАЛЬНЫЕ КЕЙСЫ...

PHONEGAPНестандартный UI/UX (презентации, партфолио,цифровые киоски, текст)Есть готовый SPAСамый быстрый способ опубликоваться в сторахВам нужны не только Android и iOS

TITANIUM MOBILEВы писали на Titanium раньшеРеализация особо хитрой нативнойфункциональности, которая есть только наTitaniumBaaSЯ больше никаких случаев не знаю ...

REACTNATIVEВы знакомы с Реактом и сопутствующимитехнологиямиПолностью стандартный UI, ничего кастомногоНадо ОЧЕНЬ быстро ( jsx + css + компоненты)

NATIVESCRIPTВам нужны сторонние нативные библиотекиВы готовы потратить чуть больше времени дляработы с нативой через jsВы понимаете, что полного шаринга кода несуществуетВас не особо раздражает MVVM или Вы готовыучить Angular 2

ВЫБИРАЙТЕИНСТРУМЕНТ С

УМОМ...

ВОПРОСЫ ?