SlideShare a Scribd company logo
1 of 24
Mobile: Native / Hybrid /
Cross-Platform
Виктор Котов, Аркадия
Виктор Котов
20+ лет в ИТ
5+ лет в мобильной
разработке (iOS)
victor.kotov@arcadia.spb.ru
2
Немного о себе
Аркадия / Мобильная разработка
• Разработка iOS приложений с 2009, около 20 проектов
• Разработка Android приложений с 2011, около 10 проектов
• Cross-platform (hybrid) разработка с 2012, около 5 проектов
3
http://www.softwarecountry.com/our-experience/
Мобильная разработка сегодня
4
Мобильная разработка / Native
• Аппаратные требования: компьютер с Mac OS X
• Языки программирования: Objective-C, Swift
5
iOS
• AppStore $99 в год
• Физические лица
• Организации (D-U-N-S Number required)
• Enterprise $299 в год
• Volume Purchase Program for Business
• VPP Store
• Доступно не во всех странах*
6
iOS
* https://deploy.apple.com/qforms/open/register/country/avs
Мобильная разработка / Native
• Аппаратные требования : компьютер с любой
современной ОС
• Язык программирования: Java
7
Android
Мобильная разработка / Native
• Google Play Store $25 в год
• Google Apps for Work от $5 за один аккаунт в месяц
• Google Play for Work Store
• Enterprise Mobility Management via Google Partners*
8
Android
* https://www.google.com/work/android/partners/index.html?activeTab=emm
Мобильная разработка / Native
Мобильная разработка / Альтернативы
9
PhoneGap
Ionic Sencha
Touch AppGyver
React Native
Xamarin
. / Альтернативы / Примеры
10
Native Android UI
11
12
Xamarin
http://phonegap.com/
13
Pros:
o Один код для всех платформ (iOS, Android, Windows Phone,
Blackberry, mobile web)
o Cloud Build Service https://build.phonegap.com/
o Поддержка плагинов
Cons:
o “Из коробки” слабая поддержка Native UI & transitions
o Отдельный CSS для каждой платформы
o WebView не гарантирует одинаковый результат
o Недостаточно документации
. / Альтернативы / PhoneGap
14
Pros:
o Дополнительно при помощи CefSharp получили приложение
Windows 7+
o ngTouch или FastClick помогли избавиться от лагов
Cons:
o Многие плагины не поддерживаются разработчиками, баги
пришлось исправлять самостоятельно (Obj-C & Java код)
o Проблема с текстовым полем – пришлось добавлять нативный
код/интерфейс
. / Альтернативы / PhoneGap / Аркадия
http://xamarin.com/
15
Pros:
o Xamarin Test Cloud http://xamarin.com/test-cloud
o Xamarin Insights http://xamarin.com/insights
o Xamarin.Form 2.0
o Native libs&SDKs via Objective Sharpie
o Xamarin Inspector
o UITest 1.0 C# framework for UI tests + Test Recorder
Commercial licenses ($1000 per developer per
platform per year).
Free Starter Licenses - with poor functionality.
. / Альтернативы / Xamarin
16
. / Альтернативы / Xamarin
17
. / Альтернативы / Xamarin / Inspector
18
Cons:
o Дополнительные ограничения для UI
o Утечки памяти
o Дополнительные компоненты и библиотеки распространяются
в виде DLL https://components.xamarin.com/
o Debug exceptions малоинформативны
o XAML (Xamarin.Forms UI) редактируются только в текстовом
виде
. / Альтернативы / Xamarin
https://facebook.github.io/react-native/
http://www.reactnative.com
19
Pros:
o iOS&Android приложения на JavaScript
o Native UI & UX
o Возможность обновления приложения без ревью
Cons:
o Имеет зависимость от других инструментов
o Debugging issue https://github.com/facebook/react-
devtools/issues/229
o Пока недостаточно ресурсов (книг/документации)
o Юридические аспекты требуют внимания
. / Альтернативы / React Native
20
. / Альтернативы / React Native
Javascript-Native
Bridge
Javascript
Engine
Application
Code (JS) and
Resources
React Native Obj-C
Native UI
Application Obj-C
21
. / Альтернативы / React Native
Native App
React Native lib
Javascript Engine
React JS
RN JS lib
JS
Что же выбрать?
22
Native Xamarin Web Apps Hybrid
Should work offline    
Native apps development background   
Simple UI/Functionality    
Heavily customized UI / gestures   
Has to be fast prototyped for few
platforms
  
