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

PDF
Кроссплатформенная разработка
PPT
Smartkupon. Кроссплатформенная разработка мобильных приложений
PDF
Mistakes in Android OS:causes and prospects.
PDF
Clients.MDDay: Нативные приложения vs Кроссплатформенные конструкторы
PDF
Подход к разработке мобильных приложений
PPTX
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
PPT
Решение для мобильной торговли
PDF
Реверс-инжиниринг мобильных приложений
Кроссплатформенная разработка
Smartkupon. Кроссплатформенная разработка мобильных приложений
Mistakes in Android OS:causes and prospects.
Clients.MDDay: Нативные приложения vs Кроссплатформенные конструкторы
Подход к разработке мобильных приложений
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
Решение для мобильной торговли
Реверс-инжиниринг мобильных приложений

Viewers also liked (20)

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

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

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

More from JSC “Arcadia Inc” (9)

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

  • #14: 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)
  • #15: + 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 контейнера и уже нативными средствами отключить авто-коррекшен и авто-предикшен.
  • #16: 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
  • #17: Test-Cloud – from $1000 per month for up 2 apps account Insights – free while beta
  • #18: Test-Cloud – from $1000 per month for up 2 apps account Insights – free while beta
  • #19: 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
  • #20: 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.
  • #21: 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
  • #22: 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