Development for iOS
Development of mobile applications
Development for Android
Xamarin
July 2014 12

Обзор 7 самых популярных кроссплатформенных мобильных фреймворков


На работе меня попросили сделать сравнительную характеристику нескольких продуктов для создания кроссплатформенных мобильных приложений: Appcelerator Titanium, Kony Platform, Adobe PhoneGap, IBM Worklight, Telerik Platform, Verivo Akula, Xamarin. Потратил немало времени, поэтому решил, что лучше поделиться с хабрасообществом полученными данными, вдруг кому покажется полезным. Сразу скажу, что кроме PhoneGap я до этого не сталкивался и не работал ни с каким из этих фреймворков, поэтому уверен, что что-то упустил, где-то, возможно, не так понял, а в чем-то оказался не прав. Но в комментариях надеюсь услышать ваше мнение и исправить недочеты.

В конце статьи поместил несколько опросов, которые помогут понять популярность и рейтинг этих фреймворков.

Интересные возможности


Отличительные фишки платформ, которые захотелось выделить.

1) Appcelerator Titanium



  • Приложения выглядят и ведут себя как нативные, но полностью написаны с использованием JavaScript (js код в рантайме транслируется в нативные view).
  • UI можно создавать отдельно для каждой платформы с использованием фреймворка Alloy (интегрированный MVC фреймворк, использующий XML и CSS-подобный синтакс). Несмотря на то, что создание отдельного UI для каждой ОС усложняет разработку и сильно снижает объем переиспользуемого кода, вся бизнес-логика, модель и ядро приложения все же остаются одинаковыми для любой платформы.
  • Магазин плагинов и компонентов (520 компонентов и 204 из них бесплатные) – все, что только может понадобится для приложений: аналитика, реклама, облачные хранилища, социальные сети, работа с графикой и т.д.
  • Аналитическая платформа (мониторинг данных о приложении в режиме реального времени, мониторинг производительности, крэшей, логов и даже самого процесса создания приложения)
  • Полная автоматизация тестов.
  • Встроенные коннекторы к самым популярным enterprise-платформам (Salesforce, SAP, Oracle, Microsoft Dynamics и SharePoint), коннекторы к популярным приложениям (LinkedIn, PayPal, DropBox, Facebook, Twitter и др.). Возможность создавать свои собственные коннекторы к любым сервисам.


2) Kony Platform



  • Web, гибридные и нативные приложения для смартфонов, планшетов и десктопных устройств, написанные с единым кодом.
  • Поддержка полного цикла создания приложения (дизайн, разработка, тестирование, развертывание и управление кроссплатформенным приложением).
  • Возможность показывать и делиться прототипами и приложениями между дизайнерами и разработчиками (можно даже комментировать и обсуждать какие-то проблемные места на макетах).
  • Доступ к бэкенд-сервисам, используя тысячи (по крайней мере они так утверждают) RESTful APIs.
  • Гибкая возможность выбирать фреймворки для разработки (включая JavaScript и PhoneGap) и нативные средства (iOS, Android).
  • Превью приложений в режиме реального времени.
  • Возможность отсылать сообщения и уведомления пользователям (push services).
  • Сервисы синхронизации (sync services) позволяют подключаться к любым сторонним enterprise сервисами.
  • Система отчетов и аналитики. Определение устройств, крэш-логи.
  • Авторизация и безопасность.
  • Обновление приложения, управление настройками и версиями.


3) Adobe PhoneGap



  • Приложение работает как обычная веб-страница внутри WebView, соответственно все строится на основе всем знакомых HTML, CSS и JS. Но при этом PhoneGap API дает нам возможность использовать все возможности устройства в приложении: камера, звук, GPS, файловая система, контакты, уведомления и т.д.
  • Из-за того, что PhoneGap приложение строится на основе WebView, его можно внедрить в нативное приложение (получим гибридное приложение).
  • Можно скомпилировать под любую существующую мобильную платформу, включая Tizen, Bada, Firefox OS. Причем сделать это можно буквально в пару кликов, используя облачный сервис PhoneGap Build.
  • Фреймворк сам по себе небольшой и простой, поэтому порог вхождения в разработку на PhoneGap довольно низок, достаточно знать лишь основные веб-технологии.
  • Это открытый и бесплатный продукт.


