Презентация с конференции MBLTdev "Как не стать заложником одной платформы" на примере Parallels Access. О том как мы добивались кросс-платформенности в нашем приложении.
2. Parallels Access
Как не стать заложником одной платформы
Панфилов Алексей
Менеджер продукта
3. PARALLELS ACCESS
Позволяет использовать приложения с удаленного компьютера на
планшетах и смартфонах под iOS и Android, как будто они были
разработаны под эти устройства
3
4. История возникновения Parallels Access
2008 – Первая версия Parallels Mobile
• Реакция на выход iPhone
• Базовая функциональность управления
2010 – Большой апгрейд Parallels Mobile
2011 – Обновление Parallels Mobile
7
виртуальными машинами
• Удаленное управление виртуальными
машинами
• Поддержка iPhone и iPad
• Удаленное управление хостом (Mac-only)
5. История возникновения Parallels Access
2012 – Начата разработка новой версии Parallels Mobile
с учетoм:
8
• Новых идей
• Текущих проблем рынка
• Пожеланий пользователей
• Потребностей рынка
• Позиций конкурентов
7. “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 sacrificing
functionality.” –Walt Mossberg, The Wall Street Journal (US)
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
1000+ статей о Parallels Access 2.0
500М+ потенциальных просмотров
89% позитивная реакция (10% нейтральная)
12. 16
Три основные проблемы
• Технологии
• Логика работы
• Магазины приложений
13. Что же мы имеем в начале разработки
17
• Клиент только под iOS
• Разработчик клиента – аутсорсинговая
компания
• Server + SDK(C++) – разработчик
Parallels
14. 18
Волевое решение
• Выделяем бизнес-логику –
RemoteClientCore
• RemoteClientCore пишем на С++
• Добавляем SDK по вкусу
15. Protocol Buffers — язык описания данных. Google
Компилируешь под свою платформу
Результатом будет класс, который содержит простейшие методы
доступа ко всем полям типа get/set, а также методы для сериализации и
десериализации вашей структуры данных в/из массива байтов.
Большое кличество компиляторов: 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 и т.д.
19
http://ru.wikipedia.org/wiki/Protocol_Buffers
16. Protocol Buffers — язык описания данных. Google
• Простота использования
• Хорошая документация
• Поддержка большого количества языков
• Обратная совместимость
20
http://ru.wikipedia.org/wiki/Protocol_Buffers
17. ZeroMQ — библиотека обмена сообщениями. iMatix
ZeroMQ обеспечивает взаимодействие между потоками выполнения.
Это взаимодействие максимально унифицировано для нитей,
процессов, локальных и глобальных сетей.
Ключевой метод — передача информации с помощью сообщений,
вместо обеспечения прямого доступа в ней. Для этого внутри
библиотеки ZeroMQ используются неблокирующие алгоритмы и
структуры данных en.wikipedia.org/wiki/Non-blocking_algorithm, а
прикладной программист всего лишь использует ее элегантный API.
21
http://zguide.zeromq.org
18. ZeroMQ — библиотека обмена сообщениями. iMatix
• Проста в использовании
22
• Хорошо написана
• Отлично документирована
• Великолепная производительность
• Поддержка большого количества языков
• Отзывчивое комьюнити
http://zguide.zeromq.org
19. 23
Результат
• Бизнес-логика отделена от
платформенного кода
• Простота тестирования этой логики
• Скорость и простота реализации
26. 30
Магазины
App Store
Плюсы
• Много пользователей
• Удобно работать со статистикой и платежами
• Интеграция в среду разработки
• Единственный вариант для iOS
Минусы
• Жесткие ограничения
• Длительная проверка перед релизом
• Нет возможности оплаты In-App, кроме как через AppStore
27. Магазины
Google Play
Плюсы
• Много пользователей
• Удобно работать со статистикой и платежами
• Интеграция в среду разработки
• Присутствует в большинстве Android-смартфонов
• Быстрая проверка перед релизом
31
Минусы
• Низкий доход
• Нет возможности отложенного релиза
28. Плюсы
• Доступ в Galaxy Gifts
• Предустановлен на телефонах Samsung
• Возможна оплата In-App через любые шлюзы
Минусы
• Длительная и доскональная проверка перед релизом
• Доступен только на смартфонах Samsung
• Мало пользователей
• Слабая аналитика
• Изменение описания и скриншотов требует ревью
32
Магазины
Samsung Galaxy Apps
29. Плюсы
• Привычная инфраструктура для пользователей Amazon
• Быстрая проверка
• Возможна оплата In-App через любые шлюзы
Минусы
• Аудитория ограничена странами, где присутствует Amazon
• Предустановлен на небольшое количество устройств
33
Магазины
Amazon apps