Has website as fully functional
alternative
 
Going to use platform specific
features
   
Has to be fast and responsive. UX at
the first place.
   
Has to be secure    
Knowledge base, Developers
Communities
   
Cost for few platforms    
Ссылки
23
o http://mashable.com/2015/01/02/mobile-trends-2015/ Mobile trends 2015
o https://www.icsalabs.com/blogs/will-promise-hybrid-mobile-apps-outweigh-new-security-concerns
http://mostconf.org/2014/papers/s3p5.pdf Code Injection Attacks on HTML5-based Mobile Apps
o http://hackingthroughcomplexity.nl/tag/hybrid-apps/ The other, darker side of hybrid apps
o https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:_Understanding_Your_Mobile_Ap
plication_Development_Options
o http://developer.xamarin.com/guides/cross-platform/xamarin-forms/creating-mobile-apps-
xamarin-forms/
o Презентация Xamarin 4 https://goto.webcasts.com/viewer/event.jsp?ei=1084533
o https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/objective_sharpie/
o React Native https://github.com/facebook/react-native
o React Native sandbox https://rnplay.org/
o http://www.slideshare.net/Polidea/react-native-building-native-ios-apps-with-javascript?related=1
o https://github.com/jondot/awesome-react-native
2015-12-12 | AzovDevMeetup 2015 | Мобильная разработка: Native, Hybrid, Cross-Platform? | Виктор Котов

More Related Content

Viewers also liked

Carola Neugebauer
Carola  NeugebauerCarola  Neugebauer
Carola Neugebauervveshka
 
MobiAds. Мобильная реклама — это просто!
MobiAds. Мобильная реклама — это просто!MobiAds. Мобильная реклама — это просто!
MobiAds. Мобильная реклама — это просто!Ivan Kostrov
 
AgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get DoneAgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get DoneMax Klymyshyn
 
презентация высокого полета Slideshare
презентация высокого полета Slideshareпрезентация высокого полета Slideshare
презентация высокого полета SlideshareProstoPreza.ru
 
стартап как дипломный проект (концепция)
стартап как дипломный проект (концепция)стартап как дипломный проект (концепция)
стартап как дипломный проект (концепция)Michael Egorov
 
Workshop start up_weekend
Workshop start up_weekendWorkshop start up_weekend
Workshop start up_weekendOleg Afanasyev
 
Cайт Allmalls.ru для торговых центров
Cайт Allmalls.ru для торговых центровCайт Allmalls.ru для торговых центров
Cайт Allmalls.ru для торговых центровPavelLarkin
 
Smartup - Автоматизация Мобильной Торговли
Smartup - Автоматизация Мобильной ТорговлиSmartup - Автоматизация Мобильной Торговли
Smartup - Автоматизация Мобильной ТорговлиGreen White Solutions
 
Автоматизация "мобильных" сотрудников с помощью Android приложений и 1С
Автоматизация "мобильных" сотрудников с помощью Android приложений и 1САвтоматизация "мобильных" сотрудников с помощью Android приложений и 1С
Автоматизация "мобильных" сотрудников с помощью Android приложений и 1Сtabtabus
 
БИТ.МЕД Презентация
БИТ.МЕД ПрезентацияБИТ.МЕД Презентация
БИТ.МЕД Презентацияchel1cbit
 
"Агент Плюс"
"Агент Плюс""Агент Плюс"
"Агент Плюс"Agent Plus
 
Solit 2014, Как создать продукт, как запустить стартап?, Граков Алексей
Solit 2014, Как создать продукт, как запустить стартап?, Граков АлексейSolit 2014, Как создать продукт, как запустить стартап?, Граков Алексей
Solit 2014, Как создать продукт, как запустить стартап?, Граков Алексейsolit
 