4) IBM Worklight



  • Создан на основе Apache Cordova (как и PhoneGap), поэтому также можно создавать web-приложения, а также гибриды (с возможностью пересылать сообщения и данные между нативными и web модулями).
  • Поддержка интернационализации.
  • Поддержка USSD-сервисов.
  • Сервис аналитики приложения.
  • Безопасность на каждом уровне – пользователь, устройство, данные, приложение.
  • Возможность обновления ресурсов приложения.


5) Telerik Platform



  • Встроенные отзывы пользователей (user feedback).
  • Платформа аналитики.
  • Портал AppManager, куда можно загружать свои приложения, назначать доступ к ним, приглашать и управлять пользователями. (своеобразный собственный Play Market).
  • Автоматизированное тестирование нативных, гибридных и web-приложений.
  • Пуш-уведомления.
  • Собственная продвинутая веб-IDE, соответственно создавать приложения можно прямо в браузере с любого устройства (с нормальным браузером конечно) в любой точке мира (с доступом к интернету).
  • Дизайн и создание прототипов.
  • Система контроля версий (VCS).
  • Как и PhoneGap и Worklight, Telerik основан на Apache Cordova со всеми ее достоинствами и недостатками.


6) Verivo Akula



  • Создание нативных и гибридных приложений.
  • Система удаленного управления своими приложениями.
  • Интеграция с enterprise-сервисами.
  • Пуш уведомления.
  • Синхронизация с сервером изменений, сделанных пока приложение было в оффлайне.
  • Возможность использовать для разработки любую привычную и любимую IDE (IDEA, Eclipse, NetBeans и др.), а также есть собственная Verivo AppStudio.


7) Xamarin



  • Создание нативных iOS, Android, Mac и Windows приложений с помощью языка C#. Причем, в отличие от Appcelerator, код не интерпретируется на стадии выполнения, а компилируется сразу в нативный код. Поэтому поведение, вид и производительность такая же как и у родных приложений!
  • UI создается для каждой платформы с помощью стандартных для этих платформ view.
  • Xamarin Test Cloud – сервис автоматизированного тестирования приложения на сотнях виртуальных мобильных устройствах.
  • Огромное количество компонентов (плагинов) для расширения возможностей Xamarin.
  • Покупки в приложениях (in-app purchases).


Инструменты разработки


Наличие собственной IDE, плагинов к популярным IDE и других инструментов разработки.
1) Appcelerator Titanium
  • Titanium Studio, основанная на Eclipse.

2) Kony Platform
  • Основанная на Eclipse Kony Studio (Kony Visualization Cloud – для дизайна и прототипирования, Kony Development Cloud – разработка, Kony Management Cloud – управление приложениями).

3) Adobe PhoneGap
  • Собственной среды разработки нет, но по сути это и не особо нужно. Зато есть интеграция с Adobe Dreamweaver и Brackets.
  • Также есть некое приложение «Developer App», которое позволяет мгновенно смотреть изменения на мобильном устройстве, без необходимости компилировать разрабатываемое приложение и собирать его.

4) IBM Worklight
  • Worklight Studio – плагин для Eclipse, превращающий его в среду разработки на Worklight.

5) Telerik Platform
У них вообще инструменты разработки следуют модным веяниям облачных приложений, поэтому они создали web IDE (так называемые ICE – integrated cloud environment).
Состоит она из 5 модулей для всех этапов разработки:
  • AppPrototyper (дизайн и прототипирование)
  • AppBuilder (разработка)
  • AppManager (управление)
  • AppFeedback (обратная связь с пользователями)
  • AppAnalytics (соответственно система аналитики)

Кроме того, есть расширение для Visual Studio, клиент для Windows, расширение для Sublime Text.

6) Verivo Akula
  • Есть своя IDE Verivo AppStudio.
  • Также для разработки можно использовать любую привычную среду (IDEA, Eclipse, NetBeans и др.)

