Интервью с разработчиком из компании Inglorious Apps


Дата: 17/04/2012 @ 23:25:48 MSK
Тема: Apple


Inglorious Apps широко известна в webOS-сообществе благодаря разработке приложений Notes, Voice и Glimpse. Последнее приложение предназначено для планшетов HP Touchpad, позволяет разделить экран на несколько областей и запустить в них одновременно несколько виджетов. Теперь, когда популярность webOS пошла на убыль, талантливая компания разработки портировала свои приложения на iOS и Android посредством фреймворка Enyo.

Dock iOS

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. Я считаю, что наиболее эффективный способ программирования под любую платформу – это непосредственное её использование.

mobilab.ru



Эта статья с сайта PalmQ Online
http://www.palmq.ru

URL этой статьи:
http://www.palmq.ru/article.php?sid=3033

Партнеры проекта: