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

31
1 #{MBLT}DEV
  • Upload

    -
  • Category

    Mobile

  • view

    428
  • download

    0

description

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

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

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

1

#{MBLT}DEV

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

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

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

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

3

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

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

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

7

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

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

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

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

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

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

машинами

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

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

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

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

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

8

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

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

• Новых идей

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

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

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

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

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

9

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

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

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)

12

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

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

13

Samsung Galaxy Gifts

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

14

Parallels Access сейчас

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

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

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

• 1000+ статей

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

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

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

15

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

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

16

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

• Технологии

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

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

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

17

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

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

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

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

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

18

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

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

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

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

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

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)

20

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

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

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

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

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

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

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

21

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

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

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

http://zguide.zeromq.org

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

22

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

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

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

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

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

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

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

http://zguide.zeromq.org

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

23

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

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

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

Результат

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

24

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

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

25

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

App Launcher

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

26

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

Remote view

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

27

iOS Android

EarHandlerKeyboardButtonPressed EarHandlerKeyboardButtonPressed

EarHandlerLaunchpadButtonPressed EarHandlerLaunchpadButtonPressed

EarHandlerMoved EarHandlerMoved

EarHandlerTaskbarButtonPressed EarHandlerTaskbarButtonPressed

EarHandlerToolbarButtonPressed EarHandlerToolbarButtonPressed

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

События

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

28

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

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

Android

iOS

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

29

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

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

iOS

Android

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

30

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

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

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

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

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

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

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

Магазины

App Store

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

31

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

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

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

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

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

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

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

Магазины

Google Play

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

32

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

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

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

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

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

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

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

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

Магазины

Samsung Galaxy Apps

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

33

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

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

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

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

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

Магазины

Amazon apps

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

34

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

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

35

Q&A