7) Xamarin
  • Есть своя IDE Xamarin Studio.
  • Также разрабатывать можно и в любимой Visual Studio, установив специальный плагин.



Поддерживаемые платформы


Под какие ОС можно писать свои замечательные приложения.
1) Appcelerator Titanium
  • Нативные приложения под мобильные ОС: iOS, Android, BlackBerry, Tizen, Denso.
    Mobile-web приложения под те же платформы.
  • Десктопные приложения под Windows, Mac.

2) Kony Platform
  • Десктопные приложения под Windows, Mac.
  • Веб-приложения для браузеров IE 8+, Safari 5+, Chrome 20+, Opera 12+, Firefox 4+.
  • Приложения для смартфонов и планшетов — iOS, Android, Blackberry, Windows Phone.
  • Приложения для инфокиосков.

3) Adobe PhoneGap
  • Mobile-web приложения: iOS, Android, Windows Phone, Blackberry, Ubuntu, Firefox OS.

4) IBM Worklight
  • Мобильные нативные и mobile-web: Android, iOS, Blackberry, Windows Phone, Java ME.
  • Десктопные: Windows 8.

5) Telerik Platform
  • Мобильные: iOS, Android, Windows Phone.
  • Десктопные: Windows 8.

6) Verivo Akula
  • Нативные и mobile-web: iOS, Android.

7) Xamarin
  • Мобильные нативные приложения: iOS, Android, Windows Phone.
  • Десктопные нативные – Windows, Mac.


Судя по всему, если необходимо по-настоящему кроссплатформенное приложение, то Kony предоставляет самый широкий выбор платформ.


Языки разработки


Какие языки можно использовать для разработки приложений.
1) Appcelerator Titanium
  • JS, Python, Ruby, PHP

2) Kony Platform
  • Нативные языки (Java, Objective-C, C#) — для родных приложений и гибридных решений
  • JavaScript

3) Adobe PhoneGap
  • Нативные языки (Java, Objective-C, C#) — для родных приложений и гибридных решений
  • JavaScript

4) IBM Worklight
  • Нативные языки (Java, Objective-C, C#) — для родных приложений и гибридных решений
  • JavaScript

5) Telerik Platform
  • .NET, Java, JS, PHP

6) Verivo Akula
  • Нативные языки (Java, Objective-C, C#) — для родных приложений и гибридных решений
  • JavaScript

7) Xamarin
  • Только C#


Каким бы крутым ни был (или казался) Xamarin, он доступен только людям со знанием C#.


Расширяемость фреймворков


Возможность расширять базовые возможности различными плагинами и компонентами.
1) Appcelerator Titanium
  • Используя «модули», которые можно загружать или создавать самому (для этого необходимы навыки нативной разработки под нужную платформу), можно расширять возможности Titanium.
  • Есть свой магазин компонентов (520 на данный момент и 204 из них бесплатные).



2) Kony Platform
  • FFI (Foreign Function Interface) – расширения для платформы, которые можно писать, используя нативные языки. Но проблема в том, что их очень мало и сложно найти, в итоге разработчики ругаются, что для обычных мелочей приходится писать эти расширения. (Если кто знает подробности, пожалуйста, напишите в комментариях).

3) Adobe PhoneGap
  • В JS разработке можно использовать какие угодно JS библиотеки (jQuery, Sencha Tuch и т.д.).
  • Сам PhoneGap поддерживает плагины, которые можно найти в интернете или написать самому. Но существуют различные проблемы совместимости с разными платформами. (Кто пробовал, пожалуйста, опишите в комментариях подробности).

4) IBM Worklight
  • Аналогично PhoneGap, так как Worklight создан на основе Apache Cordova, как и PhoneGap.

5) Telerik Platform
  • Можно использовать специальные плагины для Verivo, а также плагины для Apache Cordova, которые можно найти в интернете или писать самому.

6) Verivo Akula
  • Нужные модули можно разработать самому, используя Java. Сама платформа еще только развивается, поэтому скорее всего готовых решений еще очень мало, если вообще можно найти.

