Алексей Кокин (Nokia) о самобытном будущем Nokia

Автор: Андрей Письменный

Опубликовано 27 октября 2010 года

Автор приложения для мобильных телефонов в наше время может выбирать из множества платформ - iOS, Android, Windows Mobile и Windows Phone, Symbian^3, S60, MeeGo... Последние три работают на телефонах Nokia. Не многовато ли для одного производителя? В Nokia признают, что многовато, однако в компании придумали стратегию, позволяющую разработчикам тратить меньше сил, чтобы охватить все три платформы сразу. Алексей Кокин, менеджер Nokia по взаимодействию с разработчиками, рассказывает о средствах разработки для платформ Nokia и тонкостях работы с магазином приложений Ovi Store.

- Какие вообще есть варианты у разработчиков, когда они хотят программировать для смартфонов Nokia?

- Это хороший и правильный вопрос, потому что в ответе на него можно рассказать, что мы сделали, чтобы упростить жизнь разработчикам. До прошлого года при разработке под Nokia разработчик видел огромное количество различных устройств, огромное количество экранов и разрешений для них, огромное количество средств разработки, и было не совсем понятно, как и куда двигаться. Сейчас мы, унифицируя наше предложение для разработчика, создали три стройных модели и три стройные группы телефонов, на которые можно ориентироваться. И теперь на этот вопрос можно дать вполне очевидный и прямой ответ.

Сейчас разработчик, который хочет создать приложение, которое получит максимальное количество пользователей Nokia, должен ориентироваться в первую очередь на наши тач-платформы. Это ОС Symbian^3, на которой вышла текущая флагманская модель Nokia N8. На ней же будет выпущено ещё три устройства до конца года. Планы по продажам агрессивные, устройство продается очень хорошо, платформа новая и интересная, и, что главное, она подкрепляется наиболее массовой и наиболее популярной у нас разработческой платформой - это Symbian S60 пятой редакции (это тачевые устройства 5800, N97 и прочие устройства этого семейства).

Две этих платформы - Symbian^3 и S60 пятой редакции, составляют наверное, практически максимальную долю от пользователей Ovi Store, которые скачивают приложения. Соответственно, сфокусировавшись, покрыв эту платформу, разработчик сможет дотянуться до максимального количества платежеспособной аудитории, которая понимает, что такое приложения, как покупать и зачем они нужны.

- Вы говорите "эту платформу", при этом подразумевая и S60, и Symbian^3? Каким образом они взаимосвязаны?

- Symbian^3 - это эволюционное развитие нашей "тачевой" платформы, это следующий эволюционный шаг, следующая ступенька над S60 пятой редакции. Приложения, которые разрабатываются под S60 пятой редакции скорее всего (в 90% случаев), будут работать под Symbian^3 без какой-либо доработки. В каких-то случаях потребуется минимальная переработка. Symbian^3, в свою очередь, он полностью поддерживает Qt "из коробки" и на нем уже можно писать на Qt - быстро, качественно и красиво. Для того, чтобы портировать это на S60 пятой редакции, то есть обратно, требуются некоторые усилия, но Nokia для этого предлагает ряд инструментов, которые позволяют разработчику достигать желаемых результатов. Есть Qt Smart Installer, которым можно обернуть приложение. Это пригодится в том случае, если разработчик сделал на Qt очень красивое приложение, которое хорошо работает на Symbian^3 и решил портировать его на предыдущую платформу - Symbian S60, пятой редакции. Если же он пытается портировать приложения S60 пятой редакции на Symbian^3, то там переделок либо не нужно совсем, либо они минимальны. Ну, плюс нужно учитывать, что Symbian^3 и нативная поддержка Qt облегчают задачу по разработке и позволяют быстро и легко сделать не просто приложение, а красивое приложение с трехмерными эффектами, с графикой и т.п.

- Понятно, но вот кроме Qt есть какие-то варианты?