Mobile Developer & Business Day 2012
Mobile Developer & Business Day 2012Mobile Developer & Business Day 2012
Mobile Developer & Business Day 2012InfoShell
 
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...1С-Битрикс
 
Мобильная разработка: как начать и продолжить
Мобильная разработка: как начать и продолжитьМобильная разработка: как начать и продолжить
Мобильная разработка: как начать и продолжитьIurii Ageev
 
Единый Семинар 1С 12.10.2016 г.
Единый Семинар 1С 12.10.2016 г.Единый Семинар 1С 12.10.2016 г.
Единый Семинар 1С 12.10.2016 г.chel1cbit
 

Viewers also liked (20)

Carola Neugebauer
Carola  NeugebauerCarola  Neugebauer
Carola Neugebauer
 
MobiAds. Мобильная реклама — это просто!
MobiAds. Мобильная реклама — это просто!MobiAds. Мобильная реклама — это просто!
MobiAds. Мобильная реклама — это просто!
 
AgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get DoneAgileBaseCamp 2013 - Start Up and Get Done
AgileBaseCamp 2013 - Start Up and Get Done
 
презентация высокого полета Slideshare
презентация высокого полета Slideshareпрезентация высокого полета Slideshare
презентация высокого полета Slideshare
 
стартап как дипломный проект (концепция)
стартап как дипломный проект (концепция)стартап как дипломный проект (концепция)
стартап как дипломный проект (концепция)
 
Обучение сотрудников
Обучение сотрудников Обучение сотрудников
Обучение сотрудников
 
Workshop start up_weekend
Workshop start up_weekendWorkshop start up_weekend
Workshop start up_weekend
 
Cайт Allmalls.ru для торговых центров
Cайт Allmalls.ru для торговых центровCайт Allmalls.ru для торговых центров
Cайт Allmalls.ru для торговых центров
 
Smartup - Автоматизация Мобильной Торговли
Smartup - Автоматизация Мобильной ТорговлиSmartup - Автоматизация Мобильной Торговли
Smartup - Автоматизация Мобильной Торговли
 
Автоматизация "мобильных" сотрудников с помощью Android приложений и 1С
Автоматизация "мобильных" сотрудников с помощью Android приложений и 1САвтоматизация "мобильных" сотрудников с помощью Android приложений и 1С
Автоматизация "мобильных" сотрудников с помощью Android приложений и 1С
 
БИТ.МЕД Презентация
БИТ.МЕД ПрезентацияБИТ.МЕД Презентация
БИТ.МЕД Презентация
 
"Агент Плюс"
"Агент Плюс""Агент Плюс"
"Агент Плюс"
 
Автоматизируйте свой бизнес!
Автоматизируйте свой бизнес!Автоматизируйте свой бизнес!
Автоматизируйте свой бизнес!
 
Solit 2014, Как создать продукт, как запустить стартап?, Граков Алексей
Solit 2014, Как создать продукт, как запустить стартап?, Граков АлексейSolit 2014, Как создать продукт, как запустить стартап?, Граков Алексей
Solit 2014, Как создать продукт, как запустить стартап?, Граков Алексей
 
Semenchuk Vyacheslav, My-apps
Semenchuk Vyacheslav, My-appsSemenchuk Vyacheslav, My-apps
Semenchuk Vyacheslav, My-apps
 
Mobile Developer & Business Day 2012
Mobile Developer & Business Day 2012Mobile Developer & Business Day 2012
Mobile Developer & Business Day 2012
 
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...
Особенности разработки мобильных приложений на платформе «1С-Битрикс: Мобильн...
 
Мобильная разработка: как начать и продолжить
Мобильная разработка: как начать и продолжитьМобильная разработка: как начать и продолжить
Мобильная разработка: как начать и продолжить
 
Единый Семинар 1С 12.10.2016 г.
Единый Семинар 1С 12.10.2016 г.Единый Семинар 1С 12.10.2016 г.
Единый Семинар 1С 12.10.2016 г.
 
