Как не стать заложником одной платформы (MBLTdev)

Post on 06-Jul-2015

429 views 0 download

description

Презентация с конференции MBLTdev "Как не стать заложником одной платформы" на примере Parallels Access. О том как мы добивались кросс-платформенности в нашем приложении.

Transcript of Как не стать заложником одной платформы (MBLTdev)

1

#{MBLT}DEV

Панфилов АлексейМенеджер продукта

Parallels AccessКак не стать заложником одной платформы

3

PARALLELS ACCESSПозволяет использовать приложения с удаленного компьютера на

планшетах и смартфонах под iOS и Android, как будто они были разработаны под эти устройства

7

История возникновения Parallels Access

• Реакция на выход iPhone

• Базовая функциональность управления

виртуальными машинами

2008 – Первая версия Parallels Mobile

• Удаленное управление виртуальными

машинами

• Поддержка iPhone и iPad

2010 – Большой апгрейд Parallels Mobile

• Удаленное управление хостом (Mac-only)

2011 – Обновление Parallels Mobile

8

История возникновения Parallels Access

2012 – Начата разработка новой версии Parallels Mobile с учетoм:

• Новых идей

• Текущих проблем рынка

• Пожеланий пользователей

• Потребностей рынка

• Позиций конкурентов

9

2013 - Релиз Parallels Access 1.0 - iOS

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% нейтральная)

12

2014 - Релиз Parallels Access 2.0 - iOS + Android

13

Samsung Galaxy Gifts

14

Parallels Access сейчас

• 500К скачиваний в

• 45K скачиваний в

• Средняя оценка - 4 из 5

• 1000+ статей

• 500М+ потенциальных просмотров

• 89% позитивная реакция (10% нейтральная)

15

Все начинается с идеи и осознания проблемы...

16

Три основные проблемы

• Технологии

• Логика работы

• Магазины приложений

17

Что же мы имеем в начале разработки

• Клиент только под iOS

• Разработчик клиента – аутсорсинговаякомпания

• Server + SDK(C++) – разработчик Parallels

18

Волевое решение

• Выделяем бизнес-логику –RemoteClientCore

• RemoteClientCore пишем на С++

• Добавляем SDK по вкусу

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

20

• Простота использования

• Хорошая документация

• Поддержка большого количества языков

• Обратная совместимость

Protocol Buffers — язык описания данных. Google

http://ru.wikipedia.org/wiki/Protocol_Buffers

21

ZeroMQ обеспечивает взаимодействие между потоками выполнения. Это взаимодействие максимально унифицировано для нитей, процессов, локальных и глобальных сетей.

Ключевой метод — передача информации с помощью сообщений, вместо обеспечения прямого доступа в ней. Для этого внутри библиотеки ZeroMQ используются неблокирующие алгоритмы и структуры данных en.wikipedia.org/wiki/Non-blocking_algorithm, а прикладной программист всего лишь использует ее элегантный API.

ZeroMQ — библиотека обмена сообщениями. iMatix

http://zguide.zeromq.org

22

• Проста в использовании

• Хорошо написана

• Отлично документирована

• Великолепная производительность

• Поддержка большого количества языков

• Отзывчивое комьюнити

ZeroMQ — библиотека обмена сообщениями. iMatix

http://zguide.zeromq.org

23

• Бизнес-логика отделена от платформенного кода

• Простота тестирования этой логики

• Скорость и простота реализации

Результат

24

Единая логика приложения

25

Мы близнецы, но мы не похожи.

App Launcher

26

Нативные интерфейсы каждой платформы

Remote view

27

iOS Android

EarHandlerKeyboardButtonPressed EarHandlerKeyboardButtonPressed

EarHandlerLaunchpadButtonPressed EarHandlerLaunchpadButtonPressed

EarHandlerMoved EarHandlerMoved

EarHandlerTaskbarButtonPressed EarHandlerTaskbarButtonPressed

EarHandlerToolbarButtonPressed EarHandlerToolbarButtonPressed

Единая аналитика

События

28

Единая аналитика

Передвижение тулбара в приложении

Android

iOS

29

Единая аналитика

ОС пользователей

iOS

Android

30

Плюсы• Много пользователей

• Удобно работать со статистикой и платежами

• Интеграция в среду разработки

• Единственный вариант для iOS

Минусы• Жесткие ограничения

• Длительная проверка перед релизом

• Нет возможности оплаты In-App, кроме как через AppStore

Магазины

App Store

31

Плюсы• Много пользователей

• Удобно работать со статистикой и платежами

• Интеграция в среду разработки

• Присутствует в большинстве Android-смартфонов

• Быстрая проверка перед релизом

Минусы• Низкий доход

• Нет возможности отложенного релиза

Магазины

Google Play

32

Плюсы• Доступ в Galaxy Gifts

• Предустановлен на телефонах Samsung

• Возможна оплата In-App через любые шлюзы

Минусы• Длительная и доскональная проверка перед релизом

• Доступен только на смартфонах Samsung

• Мало пользователей

• Слабая аналитика

• Изменение описания и скриншотов требует ревью

Магазины

Samsung Galaxy Apps

33

Плюсы• Привычная инфраструктура для пользователей Amazon

• Быстрая проверка

• Возможна оплата In-App через любые шлюзы

Минусы• Аудитория ограничена странами, где присутствует Amazon

• Предустановлен на небольшое количество устройств

Магазины

Amazon apps

34

Китайские магазины приложений

35

Q&A