- Есть, разумеется. Это вторая часть нашего предложения для разработчиков. До того, как мы начали все серьезно унифицировать, был очень большой разнобой языков, средств разработки, подходов, технологий, с помощью которых можно было писать что-либо для нашей платформы. Сейчас мы предлагаем три основных типа приложений, три основных типа разработки. Это Java-приложения, которые работают на S40 и S60, это нативные приложения, которые работают на S60 и на Maemo/MeeGo, и это веб-приложения, которые работают так же и на S60, и на Maemo/MeeGo.

- То есть то, что сейчас будет создано на Qt, будет запускаться и на MeeGo в том числе?

- Практически без каких-либо дополнительных усилий, так как Qt кроссплатформенный и позволяет разработчикам сразу писать приложения, которые можно будет скомпилировать как для Symbian (в основном - Symbian^3), так и для MeeGo.

- А средства разработки - IDE, эмуляторы и т.д.?

- Все это в "кьютерском" пакете присутствует. Qt - это достаточно мощный инструмент, который можно использовать не только для разработки приложений для Nokia, для Symbian и MeeGo, но и для разработки под Windows и Linux - то есть это не просто какой-то ограниченный набор SDK, API и тому подобного, заточенного под нашу программу, это вполне самодостаточная программистая среда, которая включает в себя приложения для разработки, компиляторы, отладчики, эмуляторы, симуляторы для тестирования и набор подключаемых библиотек, которые позволят поддерживать те платформы, которые интересны разработчикам. Также это открытая разработка со свободными исходниками, она портирована на другие операционные системы, есть возможность разрабатывать приложения не только для Nokia, а для всего чего угодно. Есть компании, которые используют Qt как инструмент для разработки приложений для Windows.

- Вы могли бы сравнить как-нибудь вот этот набор разработчика, который имеется для телефонов Nokia c конкурирующими современными средствами, например, то что Аpple сделала для iOS и Google - для Аndroid?

- Я не могу по маркетинговым соображения напрямую сравнивать с конкурентами...

- Но я уверен, что любой программист сможет сделать это с легкостью.

- Я тоже уверен, но от своего лица не могу, к примеру, заявлять, что у конкурентов так все плохо, а у нас все хорошо. Я могу повторить, что Qt очень конкурентоспособен, о нем очень хорошие отзывы от программистов. Его начинают использовать и активно используют разработчики, которые занимаются совершенно отвлеченными от создания мобильных приложений задачами, показывая, что это полноценная, современная среда разработки, которая может напрямую конкурировать, например, с Visual Studio.

- Какие варианты есть у разработчика, который не хочет Qt по каким-то причинам, к примеру он хочет Flash?

- Из чего угодно. Мы просто предлагаем разработчикам наши инструменты, которые мы рассматриваем как удобные и перспективные. Но, по-прежнему, Symbian и тем более MeeGo остаются открытыми платформами, которые поддерживают очень и очень много языков, средств разработки и так далее и так далее. Symbian С++, обычный С++, Python, даже Microsoft Silverlight можно использовать на Symbian, как и Flash. Одно из конкурентных преимуществ нашей платформы заключается в том, что Flash работает не только в браузере, но есть нативный обработчик Flash на "Симбиане", который позволяет те же самые флэш-игрушки с минимальной доработкой превратить в приложения и запускать на наших телефонах.

- Вы упомянули Silverlight, что тоже интересно в свете того, что сейчас вышел Windows Phone 7. Получается, что возможна кроссплатформенная разработка для Nokia и Windows Phone?

- Теоретически - возможна, практически - я не видел пока реализаций. Один из наших технических специалистов сейчас занимается тем, что пытается посмотреть, можно ли без проблем портировать что-то работающее на Silverlight на Windows Phone 7 на платформы Nokia.

- Технически это тот же самый Silverlight?

- На текущий момент Silverlight на платформе Nokia реализовывал сам Microsoft, то есть это их приложение, их разработка, работает версия 1.2, не помню третий или второй Silverlight работает над Windows Phone 7, но технические специалисты у нас сейчас это смотрят. Это как раз интересный вариант, который позволит разработчикам писать для двух платформ одновременно.