Mobile SMARTS для ЕГАИС
Mobile SMARTS для ЕГАИСMobile SMARTS для ЕГАИС
Mobile SMARTS для ЕГАИС
 

Similar to 2015-12-12 | AzovDevMeetup 2015 | Мобильная разработка: Native, Hybrid, Cross-Platform? | Виктор Котов

Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...CEE-SEC(R)
 
Кросс-платформенная мобильная разработка
Кросс-платформенная мобильная разработкаКросс-платформенная мобильная разработка
Кросс-платформенная мобильная разработкаArtur Drobinskiy
 
Ценность платформы Octopod для разработчиков мобильных приложений
Ценность платформы Octopod для разработчиков мобильных приложенийЦенность платформы Octopod для разработчиков мобильных приложений
Ценность платформы Octopod для разработчиков мобильных приложенийMichael Kozloff
 
Sergey Khlopenov tools for_development_cross_platform_mobile_ap
Sergey Khlopenov tools for_development_cross_platform_mobile_apSergey Khlopenov tools for_development_cross_platform_mobile_ap
Sergey Khlopenov tools for_development_cross_platform_mobile_apDneprCiklumEvents
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...yaevents
 
Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5DevDay
 
«Кроссплатформенная разработка мобильных приложений для бизнеса» Александр Еп...
«Кроссплатформенная разработка мобильных приложений для бизнеса» Александр Еп...«Кроссплатформенная разработка мобильных приложений для бизнеса» Александр Еп...
«Кроссплатформенная разработка мобильных приложений для бизнеса» Александр Еп...DataArt
 
Зачем компаниям нужны новые мобильные приложения?
Зачем компаниям нужны новые мобильные приложения?Зачем компаниям нужны новые мобильные приложения?
Зачем компаниям нужны новые мобильные приложения?Michael Kozloff
 
Xe4 launch мобильная разработка всеволод_леонов
Xe4 launch мобильная разработка всеволод_леоновXe4 launch мобильная разработка всеволод_леонов
Xe4 launch мобильная разработка всеволод_леоновЕкатерина Макарова
 
Разработка в Vs2015
Разработка в Vs2015Разработка в Vs2015
Разработка в Vs2015Tatiana Smetanina
 
Xamarin. Кроссплатформенная мобильная разработка на C# @ ForkConf
Xamarin. Кроссплатформенная мобильная разработка на C# @ ForkConfXamarin. Кроссплатформенная мобильная разработка на C# @ ForkConf
Xamarin. Кроссплатформенная мобильная разработка на C# @ ForkConfAndrej Gaevskij
 
Xamarin. Кроссплатформенная разработка на C#
Xamarin. Кроссплатформенная разработка на C#Xamarin. Кроссплатформенная разработка на C#
Xamarin. Кроссплатформенная разработка на C#ForkConf
 
Rad studio 10 seatlle обзор продукта
Rad studio 10 seatlle обзор продуктаRad studio 10 seatlle обзор продукта
Rad studio 10 seatlle обзор продуктаazamat isaev
 
Разработка кросплатформенных приложений
Разработка кросплатформенных приложенийРазработка кросплатформенных приложений
Разработка кросплатформенных приложенийbarbariska89
 
Андрей Чипиленко - "Разработка мобильного приложения для интернет‐мага...
Андрей Чипиленко - "Разработка мобильного	   приложения	    для интернет‐мага...Андрей Чипиленко - "Разработка мобильного	   приложения	    для интернет‐мага...
Андрей Чипиленко - "Разработка мобильного приложения для интернет‐мага...ITGinGer
 
Андрій Чипиленко "Розробка мобільного додатку для Comp-online.com.ua"
Андрій Чипиленко  "Розробка мобільного додатку для Comp-online.com.ua"Андрій Чипиленко  "Розробка мобільного додатку для Comp-online.com.ua"
Андрій Чипиленко "Розробка мобільного додатку для Comp-online.com.ua"Lviv Startup Club
 
Introduction to Mobile applications testing
Introduction to Mobile applications testingIntroduction to Mobile applications testing
Introduction to Mobile applications testingOleg Nikiforov
 
#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)e-Legion
 
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...COMAQA.BY
 

