Как не стать заложником одной платформы (mbltdev)
DESCRIPTION
Презентация с конференции MBLTdev "Как не стать заложником одной платформы" на примере Parallels Access. О том как мы добивались кросс-платформенности в нашем приложении.TRANSCRIPT
![Page 1: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/1.jpg)
1
#{MBLT}DEV
![Page 2: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/2.jpg)
Панфилов АлексейМенеджер продукта
Parallels AccessКак не стать заложником одной платформы
![Page 3: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/3.jpg)
3
PARALLELS ACCESSПозволяет использовать приложения с удаленного компьютера на
планшетах и смартфонах под iOS и Android, как будто они были разработаны под эти устройства
![Page 4: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/4.jpg)
7
История возникновения Parallels Access
• Реакция на выход iPhone
• Базовая функциональность управления
виртуальными машинами
2008 – Первая версия Parallels Mobile
• Удаленное управление виртуальными
машинами
• Поддержка iPhone и iPad
2010 – Большой апгрейд Parallels Mobile
• Удаленное управление хостом (Mac-only)
2011 – Обновление Parallels Mobile
![Page 5: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/5.jpg)
8
История возникновения Parallels Access
2012 – Начата разработка новой версии Parallels Mobile с учетoм:
• Новых идей
• Текущих проблем рынка
• Пожеланий пользователей
• Потребностей рынка
• Позиций конкурентов
![Page 6: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/6.jpg)
9
2013 - Релиз Parallels Access 1.0 - iOS
![Page 7: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/7.jpg)
10
Пресса
"In short, Access does a lot more than just blast your computer’s screen onto the iPad’s. It truly does “appify” your computer’s programs. It creates a smooth, logical hybrid of iPad and “real” computer, in away that the VNC apps do not. It works amazingly well." – David Pogue, New York Times (US)90 Seconds With Pogue: Parallels Access
The Pogue Review: Parallels Access 2.0
“It isn't the only iPad app that can remotely control computers, but of the ones I've tested, it does the best job of treating the computer programs it accesses as if they were iPad apps, without sacrificingfunctionality.” – Walt Mossberg, The Wall Street Journal (US)
1000+ статей о Parallels Access 2.0500М+ потенциальных просмотров89% позитивная реакция (10% нейтральная)
![Page 8: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/8.jpg)
12
2014 - Релиз Parallels Access 2.0 - iOS + Android
![Page 9: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/9.jpg)
13
Samsung Galaxy Gifts
![Page 10: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/10.jpg)
14
Parallels Access сейчас
• 500К скачиваний в
• 45K скачиваний в
• Средняя оценка - 4 из 5
• 1000+ статей
• 500М+ потенциальных просмотров
• 89% позитивная реакция (10% нейтральная)
![Page 11: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/11.jpg)
15
Все начинается с идеи и осознания проблемы...
![Page 12: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/12.jpg)
16
Три основные проблемы
• Технологии
• Логика работы
• Магазины приложений
![Page 13: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/13.jpg)
17
Что же мы имеем в начале разработки
• Клиент только под iOS
• Разработчик клиента – аутсорсинговаякомпания
• Server + SDK(C++) – разработчик Parallels
![Page 14: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/14.jpg)
18
Волевое решение
• Выделяем бизнес-логику –RemoteClientCore
• RemoteClientCore пишем на С++
• Добавляем SDK по вкусу
![Page 15: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/15.jpg)
19
Компилируешь под свою платформу
Большое кличество компиляторов: C++, Java, Python, С#, Action Script, Clojure, Common Lisp, D, Erlang, Go, Haskell, JavaScript, Lua, Matlab, Mercury, Objective-C, OCaml, Perl, PHP, Python, Ruby, Scala, Visual Basic, Delphi и т.д.
Результатом будет класс, который содержит простейшие методы доступа ко всем полям типа get/set, а также методы для сериализации и десериализации вашей структуры данных в/из массива байтов.
http://ru.wikipedia.org/wiki/Protocol_Buffers
Protocol Buffers — язык описания данных. Google
![Page 16: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/16.jpg)
20
• Простота использования
• Хорошая документация
• Поддержка большого количества языков
• Обратная совместимость
Protocol Buffers — язык описания данных. Google
http://ru.wikipedia.org/wiki/Protocol_Buffers
![Page 17: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/17.jpg)
21
ZeroMQ обеспечивает взаимодействие между потоками выполнения. Это взаимодействие максимально унифицировано для нитей, процессов, локальных и глобальных сетей.
Ключевой метод — передача информации с помощью сообщений, вместо обеспечения прямого доступа в ней. Для этого внутри библиотеки ZeroMQ используются неблокирующие алгоритмы и структуры данных en.wikipedia.org/wiki/Non-blocking_algorithm, а прикладной программист всего лишь использует ее элегантный API.
ZeroMQ — библиотека обмена сообщениями. iMatix
http://zguide.zeromq.org
![Page 18: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/18.jpg)
22
• Проста в использовании
• Хорошо написана
• Отлично документирована
• Великолепная производительность
• Поддержка большого количества языков
• Отзывчивое комьюнити
ZeroMQ — библиотека обмена сообщениями. iMatix
http://zguide.zeromq.org
![Page 19: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/19.jpg)
23
• Бизнес-логика отделена от платформенного кода
• Простота тестирования этой логики
• Скорость и простота реализации
Результат
![Page 20: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/20.jpg)
24
Единая логика приложения
![Page 21: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/21.jpg)
25
Мы близнецы, но мы не похожи.
App Launcher
![Page 22: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/22.jpg)
26
Нативные интерфейсы каждой платформы
Remote view
![Page 23: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/23.jpg)
27
iOS Android
EarHandlerKeyboardButtonPressed EarHandlerKeyboardButtonPressed
EarHandlerLaunchpadButtonPressed EarHandlerLaunchpadButtonPressed
EarHandlerMoved EarHandlerMoved
EarHandlerTaskbarButtonPressed EarHandlerTaskbarButtonPressed
EarHandlerToolbarButtonPressed EarHandlerToolbarButtonPressed
Единая аналитика
События
![Page 24: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/24.jpg)
28
Единая аналитика
Передвижение тулбара в приложении
Android
iOS
![Page 25: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/25.jpg)
29
Единая аналитика
ОС пользователей
iOS
Android
![Page 26: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/26.jpg)
30
Плюсы• Много пользователей
• Удобно работать со статистикой и платежами
• Интеграция в среду разработки
• Единственный вариант для iOS
Минусы• Жесткие ограничения
• Длительная проверка перед релизом
• Нет возможности оплаты In-App, кроме как через AppStore
Магазины
App Store
![Page 27: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/27.jpg)
31
Плюсы• Много пользователей
• Удобно работать со статистикой и платежами
• Интеграция в среду разработки
• Присутствует в большинстве Android-смартфонов
• Быстрая проверка перед релизом
Минусы• Низкий доход
• Нет возможности отложенного релиза
Магазины
Google Play
![Page 28: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/28.jpg)
32
Плюсы• Доступ в Galaxy Gifts
• Предустановлен на телефонах Samsung
• Возможна оплата In-App через любые шлюзы
Минусы• Длительная и доскональная проверка перед релизом
• Доступен только на смартфонах Samsung
• Мало пользователей
• Слабая аналитика
• Изменение описания и скриншотов требует ревью
Магазины
Samsung Galaxy Apps
![Page 29: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/29.jpg)
33
Плюсы• Привычная инфраструктура для пользователей Amazon
• Быстрая проверка
• Возможна оплата In-App через любые шлюзы
Минусы• Аудитория ограничена странами, где присутствует Amazon
• Предустановлен на небольшое количество устройств
Магазины
Amazon apps
![Page 30: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/30.jpg)
34
Китайские магазины приложений
![Page 31: Как не стать заложником одной платформы (MBLTdev)](https://reader033.vdocuments.net/reader033/viewer/2022042522/559a04b11a28abbd5c8b47b6/html5/thumbnails/31.jpg)
35
Q&A