2. Dream Industries
We create technology that empowers people to spread
knowledge and culture
Our products are Zvooq, Bookmate, Exchang.es, Theory &
Practice, Third Place and Telegraph
3. About Zvooq
An amazing music experience shaped by
connections to friends, artists and labels
Zvooq’s innovation is driven by mobile.
We currently have a web service and three
mobile apps for iOS and Android
4. Zvooq App
• Launched in June 2014 for
iOS and Android
• More than 220,000 installs
• Reached number 2 in
Russian AppStore (number
1 in music)
5. Zvooq app, functionalities
• Unlimited access to the whole
Zvooq catalogue (more than 15
millions of songs)
• Music search (manual and by
genre)
• Editorial content (releases and
playlists)
• User collection
• Create your own playlists
6. Zvooq для Tizen
• Задача: портировать существующее приложение
iOS/Android
• ~Два человеко-года разработки
• Засады
• 2 месяца на портирование
• Управление:
• Нет внутренних ресурсов
• Аутсорс
• Технологии:
• Нет опыта работы с Tizen
• Поехали!
7. Управление
• Отдельная история
• Нашли подрядчиков, у которого “есть опыт работы” с
Tizen
• Потом оказалось, что опыта нет :)
• Модель аутстаф:
• Ресурсы с их стороны
• Менеджмент наш
• Scrum
8. Техническое решение
• Сложно принять решение, не достаточно информации и
экспертизы
• Варианты:
• Native, C++
• Hybrid, HTML + C++
• Pure HTML
9. Native, C++
• Долго
• Дорого
• Увеличенные технические риски
• Легко получить нестабильное приложение
10. Hybrid, HTML + C++
• Предпочтительное решение, основанное на
презентациях вроде “TDC2013: Native-Hybrid Tizen Apps
Development Technique”
• Ключевая функциональность в C++
• Проигрывание треков
• Скачивание
• Интерфейс на HTML
11. Pure HTML
• Всё на JS/HTML
• Изначально не были уверены, что это возможно
• Риски (все “странные” операции):
• Скачивание и докачка
• Проигрывание в фоне (переходы между треками)
• Аппаратная интеграция
• etc
12. R&D
• Изначальная задача: изучить гибридный подход
• Выяснилось, что все можно сделать на HTML
• Скачивание через Tizen-расширения
• Download API
• Filesystem API
• Проигрывание через <audio/> тег
• Даже в фоне!
• Даже колбеки в фоне! (переход на следующий трек)
• Делаем чистый HTML, экономим ресурсы
13. Разработка с HTML
• Чистый HTML возможен
• Хорошие новости, можем больше сфокусироваться на
интерфейсах
• У команды хорошие знания с HTML
• У нас есть внутренняя экспертиза для контроля (в
отличие от C++)
• Технологии:
• jQuery
• Angular
• ionic
15. Нюансы
• HTML/JS - технология со встроенными проблемами
• Вычисления в одном потоке
• Трудно создать приложение, а не набор
перезагружающихся страниц (возможно UI-библиотека
от Tizen упростила бы ситуацию)
• Интеграция с внешней OAuth авторизацией (FB/VK)
• Нельзя отменить процесс авторизации
• Не работает кнопка “назад”
• Непредсказуемый зум встроенного браузера, надо
специально защищаться
• И что нибудь, что мы узнаем от пользователей
16. HTML и один поток
• Все вычисления в том же потоке что и UI
• Неаккуратно написанное приложение ТОРМОЗИТ
СИЛЬНО
• Аккуратно написанное приложение иногда
подтормаживает
• Нет вычислений в фоне
• Совсем!
• Нельзя делать медленные вычисления
• Совсем!
• 100ms уже медленно
• Например: нельзя пересортировать большой список
• Проблему нельзя решить в чистом HTML-приложении
17. HTML и один поток, решения
• Общий подход: унести все вычисления из JS в другую
систему
• Не иметь логики на клиенте, сервер с сильной
поддержкой приложения
• Возвращать данные готовые для рендеринга
• HTTP-запросы не задерживают UI
• Гибридное приложение
• То же что и выше, но сервер локальный
• Вся подготовка данных в C + +
• Отрисовка на HTML
18. Выводы
• Tizen подходит для быстрой разработки
• HTML подходит до некоторого предела
• Ошибка делать чистое HTML приложение
• Мигрируем на гибридное приложение с “движком”
на C + +