Similar to 2015-12-12 | AzovDevMeetup 2015 | Мобильная разработка: Native, Hybrid, Cross-Platform? | Виктор Котов (20)

Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
Настоящее и будущее решений для разработки кросс-платформенных мобильных гибр...
 
Кросс-платформенная мобильная разработка
Кросс-платформенная мобильная разработкаКросс-платформенная мобильная разработка
Кросс-платформенная мобильная разработка
 
Ценность платформы Octopod для разработчиков мобильных приложений
Ценность платформы Octopod для разработчиков мобильных приложенийЦенность платформы Octopod для разработчиков мобильных приложений
Ценность платформы Octopod для разработчиков мобильных приложений
 
[Add 4] crossplatform .net
[Add 4] crossplatform .net[Add 4] crossplatform .net
[Add 4] crossplatform .net
 
Sergey Khlopenov tools for_development_cross_platform_mobile_ap
Sergey Khlopenov tools for_development_cross_platform_mobile_apSergey Khlopenov tools for_development_cross_platform_mobile_ap
Sergey Khlopenov tools for_development_cross_platform_mobile_ap
 
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
 
Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5Разработка мобильных приложений на HTML5
Разработка мобильных приложений на HTML5
 
«Кроссплатформенная разработка мобильных приложений для бизнеса» Александр Еп...
«Кроссплатформенная разработка мобильных приложений для бизнеса» Александр Еп...«Кроссплатформенная разработка мобильных приложений для бизнеса» Александр Еп...
«Кроссплатформенная разработка мобильных приложений для бизнеса» Александр Еп...
 
Зачем компаниям нужны новые мобильные приложения?
Зачем компаниям нужны новые мобильные приложения?Зачем компаниям нужны новые мобильные приложения?
Зачем компаниям нужны новые мобильные приложения?
 
Xe4 launch мобильная разработка всеволод_леонов
Xe4 launch мобильная разработка всеволод_леоновXe4 launch мобильная разработка всеволод_леонов
Xe4 launch мобильная разработка всеволод_леонов
 
Разработка в Vs2015
Разработка в Vs2015Разработка в Vs2015
Разработка в Vs2015
 
Xamarin. Кроссплатформенная мобильная разработка на C# @ ForkConf
Xamarin. Кроссплатформенная мобильная разработка на C# @ ForkConfXamarin. Кроссплатформенная мобильная разработка на C# @ ForkConf
Xamarin. Кроссплатформенная мобильная разработка на C# @ ForkConf
 
Xamarin. Кроссплатформенная разработка на C#
Xamarin. Кроссплатформенная разработка на C#Xamarin. Кроссплатформенная разработка на C#
Xamarin. Кроссплатформенная разработка на C#
 
Rad studio 10 seatlle обзор продукта
Rad studio 10 seatlle обзор продуктаRad studio 10 seatlle обзор продукта
Rad studio 10 seatlle обзор продукта
 
Разработка кросплатформенных приложений
Разработка кросплатформенных приложенийРазработка кросплатформенных приложений
Разработка кросплатформенных приложений
 
Андрей Чипиленко - "Разработка мобильного приложения для интернет‐мага...
Андрей Чипиленко - "Разработка мобильного	   приложения	    для интернет‐мага...Андрей Чипиленко - "Разработка мобильного	   приложения	    для интернет‐мага...
Андрей Чипиленко - "Разработка мобильного приложения для интернет‐мага...
 
Андрій Чипиленко "Розробка мобільного додатку для Comp-online.com.ua"
Андрій Чипиленко  "Розробка мобільного додатку для Comp-online.com.ua"Андрій Чипиленко  "Розробка мобільного додатку для Comp-online.com.ua"
Андрій Чипиленко "Розробка мобільного додатку для Comp-online.com.ua"
 
Introduction to Mobile applications testing
Introduction to Mobile applications testingIntroduction to Mobile applications testing
Introduction to Mobile applications testing
 
#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)#MBLTdev: Как не стать заложником одной платформы (Parallels)
#MBLTdev: Как не стать заложником одной платформы (Parallels)
 
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
Владислав Акулич - Monkey Talk - кроссплатформенное средство автоматизации те...
 

