tdsr 2014: porting zvooq app to tizen

20
ZVOOQ ДЛЯ TIZEN

Upload: -

Post on 24-May-2015

342 views

Category:

Documents


4 download

DESCRIPTION

Презентацию делали два человека: Davide Livraghi, PM at Zvooq и Андрей Татаринов, CTO at Zvooq. Часть на английском - Давиде.

TRANSCRIPT

Page 1: TDSR 2014: Porting Zvooq app to Tizen

ZVOOQ ДЛЯ TIZEN

Page 2: TDSR 2014: Porting Zvooq app to Tizen

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

Page 3: TDSR 2014: Porting Zvooq app to Tizen

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

Page 4: TDSR 2014: Porting Zvooq app to Tizen

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)

Page 5: TDSR 2014: Porting Zvooq app to Tizen

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

Page 6: TDSR 2014: Porting Zvooq app to Tizen

Zvooq для Tizen

• Задача: портировать существующее приложение iOS/Android• ~Два человеко-года разработки

• Засады• 2 месяца на портирование• Управление:

• Нет внутренних ресурсов• Аутсорс

• Технологии:• Нет опыта работы с Tizen

• Поехали!

Page 7: TDSR 2014: Porting Zvooq app to Tizen

Управление

• Отдельная история• Нашли подрядчиков, у которого “есть опыт работы” с

Tizen• Потом оказалось, что опыта нет :)

• Модель аутстаф:• Ресурсы с их стороны• Менеджмент наш

• Scrum

Page 8: TDSR 2014: Porting Zvooq app to Tizen

Техническое решение

• Сложно принять решение, не достаточно информации и экспертизы

• Варианты:• Native, C++• Hybrid, HTML + C++• Pure HTML

Page 9: TDSR 2014: Porting Zvooq app to Tizen

Native, C++

• Долго• Дорого• Увеличенные технические риски

• Легко получить нестабильное приложение

Page 10: TDSR 2014: Porting Zvooq app to Tizen

Hybrid, HTML + C++

• Предпочтительное решение, основанное на презентациях вроде “TDC2013: Native-Hybrid Tizen Apps Development Technique”

• Ключевая функциональность в C++• Проигрывание треков• Скачивание

• Интерфейс на HTML

Page 11: TDSR 2014: Porting Zvooq app to Tizen

Pure HTML

• Всё на JS/HTML• Изначально не были уверены, что это возможно• Риски (все “странные” операции):

• Скачивание и докачка• Проигрывание в фоне (переходы между треками)• Аппаратная интеграция• etc

Page 12: TDSR 2014: Porting Zvooq app to Tizen

R&D

• Изначальная задача: изучить гибридный подход• Выяснилось, что все можно сделать на HTML

• Скачивание через Tizen-расширения• Download API• Filesystem API

• Проигрывание через <audio/> тег• Даже в фоне!• Даже колбеки в фоне! (переход на следующий трек)

• Делаем чистый HTML, экономим ресурсы

Page 13: TDSR 2014: Porting Zvooq app to Tizen

Разработка с HTML

• Чистый HTML возможен• Хорошие новости, можем больше сфокусироваться на

интерфейсах• У команды хорошие знания с HTML• У нас есть внутренняя экспертиза для контроля (в

отличие от C++)• Технологии:

• jQuery• Angular• ionic

Page 14: TDSR 2014: Porting Zvooq app to Tizen

Разработка

• Без происшествий• Достаточно близко к изначальному плану

Page 15: TDSR 2014: Porting Zvooq app to Tizen

Нюансы

• HTML/JS - технология со встроенными проблемами• Вычисления в одном потоке• Трудно создать приложение, а не набор

перезагружающихся страниц (возможно UI-библиотека от Tizen упростила бы ситуацию)

• Интеграция с внешней OAuth авторизацией (FB/VK)• Нельзя отменить процесс авторизации• Не работает кнопка “назад”

• Непредсказуемый зум встроенного браузера, надо специально защищаться

• И что нибудь, что мы узнаем от пользователей

Page 16: TDSR 2014: Porting Zvooq app to Tizen

HTML и один поток

• Все вычисления в том же потоке что и UI• Неаккуратно написанное приложение ТОРМОЗИТ

СИЛЬНО• Аккуратно написанное приложение иногда

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

• Совсем! • Нельзя делать медленные вычисления

• Совсем!• 100ms уже медленно• Например: нельзя пересортировать большой список

• Проблему нельзя решить в чистом HTML-приложении

Page 17: TDSR 2014: Porting Zvooq app to Tizen

HTML и один поток, решения

• Общий подход: унести все вычисления из JS в другую систему

• Не иметь логики на клиенте, сервер с сильной поддержкой приложения• Возвращать данные готовые для рендеринга• HTTP-запросы не задерживают UI

• Гибридное приложение• То же что и выше, но сервер локальный• Вся подготовка данных в C + +• Отрисовка на HTML

Page 18: TDSR 2014: Porting Zvooq app to Tizen

Выводы

• Tizen подходит для быстрой разработки• HTML подходит до некоторого предела

• Ошибка делать чистое HTML приложение• Мигрируем на гибридное приложение с “движком”

на C + +

Page 19: TDSR 2014: Porting Zvooq app to Tizen

Вопросы?