7) Xamarin
  • У Xamarin есть свой магазин компонентов, где на данный момент выложено 200 расширений (в основном для iOS и Android), огромное количество из них бесплатные.




Аналитика, крэш-репорты, логи, аудит и менеджмент


Возможности наблюдения за приложением, пользователями, а также средства для мониторинга ошибок и просмотра логов.
1) Appcelerator Titanium
  • Панель наблюдения в режиме реального времени за жизненным циклом приложения (от прототипа до публикации).
  • Система аналитики для бизнес-пользователей, где в реалтайме можно отслеживать все показатели приложения. Также есть специальное приложение для iOS и Android.
  • Система управления (Management Dashboard), где можно следить за производительностью приложений, возникающими исключениями, просматривать креш-репорты.

2) Kony Platform
  • Встроенная система аналитики и креш-репортов.
  • Интеграция с Omniture, IBM Coremetrics, Google Analytics и WebTrends.
  • Возможность задания кастомных атрибутов через специальное API для создания кастомных репортов.
  • Возможность отслеживания действий пользователя (детальный аудит).

3) Adobe PhoneGap
  • Отсутствие своих систем аналитики. Но так как это веб-приложение, вы можете интегрировать любую стороннюю систему, например Google Analytics (в интернете есть даже специальные плагины для этого). Та же ситуация и с креш-репортами (только вот плагинов я не нашел).

4) IBM Worklight
  • Система аналитики для enterprise-клиентов, которая позволяет следить в реалтайме за логами и событиями, которые собираются со всех приложений, устройств и серверов.
  • Креш-репорты и гибкая настройка логов.

5) Telerik Platform
Система статистики, которая включает:
  • Запуски и работа приложений.
  • Просмотр пользователей и сессий.
  • Отслеживание собственных событий.
  • Отслеживание возникающих исключений.

6) Verivo Akula
  • Нет, вообще ничего. Платформа новая и еще только начинает развиваться.

7) Xamarin
  • Встроенных средств нет. Но зато есть много разных плагинов, которые решают эту проблему.



Цены и тарифные планы


Ну и наконец, сколько же все это безобразие стоит.
1) Appcelerator Titanium (расценки на сайте)
  • Developer — бесплатно (без системы менеджмента)
  • Enterprise (все фишки платформы + support) – цену не указывают, предлагая связаться с ними, так что если кто знает их корпоративные расценки, укажите в комментариях.

2) Kony Platform (расценки на сайте)
  • Trial (90 дней) – бесплатно.
  • Standard (1 приложение) — $19/пользователь/мес.
  • Professional (3 приложения) — $39/ пользователь/мес.
  • Enterprise (неограниченное кол-во приложений) – договорная цена.

3) Adobe PhoneGap
Полностью бесплатный.
Но зато есть тарифные планы для сервиса PhoneGap Build (облачная система сборки приложений под любые платформы):
  • Developer (неограниченное кол-во публичных приложений, но только 1 приватное) — бесплатно.
  • Starter (3 приватных приложения) — $12/мес., $120/год (экономия $24).
  • Team (10 приватных приложений, до 3 сотрудников) — $30/мес., $300/год (экономия $60).
  • Corporate (25 приватных приложений, до 10 сотрудников) — $90/мес., $900/год (экономия $180).

4) IBM Worklight
Не нашел таких данных. Чтобы узнать цену, нужно связаться с ними, так что это только для корпоративных клиентов. Если кто знает подробности, укажите в комментариях.

5) Telerik Platform (расценки на сайте)
  • Trial (30 дней) — бесплатно.
  • Developer (1 приложение, без множества фич) — $49/мес., $468/год (экономия $120).
  • Professional (гибридные и нативные приложения)- $119/пользователь/мес., $948/пользователь/год (экономия $480).
  • Business (веб, гибридные и нативные приложения) — $224/пользователь/мес., $1788/пользователь/год (экономия $900).

6) Verivo Akula
Тут мы видим тоже явный упор на корпоративных клиентов, отсюда и космические ценники. Чтобы узнать цену, нужно связаться с ними.
  • Trial (30 дней) — бесплатно.
  • Enterprise — $5000-$60000/год.

