Привет! В этой статье я хочу поделиться своим опытом разработки приложений для платформы 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, достаточно внести его в презентацию и указать на это в комментарии к приложению.
Вот, пожалуй, и все на сегодня, надеюсь данный материал будет Вам полезен.
Разумеется, здесь затронуты только базовые аспекты процесса разработки — более тонкие моменты будут отражены в следующей статье.
Автор: ssiptv