- А вы не боитесь, что Microsoft прекратит разработку этой версии Silverlight?

- Не особенно боимся, потому что изначально это именно Microsoft захотел портировать Silverlight на нокиевскую платформу. Microsoft сам достаточно хорошо понимает, как поделен рынок между мобильными платформами в мире и на какой из платформ существует максимальное количество устройств. К тому же, мы сами официально Сильверлайт не поддерживаем - мы просто рассказываем разработчикам, что если им эта платформа интересна, то она, в том числе, есть и на "Нокии". Сами мы фокусируемся на Qt.

- Давайте пару слов о Series 40. Он на текущий момент поддерживает лишь Java?

- На определенный момент только Java. Есть определенные подвижки к тому, что он будет поддерживать что-нибудь еще, но это еще пока не публично. Это тоже все будет объявлено, скорее к концу года, возможно многим разработчикам это понравится. На текущий момент только Java.

- Её использование в чём-то ограничит разработчиков?

- Ограничит. Java-приложения выполняются внутри виртуальной машины. А к функциям телефона напрямую они могут получать доступ по соответствующим API. У нас есть определенный набор API, доступный, соответственно, всем участникам нашего Forum Nokia - это все стандартные вещи по доступу в интернет, по звонкам, по SMS, геолокации (GPS и A-GPS), доступу к Bluetooth. Получается, что есть определенная обвязка этими API, которые дают приложениям прямой доступ к функциям телефона. Но нужно всегда помнить, что есть вопросы производительности, Java-приложение всегда будет медленнее.

- А что если разработчик для большей кроссплатформенности или облегчения разработки, выбрал JavaScript и браузерный движок, он окажется ещё более ограничен?

- В веб-приложениях ("WRT-приложениях") помимо JavaScript используется HTML, CSS, возможно использование Flash. Точно так же - это приложение, которое значительно проще разрабатывать, но которое опять же ограничено в своем функционале. Точно так же как и в случае с Java-приложениями, существует обвязка веб-API, которая так же позволяет использовать основные функции: веб - само собой, потому что это практически веб-приложение; точно так же доступны геолокационные функции. Единственное ограничение, которое там есть, которое, возможно, будет убрано дальше, но сейчас есть - это подобные приложения практически ничего не могут писать на диск. То есть из WRT-приложения или веб-приложения сохранить файлы вы не сможете.

- Можно ли использовать в веб-приложениях акселерометр или мультитач?

- Мультитач работает, акселерометр не знаю, нужно уточнить.

- Я знаю, что в браузере iPhone всё это доступно. Совместимы ли вызовы с тем, что у вас реализовано? Потому что движки, как я понимаю, похожие.

- Скорее всего, движок в этом плане различается, у нас разные подходы. Хоть рендеринг и одинаковый, но вся обвязка и все прочее делалось без оглядки друг на друга, там может быть много существенных различий. Я не совсем точно знаю, как это устроено в iPhone, потому что я на эту платформу никогда не смотрел. У нас есть своя специфика. Сейчас мы сфокусированы на том, чтобы предложить разработчикам хороший геолокационный API и завязать эти веб-приложения с нашей Ovi Maps. Мы рассчитываем, что у нас скоро будут интересные приложения для разработчиков именно в этом направлении. Остальное (единственно - не помню насчет акселерометра) все есть.

- Что насчёт разработки для MeeGo? Вот вы уже сказали, что можно писать на Qt для существующих платформ, и программа будет точно так же работать на MeeGo.

- С некоторыми оговорками, да.

- Можно ли разрабатывать напрямую для MeeGo и получить какие-то дополнительные преимущества?

- Можно, разумеется, это же Linux. Все, что под Linux собирается и работает, и там будет работать. Наш основной инструмент, который мы продвигаем - это Qt. Qt должен полностью покрывать все наши API, которые будут доступны и для MeeGo.