More from JSC “Arcadia Inc”

Outsourcing of Software Development — Myths
Outsourcing of Software Development — MythsOutsourcing of Software Development — Myths
Outsourcing of Software Development — MythsJSC “Arcadia Inc”
 
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём КравченкоAzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём КравченкоJSC “Arcadia Inc”
 
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...JSC “Arcadia Inc”
 
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...JSC “Arcadia Inc”
 
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...JSC “Arcadia Inc”
 
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...JSC “Arcadia Inc”
 
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
AzovDevMeetup 2016 | Angular 2: обзор | Александр ШевнинAzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
AzovDevMeetup 2016 | Angular 2: обзор | Александр ШевнинJSC “Arcadia Inc”
 
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...JSC “Arcadia Inc”
 
Quality Practices in e-Assessment Development
Quality Practices in e-Assessment DevelopmentQuality Practices in e-Assessment Development
Quality Practices in e-Assessment DevelopmentJSC “Arcadia Inc”
 

More from JSC “Arcadia Inc” (9)

Outsourcing of Software Development — Myths
Outsourcing of Software Development — MythsOutsourcing of Software Development — Myths
Outsourcing of Software Development — Myths
 
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём КравченкоAzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
AzovDevMeetup 2016 | Сертификация ISTQB для QA инженера | Артём Кравченко
 
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
AzovDevMeetup 2016 | Машинное обучение, параллельные и распределённые вычисле...
 
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
AzovDevMeetup 2016 | Выстраивание процесса и применение Best Practices с нуля...
 
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
AzovDevMeetup 2016 | Основы Agile Project Management или Прощай, менеджер про...
 
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
AzovDevMeetup 2016 | Zero downtime — как релизить продукт миллионам пользоват...
 
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
AzovDevMeetup 2016 | Angular 2: обзор | Александр ШевнинAzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
AzovDevMeetup 2016 | Angular 2: обзор | Александр Шевнин
 
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
AzovDevMeetup 2016 | HBase и Phoenix в качестве основы ETL-приложения на Node...
 
Quality Practices in e-Assessment Development
Quality Practices in e-Assessment DevelopmentQuality Practices in e-Assessment Development
Quality Practices in e-Assessment Development
 

