Inglorious Apps широко известна вwebOS-коммьюнити благодаря разработке приложений Notes, Voice и Glimpse. Последнее приложение предназначено для Touchpad-устройств, позволяет разделить экран на несколько областей и запустить в них одновременно несколько виджетов. Теперь, когда популярность браузерных ОС пошла на убыль, талантливая компания разработки портировала свои приложения на iOS и Android посредством фреймворкаEnyo. Enyo – это мультиплатформенный фреймворк, созданный HP/Palm. Он позволяет webOS-разработчикам создавать приложения для браузерных ОС, а затем портировать их на iPhone, iPad или Android-устройства.
После нескольких месяцев усердного программирования Inglorious Apps портировала два приложения с webOS на iOS. Dock – стильный скринсейвер, выводящий на экран RSS-новости, сообщения в Твиттере, главные новости и прочее. Panes – приложение, реализующее в iPad принцип работы Glimpse. Первая версия Panes, портированная с webOS, была отклонена, поскольку соглашение Apple's developer agreement не позволяет размещать приложения, использующие виджеты. Доступна модифицированная версия приложения, а проект находится в стадии разработки, Inglorious Apps работает над развитием приложения в обход этого ограничения.
Ребята изi.tuaw.com пообщались с разработчиком из Inglorious Apps (который пожелал остаться неизвестным), узнали о его опыте разработки для iOS и отношении к переходу с webOS на iOS. Ниже приведен перевод этого интервью
Программирование – Ваше основное или второстепенное занятие?
Я занимаюсь разработкой приложений в свободное от основной работы время.
Сколько часов в неделю Вы тратите на разработку, отладку, обновление ПО и поддержку пользователей?
Всего в неделю – около 25-30 часов.
Студия приобрела известность в webOS-коммьюнити после выпуска Glimpse. Использовался ли webOS-код при создании приложений Panes и Dock? Или это заново написанные приложения?
Да, Dock and Panes – портированные копии с webOS. Я вновь использовал собственный код, понадобилось внести изменения лишь в отношении webOS-собенностей.
Сколько времени заняло портирование приложения на iOS?
Портирование кода на iOS (и Android) заняло не более 10 минут. И около двух месяцев требуется на отладку, чтобы все работало, как планировалось.
Какие основные отличия Вы обнаружили в программировании для webOS-устройств и для iPhone/iPad?
Основное отличие в алгоритме многозадачности. В браузерной ОС приложение работает, пока его «карта» (уменьшенный снимок экрана приложения) висит в фоновом режиме, и разработка этого функционала не требуется. С другой стороны, многозадачность в iOS организована по другому принципу, поэтому разработчик должен приложить дополнительные усилия для реализации работы приложения в многозадачном режиме.
Что стало самым большим препятствием при создании приложений для iOS на Enyo?
Поскольку я не силен в Objective-C, наибольшие трудности вызвала необходимость использования этого языка для реализации специфических webOS-возможностей. Так что создание приложений Dock и Panes было не просто копипастом моего прежнего кода.
Как Вы оцениваете Enyo в качестве инструмента для разработки приложений для iOS? Позволяет ли этот фреймворк писать код, соответствующий стандартам Apple? Возможна ли эффективная отладка работы приложения без постоянного тестирования на iOS-устройстве?
Я считаю Enyo весьма полезным. Это модульный Javascript-фреймворк. Создание в нем приложения представляется мне как составление кирпичиков Lego. Используя Enyo можно простыми средствами создать сложные приложения (как Panes). Проблем с соответствием стандартам Apple не возникает. Отладка очень проста. Приложения, созданные на Enyo, работают браузерах на Webkit-движке (как Safari или Chrome). Большинство быстрых тестов я делал в браузере Safari. Хотя тестирование на реальном устройстве предпочтительнее, поскольку позволяет избежать сюрпризов.
Из этой статьи пользователи узнают, что ваши приложения написаны на Enyo. Существует ли разница в производительности между Ващим приложением и приложением, написанным в нативном коде?
На самом деле, мое приложение - это своего рода комбинация нативного и ненативного кода. Некоторые детали (например, виджет для Panes) я написал в нативном коде C. Говоря откровенно, я уже не могу точно определить понятие «нативный код». На мой взгляд граница размыта. Естественно, в зависимости от сложности приложения (или задачи) вероятно можно заметить незначительное различие в производительности. Но в целом я убежден, что обычный пользователь не сможет этого различить, так что я не думаю, что стоит беспокоиться о разнице в производительности.
Насколько фреймворк Enyo отвечает требованиям разработки, особенно в отношении графики и баз данных, которые могут на webOS управляться по-другому? Требовалась ли отладка на iOS?
Enyo удовлетворяет всем требованиям. Единственное, что потребовало отладки, было обновление графических настроек (например, масштабирование размеров) для дисплея Retina.
Есть ли у Вас опасения по поводу того, что HP может закрыть проект Enyo и перестанет выпускать обновления под новые версии IOS? Есть ли у Вас резервный план действий, если поддержка Enyo прекратится?
Пока HP демонстрировала только приверженность проекту. В данный момент они разрабатывают новую версию фреймворка, и картина складывается оптимистичная. Я не слишком волнуюсь о возможном прекращении поддержки, поскольку исходный код Enyo открыт. Так что мне не нужно сидеть и ждать, когда HP выпустит обновление, я просто пойду и сам поковыряюсь в коде. И, нет, никаких «резервных планов действий» у меня нет. Я просто надеюсь на поддержку open-source коммьюнити.
Можете дать совет другим разработчикам приложений для мобильных ОС, решившим переключиться на iOS?
Я бы посоветовал webOS-разработчикам начать использовать iOS. Принцип организации пользовательского интерфейса iOS в корне отличается от webOS. Я считаю, что наиболее эффективный способ программирования под любую платформу – это непосредственное её использование.
Перевод:Новикова Евгения
Источник: Kelly Hodgkins "Interview with Inglorious Apps, a webOS to iOS developer switcher"