- Может ли разработчик создать мессенджер, по которому буду приходить системные уведомления, пока находишься в другом приложении - играешь, к примеру?

- Да, без сомнения. У нас и на "Симбиане" и на MeeGo многозадачность полная - приложения могут работать в фоне и посылать уведомления пользователю.

- Приложения должны как-то заявить необходимость фоновой работы? Просто все приложения продолжают работать даже после выхода?

- Нет, у нас это работает не так как в Windows Mobile прошлых версий. В Symbian^3 приложение может завершаться, и по умолчанию, оно завершается. Есть и возможность переключать программы, непосредственно выходя в меню и оставляя их работать в фоне. Также есть возможность создания приложений, которые работают как сервис, то есть те же самые мессенджеры, которые могут работать в фоновом режиме и обмениваться информацией, давать уведомления пользователю, что в приложении в бекграунде что-либо изменилось. Это гораздо ближе к реальной многозадачности, чем то, что есть у iOS4, потому что iOS4 замораживает состояние приложения. В Symbian^3 такого не происходит.

- Но память-то рано или поздно кончится. Тогда приложения придется закрывать принудительно?

- Да, при переполнении памяти телефон выдает уведомление о том, что открыто слишком много приложений, и пользователь может либо сам закрыть или система что-то закроет. Но там достаточно хорошо распределяются ресурсы. По-моему, у нас было недавно в блогах показывали 72 приложения, одновременно открытых на Nokia N8.

- Не слишком ли раздроблена платформа Nokia? Чтобы охватить все устройства, нужно использовать совсем разные технологии. Не создаёт ли это проблемы?

- Создает, мы это полностью понимаем и поэтому пытаемся все унифицировать. Мы создали три глобальных платформы: S40, со всем его многообразием и разработкой под него на Java, S60 и Symbian, включая Symbian^3 с разработкой нативных приложений и веб-приложений и MeeGo с разработкой нативных приложений на Qt и веб-приложений. То есть да, по прежнему, вариантов много, но сейчас для разработчиков всё более или менее унифицировано.

- Наиболее приемлемый вариант, как я понимаю - делать приложения для Qt?

- Да, за ним будущее. Просто всё, что можно написать на Qt, можно написать и на Symbian C++, только это потребует значительно больших временных усилий. Qt, благодаря средствам разработки, эмуляторам, симуляторам и дополнительным библиотекам, позволяет достаточно быстро создавать нативные приложения, плюс они еще получаются красивыми. Вместо того, чтобы тратить большое количество ресурсов, чтобы писать перемещения, передвижения, прозрачные меню или анимационные эффекты, все это можно сделать на Qt и сосредоточиться на функциональности.

- А когда Qt перешел от Trolltech к Nokia, он продолжил развиваться? Не изменилось ли направление его развития?

- Он продолжает развиваться. Летом вышла новая версия самих средств разработки, но мы делаем больший упор на нокиевскую часть - то есть добавляем к Qt расширения и надстройки, которые относятся к разработке для Symbian и MeeGo. Проект по прежнему остается опенсорсным, то есть люди могут писать свои надстройки и свои плагины, которые позволяют поддерживать Windows и Linux. Есть проект, в который, кстати, вовлечены российские разработчики, по поддержке Android в Qt, и так далее.

- Линуксоиды, кстати, не боятся, что все инновации пойдут в сторону телефонов, а для них ничего не останется?

- Линуксоиды очень позитивно относятмя и к MeeGo, и к Maemo, как к платформам. Qt кроссплатформенный - можно, к примеру, без особых проблем портировать приложение на "большой" Windows, если это кому-то понадобится.

- Раз уж Qt хорош на "больших" компьютерах, возможно он пригодится в будущем и для других классов устройств? Планшетов, к примеру.

- Скорее всего, да, этого можно ожидать, потому что Qt достаточно популярен среди комьюнити, плюс он поддерживается нами, плюс он поддерживается энтузиастами и разработчиками со всего мира.