2015-12-12 | AzovDevMeetup 2015 | Мобильная разработка: Native, Hybrid, Cross-Platform? | Виктор Котов

  • 1. Mobile: Native / Hybrid / Cross-Platform Виктор Котов, Аркадия
  • 2. Виктор Котов 20+ лет в ИТ 5+ лет в мобильной разработке (iOS) victor.kotov@arcadia.spb.ru 2 Немного о себе
  • 3. Аркадия / Мобильная разработка • Разработка iOS приложений с 2009, около 20 проектов • Разработка Android приложений с 2011, около 10 проектов • Cross-platform (hybrid) разработка с 2012, около 5 проектов 3 http://www.softwarecountry.com/our-experience/
  • 5. Мобильная разработка / Native • Аппаратные требования: компьютер с Mac OS X • Языки программирования: Objective-C, Swift 5 iOS
  • 6. • AppStore $99 в год • Физические лица • Организации (D-U-N-S Number required) • Enterprise $299 в год • Volume Purchase Program for Business • VPP Store • Доступно не во всех странах* 6 iOS * https://deploy.apple.com/qforms/open/register/country/avs Мобильная разработка / Native
  • 7. • Аппаратные требования : компьютер с любой современной ОС • Язык программирования: Java 7 Android Мобильная разработка / Native
  • 8. • Google Play Store $25 в год • Google Apps for Work от $5 за один аккаунт в месяц • Google Play for Work Store • Enterprise Mobility Management via Google Partners* 8 Android * https://www.google.com/work/android/partners/index.html?activeTab=emm Мобильная разработка / Native
  • 9. Мобильная разработка / Альтернативы 9 PhoneGap Ionic Sencha Touch AppGyver React Native Xamarin
  • 10. . / Альтернативы / Примеры 10
  • 13. http://phonegap.com/ 13 Pros: o Один код для всех платформ (iOS, Android, Windows Phone, Blackberry, mobile web) o Cloud Build Service https://build.phonegap.com/ o Поддержка плагинов Cons: o “Из коробки” слабая поддержка Native UI & transitions o Отдельный CSS для каждой платформы o WebView не гарантирует одинаковый результат o Недостаточно документации . / Альтернативы / PhoneGap
  • 14. 14 Pros: o Дополнительно при помощи CefSharp получили приложение Windows 7+ o ngTouch или FastClick помогли избавиться от лагов Cons: o Многие плагины не поддерживаются разработчиками, баги пришлось исправлять самостоятельно (Obj-C & Java код) o Проблема с текстовым полем – пришлось добавлять нативный код/интерфейс . / Альтернативы / PhoneGap / Аркадия
  • 15. http://xamarin.com/ 15 Pros: o Xamarin Test Cloud http://xamarin.com/test-cloud o Xamarin Insights http://xamarin.com/insights o Xamarin.Form 2.0 o Native libs&SDKs via Objective Sharpie o Xamarin Inspector o UITest 1.0 C# framework for UI tests + Test Recorder Commercial licenses ($1000 per developer per platform per year). Free Starter Licenses - with poor functionality. . / Альтернативы / Xamarin
  • 17. 17 . / Альтернативы / Xamarin / Inspector
  • 18. 18 Cons: o Дополнительные ограничения для UI o Утечки памяти o Дополнительные компоненты и библиотеки распространяются в виде DLL https://components.xamarin.com/ o Debug exceptions малоинформативны o XAML (Xamarin.Forms UI) редактируются только в текстовом виде . / Альтернативы / Xamarin
  • 19. https://facebook.github.io/react-native/ http://www.reactnative.com 19 Pros: o iOS&Android приложения на JavaScript o Native UI & UX o Возможность обновления приложения без ревью Cons: o Имеет зависимость от других инструментов o Debugging issue https://github.com/facebook/react- devtools/issues/229 o Пока недостаточно ресурсов (книг/документации) o Юридические аспекты требуют внимания . / Альтернативы / React Native
  • 20. 20 . / Альтернативы / React Native Javascript-Native Bridge Javascript Engine Application Code (JS) and Resources React Native Obj-C Native UI Application Obj-C
  • 21. 21 . / Альтернативы / React Native Native App React Native lib Javascript Engine React JS RN JS lib JS
  • 22. Что же выбрать? 22 Native Xamarin Web Apps Hybrid Should work offline     Native apps development background    Simple UI/Functionality     Heavily customized UI / gestures    Has to be fast prototyped for few platforms    Has website as fully functional alternative   Going to use platform specific features     Has to be fast and responsive. UX at the first place.     Has to be secure     Knowledge base, Developers Communities     Cost for few platforms    
  • 23. Ссылки 23 o http://mashable.com/2015/01/02/mobile-trends-2015/ Mobile trends 2015 o https://www.icsalabs.com/blogs/will-promise-hybrid-mobile-apps-outweigh-new-security-concerns http://mostconf.org/2014/papers/s3p5.pdf Code Injection Attacks on HTML5-based Mobile Apps o http://hackingthroughcomplexity.nl/tag/hybrid-apps/ The other, darker side of hybrid apps o https://developer.salesforce.com/page/Native,_HTML5,_or_Hybrid:_Understanding_Your_Mobile_Ap plication_Development_Options o http://developer.xamarin.com/guides/cross-platform/xamarin-forms/creating-mobile-apps- xamarin-forms/ o Презентация Xamarin 4 https://goto.webcasts.com/viewer/event.jsp?ei=1084533 o https://developer.xamarin.com/guides/ios/advanced_topics/binding_objective-c/objective_sharpie/ o React Native https://github.com/facebook/react-native o React Native sandbox https://rnplay.org/ o http://www.slideshare.net/Polidea/react-native-building-native-ios-apps-with-javascript?related=1 o https://github.com/jondot/awesome-react-native

