Inglorious Apps широко известна в webOS-сообществе благодаря разработке приложений Notes, Voice и Glimpse. Последнее приложение предназначено для планшетов HP Touchpad, позволяет разделить экран на несколько областей и запустить в них одновременно несколько виджетов. Теперь, когда популярность webOS пошла на убыль, талантливая компания разработки портировала свои приложения на 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. Я считаю, чтонаиболее эффективный способ программирования под любую платформу – это непосредственное её использование.
(c) http://www.palmq.ru/article.php?sid=3033