как сделать приложение для телевизора
Как я создавал приложение для Samsung SmartTV
Привет, Geektimes! Хочу поделиться с Вами своим опытом в разработке приложений для Samsung SmartTV.
Весь процесс, а именно период времени от начала разработки приложения до его публикации, можно разделить на две стадии: разработка и публикация. Но будем называть вещи своими именами, поэтому будем использовать их «синонимы»: светлая и темная сторона, соответственно. Почему? Читайте дальше!
Светлая сторона
Стадия разработки получила такое название, Вы удивитесь, потому что это самая простая часть всего процесса. Разобьем этот этап на следующие шаги:
Пожалуйста, убедитесь, что Вы используете в разработке именно последнюю версию SDK, иначе у Вас возникнут проблемы на следующем этапе.
Если Вы сделали все правильно и у Вас уже есть готовый к публикации архив с приложением, тогда мы можем приступать к следующему этапу.
Тёмная сторона
Стадия публикации получила такое название, потому что это самая неочевидная часть процесса, информации о которой практически нет. Ребята из Samsung перестарались, и далее Вы поймете почему. Разобьем этот этап на следующие шаги:
Поздравляю, теперь Вы официально являетесь разработчиком приложений для Samsung SmartTV, но Вы по прежнему не можете опубликовывать свои приложения. Чтобы иметь возможность опубликовывать свои приложения во всех странах странах, необходимо получить партнерский статус разработчика от Samsung. Как это сделать? Читайте дальше!
Буду рад если данная информация окажется полезной. Кому не достаточно информации по данному вопросу — пишите, помогу.
Как Создать ТВ-Приложение?
Содержание
Из этой статьи вы узнаете, как создать мобильное приложение для просмотра телеканалов, популярных сериалов, фильмов и детских мультиков на мобильном телефоне в онлайн-режиме. Мы расскажем об этапах разработки, используемых технологиях и стоимости создания таких ТВ-приложений, как Hulu TV и YouTube TV.
Шаг 1. Найдите свою нишу
ТВ-приложение — это сервис для воспроизведения телевизионного контента в вашем смартфоне в онлайн-режиме (как на обычном телевизоре) и / или по запросу (как на YouTube). Создать такое приложение не очень трудно — в App Store и Google Play их сотни, если не тысячи. Сложно сделать его популярным и прибыльным, так как нужно конкурировать с лидерами рынка, что требует очень много денег.
Лучшим решением в этой ситуации является запуск ТВ-приложения, ориентированного на одну определенную целевую аудиторию. Как показывает история Amazon, Facebook и Google, такой подход оптимален для запуска новых проектов. Нишей может быть спорт, новости, наука, культура, история, фильмы, музыка, сериалы, мультики, политика, языковая группа или регион.
При этом вы можете сделать ставку как на общее направление в целом, так и на какую-то поднишу. Например, вы можете разработать приложение для трансляции контента, связанного только с американским футболом, хоккеем или бильярдом. Главное, чтобы такая ниша была достаточно большой.
Шаг 2. Разработайте бизнес-модель
Шаг 3. Получите лицензии и разрешения
На следующем шаге создания своего ТВ-приложения вам нужно решить, какие каналы будут доступны на вашем сервисе и получить соответствующие лицензии на их публичное воспроизведение в вашем приложении. В США эти лицензии выдают в SWANK Motion Pictures и Motion Picture Licensing Corporation (MPLC).
Шаг 4. Разработайте дизайн ТВ-приложения
Шаг 5. Определитесь с функционалом сервиса
Адаптивная потоковая передача битрейта. Суть данной технологии в том, что если доступно несколько качеств потока (480p, 720p, 1080p, 4p, 8k), система будет обеспечивать бесшовную смену качества воспроизведения видео в соответствии с доступной пропускной способностью интернет-соединения или по запросу самого пользователя. Как это работает, легко заметить в YouTube при смене качества видео.
Совместимость с несколькими экранами. Разрабатываемое вами ТВ-приложение должно быть адаптивным. Экран приложения и транслируемое видео автоматически подстраиваться под размеры экрана устройства. Кроме того, нужно автоматическое определение верха/низа.
Быстрая масштабируемость. Ваш сервис должен быть готов к резкой смене нагрузки, например утром, когда люди просыпаются и включают свои смартфоны. Это можно обеспечить благодаря облачным технологиям. Вы также можете создать свою систему из локальных серверов, но тогда могут быть проблемы с передачей медиаконтента на большие расстояния (высокий пинг, задержки, артефакты).
Автономный просмотр. Данная функция позволяет пользователю записывать и загружать медиаконтент на свое устройство, чтобы посмотреть его позже без подключения к интернету и дополнительных усилий.
Безопасность данных. Шифрование DRM и AES, а также контроль доступа на основе IP помогут защитить видеоданные от хакеров и других злоумышленников
Регистрация и вход в систему. Данный функционал позволяет создавать аккаунты посредством электронной почты, номера телефона или аккаунта Google, Facebook и Twitter. При этом обычно в ходе регистрации в ТВ-приложении пользователей просят указать любимые каналы, фильмы и телепередачи, чтобы сразу показать их после входа в систему. Также нужна возможность активации пробного периода.
Функция поиска. Позволяет искать каналы, просматривать их телепрограмму и детали о телепередачах, фильмах, сериалах и мультиках.
Геоблокировка. Из-за определенных ограничений некоторые каналы вашего приложения могут быть запрещены в определенных странах. Следовательно, при разработке ТВ-приложения вы должны обеспечить реализации таких блокировок.
Шаг 6. Выберите инструменты разработки
Шаг 7. Создайте MVP ТВ-приложения
MVP — это минимально жизнеспособный продукт, функциональность которого достаточна для удовлетворения основных потребностей пользователей. Время и стоимость разработки MVP ТВ-приложения намного меньше, нежели при создании полнофункционального софта, что позволяет снизить затраты и риски, если продукт не заработает или не понравится пользователям, например из-за дизайна.
Ориентировочная стоимость разработки MVP ТВ-приложения такова:
Знакомимся с особенностями разработки под Smart TV и учимся делать приложение для телевизора
Содержание статьи
Разговоры про Smart TV в последнее время участились, продаются умные телевизоры чаще, чем обычные, их аудитория постоянно растет, но вот магазины приложений пустуют. Почему так? Ведь, казалось бы, разработка под Smart TV не отличается от front-end’а: привычные JavaScript, HTML, CSS и браузер. Все дело в том, что кодинг под Smart TV имеет свои специфические особенности, о которых лучше знать еще при проектировании приложения.
Что такое Smart TV и зачем нужны приложения в телевизорах?
Представь, что ты заходишь на кухню. Холодильник сообщает, что можно приготовить из имеющихся продуктов, а затем перекидывает выбранный рецепт на мультиварку. Безумие? Таким же безумием казались приложения в телевизорах еще лет двадцать назад.
Что же такое Smart TV? Это интернет и интерактивные сервисы в телевизоре или телевизионном ресивере, или, вкратце, компьютер в форм-факторе «зомбоящика». Первую попытку реализовать подобие Smart TV предприняла компания Microsoft в далеком 1997 году, но идея провалилась из-за dial-up-соединения и CRT-телевизоров. Позднее возник другой способ сделать телевизор «умным»: в 2000 году стали появляться устройства Set Top Box (STB) различных производителей, расширяющие функционал стандартного (кабельного, спутникового) ТВ. STB — это обычная телевизионная приставка, принимающая сигнал цифрового телевидения, декодирующая и преобразующая его в аналоговый сигнал для вывода через разъемы RCA или SCART либо выводящая сигнал через разъем HDMI на телевизор. Но с ростом скорости соединения и новыми технологиями экранов стали появляться телевизоры со встроенным функционалом Smart TV, и с 2009 года началась сертификация таких устройств. В настоящий момент технология Smart TV внедряется в различные устройства: телевизоры, ресиверы цифрового телевидения, Blu-ray-проигрыватели, игровые консоли и аналогичные им девайсы.
Приложения умного ТВ позволяют просматривать различный видеоконтент: фильмы, сериалы, записи и трансляции передач и спортивных событий, музыкальные клипы, видеоролики; дают возможность читать новости, просматривать социальные сети и общаться по Skype или другому VoIP. Существуют развивающие приложения для детей и игры.
Если ты знаком с front-end-разработкой, то уже можешь приступать к созданию приложения, ничего нового учить не придется. Правда, необходимо учитывать особенности телевизоров:
Ниже краткое описание популярных платформ, чтобы ты знал, с чем придется работать.
Samsung
Samsung сейчас занимает наибольшую долю среди всех телевизоров с поддержкой технологии Smart TV. В моделях 2010 и 2011 года в качестве движка браузера используется MAPLE — сильно измененная версия Gecko, который был в Firefox 3.0. К счастью разработчиков, компания отказалась продолжать изобретать свой велосипед и с 2012 года в телевизорах Samsung Smart TV используется WebKit.
Помимо управления с пульта ДУ, в этой платформе можно использовать управление голосом и жестами (начиная с моделей 2012 года), а также подключать привычную мышь и клавиатуру.
Для разработчиков Samsung предоставляет SDK с эмуляторами и своей средой разработки на базе Eclipse. На сайте есть документация с множеством примеров и возможность удаленного тестирования на реальных устройствах модельного ряда 2013-го и выпущенных позднее (очень полезная для тестирования возможность). Есть недокументированный функционал, поэтому ответ порой придется искать на форуме, к счастью русскоязычном.
Ключевые возможности API: управление звуком из приложения, получение данных сети и модели, широкие возможности управления плеером.
Отличительная черта этой платформы — возможность использовать Magic Remote, гироскопический анатомический пульт управления. Движение пульта в пространстве сопровождается движением курсора на экране, что очень сильно упрощает навигацию внутри приложений.
Из других способов управления — многокнопочный пульт и распознавание голоса. Во всех моделях LG Smart TV используется WebKit, что значительно сокращает количество «специфичных» багов.
LG предоставляет для разработчиков подробную документацию и SDK с эмуляторами и средой разработки, построенной на основе Eclipse. У платформы LG есть еще одна особенность — приложение необходимо зашифровать на сайте перед выгрузкой на устройство.
Компания LG является учредителем Smart TV Alliance — это проект, созданный в 2012 году совместными усилиями с TP Vision (компанией, производящей телевизоры под брендом Philips) в целях создания унифицированной платформы приложений для умных телевизоров.
Philips
Достаточно своеобразная платформа. Вторая по объемам продаж в России, но, несмотря на это, разработка для Philips конкретно прокачивает навыки логического мышления, так как документация невероятно скудная :).
Вот что известно про эту платформу:
Разработка кросс-платформенного приложения при помощи Smartbox
Как ты понял, в разработке приложения для Smart TV очень много особенностей. Недолго думая, мы с командой решили создать библиотеку, основываясь на опыте кросс-платформенной разработки для умных телевизоров. Вот список того, чем наши наработки могут упростить тебе жизнь:
На данный момент библиотека позволяет запускать приложение на трех мажорных платформах:
Кроме того, Smartbox без проблем запускается и на приставке STB Mag 200/250.
Добавить новую платформу в Smartbox не составит труда, в репозитории ты сможешь найти документацию, как это сделать. Код библиотеки мы выложили на GitHub.
LET’S GO!
Но довольно теории, давай попробуем написать кросс-платформенное приложение для ТВ, используя Smartbox. Наше приложение будет иметь меню, список видео из внешнего файла, демонстрацию навигации и примеры полей ввода с виртуальной клавиатурой. Приложение будет в трендовом Flat-дизайне.
Накидаем HTML для меню:
Добавим HTML для сцен.
Теперь HTML нашего приложения готов, приступим к написанию главного JS-файла приложения app.js. После инициализации самого Smartbox происходит старт приложения.
Во время инициализации покажем легенду, запустим навигацию и установим основные обработчики событий для клавиш пульта и плеера.
Метод showContent будет скрывать текущую сцену и отображать новую. Каждая сцена будет иметь три метода — init для разовой инициализации и show / hide для управления отображением. Реализация методов отображения будет одинаковой во всех сценах:
Ну а теперь приступаем к реализации сцен, я буду приводить код без методов show/hide. Но для начала вынесем список видео в отдельный файл:
Можно приступать к реализации сцены со списком видео.
Сцена со списком видео
Хакер #184. Современный фронтенд
Сцена со списком готова, можно запускать видео и добавлять новые элементы. Создадим возможность использовать инпуты в Smart TV, в методе init сцены с полями ввода впишем код:
Сцена с инпутами и виртуальной клавиатурой
Теперь можно вводить данные в поля ввода, отображать и скрывать клавиатуру. Остается добавить код для сцены с примером навигации. На элементе с классом nav-item вызывается событие nav_focus при попадании фокуса на него и nav_blur при потере фокуса. Добавим обработчики для этих событий в сцене.
Сцена с примером навигации
Основной код для сцен готов, приложение функционирует, остается только добавить подсказки для клавиш в плагине легенды. Все возможные кнопки в легенде представлены на рис. 1, а пользоваться клавишами несложно:
Рис. 1. Возможные подсказки плагина легенды
Готовый код приложения ты можешь найти тут. Также можешь посмотреть на приложение в действии. В браузере навигация осуществляется с помощью мыши или стрелок клавиатуры, а кнопки пульта RED, YELLOW, GREEN, BLUE заменяются на клавиши A, B, C, D.
Заключение
Теперь ты подготовлен к встрече со Smart TV в боевых условиях разработки. Надеюсь, наша библиотека поможет избежать хождения по граблям и ты сможешь быстро разработать и выложить свое творение в магазин приложений на телевизорах.
Если хочешь поучаствовать в разработке Smartbox — мы всегда рады pull request’ам на GitHub. А если возникли вопросы по разработке под Smart TV — пиши мне.
Кроссплатформенное Smart TV приложение в одном экземпляре. Библиотека SmartBox для Samsung, LG, Philips, STB Mag 200/250 и других
Копаясь в памяти своего неискушённого идеальным миром мозга, я, припоминаю, как два года назад начиналась наша история по разработке приложений для SmartTv. Если коротко, то это был АД. богатейший опыт.
Однако, хотелось бы получить этот опыт сразу, не наступая на недокументированные грабли, разложенные по всей технологии, и специальные детские грабли разложенные каждым вендором отдельно. Но как говорится «c’est la vie» и нам пришлось пробиваться сквозь тернии к звёздам!
В итоге мы получили кроссплатформенную расширяемую библиотеку для всех SmartTv.
И имя этой библиотеке — SmartBox. Opensource, а потому постоянно в процессе разработки и документирования.
Координаты и демки Smartbox
Плеер, Клавиатура, Навигация, Лог
(Картинки кликабельны)
Предпосылки к созданию библиотеки
Несмотря на то, что почти всё SmartTv стоит на браузерных движках (Gecko, Webkit), есть у каждого отдельного вендора свои баги нюансы и баги недокументированные возможности. Собственно отсюда всё зло:
Возможности библиотеки SmartBox
Нудно и упорно разрабатывая свои приложения для Смартов, мы вынуждены были изучать всю документацию вплоть до обращения в саппорт за пояснениями. Всё это систематизировалось и накапливалось в нашем таск трекере и wiki.
Также мы изучили исходники наших конкурентов братьев по оружию — i*i, yo*a, TV*avr, Z**mbyBox и иных видео сервисов. (Откуда и каким способом они были получены я не знаю, даже не спрашивайте). Из этих исходников мы просто выяснили, что все мы идём одной дорогой к счастливому будущему SmartTv.
В итоге сели и всё переделали написав библиотеку, которая упростила нам жизнь в разы. И, надеемся, что упростит и начинающим «смартистам».
Из возможностей:
Поддерживаемые платформы:
Из плагинов на сегодняшний день:
TODO на ближайшее будущее
Создание приложений для LG Smart TV: советы начинающему разработчику
Привет! В этой статье я хочу поделиться своим опытом разработки приложений для платформы LG Smart TV. Лично я свой путь Smart TV разработчика начинал именно с этой платформы и хотел бы порекомендовать ее всем заинтересованным в данном направлении приложений. В первую очередь это связано с тем, что по качеству документации и предоставляемых разработчику возможностям LG не уступает своим основным конкурентам из Samsung. В то же время, специалисты санкт-петербургской лаборатории LG R&D достаточно открыты и всегда готовы предоставить актуальную информацию, тогда как от их коллег из московского центра разработок Samsung я уже несколько месяцев пытаюсь получить контакт хоть кого-то, кто может внятно отвечать на технические вопросы. Про других участников рынка Smart TV я лучше не буду упоминать: то, как они подходят к вопросам взаимодействия с теми, кто, по идее, должен наполнять их магазины приложений, вызывает большие сомнения в том, что они вообще заинтересованы в том, чтобы для них что-то разрабатывалось.
Одним из продуктов нашей команды является приложение Simple Smart IPTV, которое появилось в LG Smart World 29 апреля этого года, менее чем через месяц после объявления нас победителями в конкурсе LG Smart TV Apps Contest 2012. С первых же дней SS IPTV заняло уверенную позицию в топе бесплатных приложений, где и остается по сей день.
Поскольку статья ориентирована в первую очередь на новичков, мне бы хотелось начать с двух противоречивых, но, не смотря на это, одинаково распространенных заблуждений о создании Smart TV приложений.
Заблуждение первое – разрабатывать приложения для Smart TV очень сложно.
Это не так. В большинстве случаев, когда мы говорим о создании Smart TV приложений, речь идет о верстке html-страницы, воплощающей весь необходимый функционал. Технологии, применяемые при создании такого рода приложений (HTML 5, CSS, JS) хорошо описаны и многим давно известны.
Заблуждение второе – разрабатывать приложения для Smart TV очень просто.
Это тоже не так. Данное заблуждение распространяется, вероятно, теми, кто не сталкивался с этой задачей непосредственно, а знаком с ней лишь в общих чертах. Применяемые при разработке технологии должны учитывать функциональные особенности платформы и соответствовать требованиям к пользовательскому интерфейсу. Без понимания этого можно всего за 2-3 месяца создать великолепный и потенциально востребованный продукт, после чего потратить еще год на то, чтобы пройти контроль качества в LG QA.
Ниже я привожу несколько основных советов, следование которым существенно облегчит Вашу работу и сэкономит множество нервных клеток:
1. Внимательно изучайте документацию
Изучение документации, размещенной на LG Developer в разделах Library и Technical Notes – это то, с чего должен начать каждый будущий Smart TV разработчик. Документация включает в себя подробное описание LG Web API, возможностей платформы Netcast и всевозможные спецификации. Особое внимание следует уделить документы под названием LG Smart TV and Media Product UI Guideline – он содержит требования к пользовательскому интерфейсу, которые должны неукоснительно соблюдаться.
2. Не доверяйте документации
Не смотря на то, что представленная на сайте LG Developer документация станет основным Вашим источником информации по разработке, не стоит доверять ей безоговорочно, проверяйте на практике те моменты, которые могут вызывать у вас сомнения. Возможности платформы зачастую шире, чем описано в документации.
3. Используйте для тестирования реальные телевизоры
В комплект LG Smart TV SDK входят эмуляторы телевизоров всех модельных рядов. Они неплохо работают и, безусловно, незаменимы в разработке. Тем не менее, очень важно на всех этапах создания приложения использовать для тестирования реальные телевизоры (желательно разных годов выпуска), поскольку эмуляторы не могут учесть всех особенностей платформы и актуальных прошивок. В противном случае вы рискуете получить приложение, замечательно работающее в эмуляторе, но не запускающееся на телевизоре.
4. Начинайте с простого
Не пытайтесь с самого начала создать лучшее в мире приложение – это верный способ погрязнуть в дрязгах с QA и затянуть вывод продукта на рынок на долгие-долгие месяцы. На мой взгляд, гораздо проще и правильней будет создать относительно простое, но полнофункционального приложения, безупречное с точки зрения «гайдлайнов» и постепенно улучшать его функциональных характеристики.
5. Не делайте packaged-приложения
С точки зрения размещения исходного кода приложение может быть packaged (размещенное на сервере LG, полностью копируется на телевизор пользователя при установке) и hosted(запускается с телевизора пользователя по ссылке). На внесение любого изменения в packaged-приложение у вас уйдет минимум неделя, поскольку в этом случае весь процесс верификации в LG QA происходит заново, от и до. Изменения могут быть связаны не только с Вашим желанием расширить функционал, но и с исправлением выявленных в ходе эксплуатации продукта недочетов. Но даже если Ваше приложение сегодня работает безупречно, нет никаких гарантий, что завтра, с выходом новой прошивки оно будет работать также. Поэтому всегда следует иметь возможность для оперативного вмешательства.
6. Не используйте сторонние библиотеки типа jQuery или backbone
Очень важно помнить, что телевизор – это не компьютер: ресурсы, выделяемые под работу Smart TV приложений довольно таки ограничены и расходовать их следует очень аккуратно. Использование сторонних библиотек, которые на первый взгляд позволяют упростить процесс разработки, может привести к существенным потерям в производительности и невозможности последующего улучшения продукта. Более правильным подходом здесь будет создание собственных библиотек, адаптированных под реальные нужды и учитывающую специфику платформы.
7. Не включайте в приложение примеры с сайта LG Develop
Примеры, размещенные в разделе Tools and Samples не могут пройти контроль качества. Это факт. Вы можете использовать их для ознакомления с возможностями той или иной функции API, но делать их составной частью готового решения нельзя.
8. Тщательно оформляйте сопроводительную документацию
Сопроводительная документация к приложению включает в себя Self checklist и презентацию со скриншотами, детально описывающую работу приложения. Документация заполняется на английском языке.
Self checklist представляет собой опросник, затрагивающий основные проблемы, возникающие при разработке приложений: вы должны заявить, что в Вашем продукте эти проблемы отражения не нашли. Ответы на вопросы не могут оставаться пустыми или иметь значение failed – это означает автоматический отказ на самом первом этапе тестирования. Если вы встречаете в опроснике противоречия с «гайдлайнами», помните, что статус «гайдалайнов» выше, а обязательность их исполнения — безусловна.
Презентация должна очень подробно описывать структуру и функциональность Вашего приложения, все спорные ситуации (use cases) обязательно должны быть отражены в ней. Зачастую, если тестеров не устраивает тот или иной use case, достаточно внести его в презентацию и указать на это в комментарии к приложению.
Вот, пожалуй, и все на сегодня, надеюсь данный материал будет Вам полезен.
Разумеется, здесь затронуты только базовые аспекты процесса разработки — более тонкие моменты будут отражены в следующей статье.