Editor's Notes

  1. Separate layouts are needed for all platforms to build a native look’n feel interface for the user In Android application state changes are tightly bind with certain events happening in the code (some actions should be executed when application appears on the screen and when it hides)
  2. + Javascript, который знаком - Периодически необходимо все таки править плагины-обертки для кордовы и читать Objective-C и Java код - Многие плагины с багами или недоработками, при том мантейнеры их забросили и даже не принимают пул риквесты с правками   + Кроссплатформенная разработка с почти идентичным кодом - Код должен учитывать специфичное для каждой платформы поведение, а так же различно стилизовать. Не сталкивался, но думается какие-то вещи невозможно описать единым кодом, и придется выносить ios/android в отдельные ветки с различным кодом и разметкой => потерять весь смысл использования cordov-ы, тогда уж лучше react native/native script/итп   + Можно разрабатывать ios приложения без Mac - Mac все таки понадобится для некоторых операций     Конкретно в моем случае и не первый раз сталкивался – заказчики считают, что любой сайт можно завернуть в cordova и оно заработает превосходно. Это не так J Очевидный – это позволило разработывать для нескольких мобильных платформ разом. Менее очевидный - нам удалось использовать тот же код (JS, HTML, CSS) и CefSharp и получить отличное Windows приложение, способное работать с Windows 7 и выше.   Используя ngTouch (или FastClick) добились перфоманса сравнимого с нативным.   Минусы:   Верстка: не всегда какие то привычные для нативной разработки вещи легко (или вообще возможно) осуществить. Столкнулись с проблеммой, что веб средствами нельзя отключить авто-коррекшен и авто-предикшен у едиторов, у нас приложение для сдачи экзамена, поэтому отключить такие фичи было очень важно. Из-за этого нам пришлось отказаться от CKEditor и использовать нативный едитор который отрисовывается поверх PhoneGap контейнера и уже нативными средствами отключить авто-коррекшен и авто-предикшен.
  3. Test-Cloud – from $1000 per month for up 2 apps account Insights – free while beta Inspector - As long as the Inspector addin/extension is installed and enabled in your IDE, we are injecting code into your app every time it starts in Debug mode. If you notice any strange behavior in your app, please try disabling or uninstalling the Inspector addin/extension, restarting the IDE, and rechecking. And please file bugs to let us know! Inspector – similar to Xcode Debug View Hierarchy but with editing capabilities
  4. Test-Cloud – from $1000 per month for up 2 apps account Insights – free while beta
  5. Test-Cloud – from $1000 per month for up 2 apps account Insights – free while beta
  6. Test-Cloud – from $1000 per month for up 2 apps account Insights – free while beta Inspector - As long as the Inspector addin/extension is installed and enabled in your IDE, we are injecting code into your app every time it starts in Debug mode. If you notice any strange behavior in your app, please try disabling or uninstalling the Inspector addin/extension, restarting the IDE, and rechecking. And please file bugs to let us know! Inspector – similar to Xcode Debug View Hierarchy but with editing capabilities
  7. by default its not possible to have two RN projects opened if they are using same RN framework projects. Facebook is very careful with RN, quote from source files of an example project: The examples provided by Facebook are for non-commercial testing and * evaluation purposes only. http://stackshare.io/stackups/nativescript-vs-ionic-vs-react-native По поводу обновлений, ссылаются на следующий пункт: 3.3.2 An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple's built-in WebKit framework, provided that such scripts and code do not change the primary purpose of the Application by providing features or functionality that are inconsistent with the intended and advertised purpose of the Application as submitted to the App Store.
  8. by default its not possible to have two RN projects opened if they are using same RN framework projects. Facebook is very careful with RN, quote from source files of an example project: The examples provided by Facebook are for non-commercial testing and * evaluation purposes only. http://stackshare.io/stackups/nativescript-vs-ionic-vs-react-native
  9. by default its not possible to have two RN projects opened if they are using same RN framework projects. Facebook is very careful with RN, quote from source files of an example project: The examples provided by Facebook are for non-commercial testing and * evaluation purposes only. http://stackshare.io/stackups/nativescript-vs-ionic-vs-react-native