7) Xamarin (расценки на сайте)
  • Starter (индивидуальный план, без множества фич) — бесплатно.
  • Indie (индивидуальный план, без некоторых фич) — $299/год.
  • Business (для организаций, без некоторых фич) — $999/пользователь/год.
  • Enterprise (для организаций, все включено) — $1899/пользователь/год.



Что из этого выбирать — решать вам. Надеюсь этот краткий обзор кому-нибудь сэкономит время в поисках подходящего решения. Плюсы и минусы каждого фреймворка, к сожалению, не имеет смысла описывать, не поработав с каждым из них. Надеюсь, что в комментариях к статье кто-нибудь поделится со мной полезной информацией касательно этой темы и, может быть, статья будет дополняться.

________________________________________________________________

UPDATE 15.07.2014
Добавлен раздел «Языки разработки». Пара дополнений в статье.
________________________________________________________________
С какими из этих фреймворков вы работали?
6.8% Appceleratior Titanium 97
0.7% Kony Platform 10
23.3% Adobe PhoneGap 329
0.1% IBM Worklight 2
1.5% Telerik Platform 22
0.1% Verivo Akula 2
17% Xamarin 241
48.5% Ни с какими, но мне интересна эта тема. 684
12.3% Ни с какими, и мне это нафиг не нужно. 174
1410 users voted. 984 users abstained.
Я работал(а) с Appcelerator Titanium и мне
13.5% Очень понравилось! Все круто. 22
27.7% Понравилось, нормально, работать можно. 45
19.7% Так себе, есть более интересные продукты в этой сфере. 32
38.8% Не нравится, полный отстой! 63
162 users voted. 1473 users abstained.
Я работал(а) с Kony Platform и мне
7.1% Очень понравилось! Все круто. 5
10% Понравилось, нормально, работать можно. 7
21.4% Так себе, есть более интересные продукты в этой сфере. 15
61.4% Не нравится, полный отстой! 43
70 users voted. 1447 users abstained.
Я работал(а) с Adobe PhoneGap и мне
12.2% Очень понравилось! Все круто. 39
45.4% Понравилось, нормально, работать можно. 145
15.9% Так себе, есть более интересные продукты в этой сфере. 51
26.3% Не нравится, полный отстой! 84
319 users voted. 1454 users abstained.
Я работал(а) с IBM Worklight и мне
6.4% Очень понравилось! Все круто. 4
19.3% Понравилось, нормально, работать можно. 12
22.5% Так себе, есть более интересные продукты в этой сфере. 14
51.6% Не нравится, полный отстой! 32
62 users voted. 1433 users abstained.
Я работал(а) с Telerik Platform и мне
10% Очень понравилось! Все круто. 7
20% Понравилось, нормально, работать можно. 14
20% Так себе, есть более интересные продукты в этой сфере. 14
50% Не нравится, полный отстой! 35
70 users voted. 1419 users abstained.
Я работал(а) с Verivo Akula и мне
12.9% Очень понравилось! Все круто. 7
11.1% Понравилось, нормально, работать можно. 6
14.8% Так себе, есть более интересные продукты в этой сфере. 8
61.1% Не нравится, полный отстой! 33
54 users voted. 1416 users abstained.
Я работал(а) с Xamarin и мне
34.8% Очень понравилось! Все круто. 92
34.8% Понравилось, нормально, работать можно. 92
11.7% Так себе, есть более интересные продукты в этой сфере. 31
18.5% Не нравится, полный отстой! 49
264 users voted. 1474 users abstained.
Насколько перспективной вы считаете работу в сфере кроссплатформенной разработки для мобильных устройств?
39.7% Гораздо перспективнее нативной разработки. Очень востребованы специалисты в этой сфере. 316
44.2% Так себе. Может и есть во всем этом смысл, но пока нативная разработка рулит: большинство заказчиков со своими деньгами именно там. 352
15.9% Там нечего ловить, иди учи Objective-C! 127
795 users voted. 1033 users abstained.

+41
110.4k 614
Comments 53
Top of the day