На работе меня попросили сделать сравнительную характеристику нескольких продуктов для создания кроссплатформенных мобильных приложений: Appcelerator Titanium, Kony Platform, Adobe PhoneGap, IBM Worklight, Telerik Platform, Verivo Akula, Xamarin. Потратил немало времени, поэтому решил, что лучше поделиться с читателим полученными данными, вдруг кому покажется полезным. Сразу скажу, что кроме PhoneGap я до этого не сталкивался и не работал ни с каким из этих фреймворков, поэтому уверен, что что-то упустил, где-то, возможно, не так понял, а в чем-то оказался не прав. Но в комментариях надеюсь услышать ваше мнение и исправить недочеты.
В конце статьи поместил несколько опросов, которые помогут понять популярность и рейтинг этих фреймворков.
Интересные возможности
Отличительные фишки платформ, которые захотелось выделить.
- Приложения выглядят и ведут себя как нативные, но полностью написаны с использованием JavaScript (js код в рантайме транслируется в нативные view).
- UI можно создавать отдельно для каждой платформы с использованием фреймворка Alloy (интегрированный MVC фреймворк, использующий XML и CSS-подобный синтакс). Несмотря на то, что создание отдельного UI для каждой ОС усложняет разработку и сильно снижает объем переиспользуемого кода, вся бизнес-логика, модель и ядро приложения все же остаются одинаковыми для любой платформы.
- Магазин плагинов и компонентов (520 компонентов и 204 из них бесплатные) – все, что только может понадобится для приложений: аналитика, реклама, облачные хранилища, социальные сети, работа с графикой и т.д.
- Аналитическая платформа (мониторинг данных о приложении в режиме реального времени, мониторинг производительности, крэшей, логов и даже самого процесса создания приложения)
- Полная автоматизация тестов.
- Встроенные коннекторы к самым популярным enterprise-платформам (Salesforce, SAP, Oracle, Microsoft Dynamics и SharePoint), коннекторы к популярным приложениям (LinkedIn, PayPal, DropBox, Facebook, Twitter и др.). Возможность создавать свои собственные коннекторы к любым сервисам.
- Web, гибридные и нативные приложения для смартфонов, планшетов и десктопных устройств, написанные с единым кодом.
- Поддержка полного цикла создания приложения (дизайн, разработка, тестирование, развертывание и управление кроссплатформенным приложением).
- Возможность показывать и делиться прототипами и приложениями между дизайнерами и разработчиками (можно даже комментировать и обсуждать какие-то проблемные места на макетах).
- Доступ к бэкенд-сервисам, используя тысячи (по крайней мере они так утверждают) RESTful APIs.
- Гибкая возможность выбирать фреймворки для разработки (включая JavaScript и PhoneGap) и нативные средства (iOS, Android).
- Превью приложений в режиме реального времени.
- Возможность отсылать сообщения и уведомления пользователям (push services).
- Сервисы синхронизации (sync services) позволяют подключаться к любым сторонним enterprise сервисами.
- Система отчетов и аналитики. Определение устройств, крэш-логи.
- Авторизация и безопасность.
- Обновление приложения, управление настройками и версиями.
- Приложение работает как обычная веб-страница внутри WebView, соответственно все строится на основе всем знакомых HTML, CSS и JS. Но при этом PhoneGap API дает нам возможность использовать все возможности устройства в приложении: камера, звук, GPS, файловая система, контакты, уведомления и т.д.
- Из-за того, что PhoneGap приложение строится на основе WebView, его можно внедрить в нативное приложение (получим гибридное приложение).
- Можно скомпилировать под любую существующую мобильную платформу, включая Tizen, Bada, Firefox OS. Причем сделать это можно буквально в пару кликов, используя облачный сервис PhoneGap Build.
- Фреймворк сам по себе небольшой и простой, поэтому порог вхождения в разработку на PhoneGap довольно низок, достаточно знать лишь основные веб-технологии.
- Это открытый и бесплатный продукт.
- Создан на основе Apache Cordova (как и PhoneGap), поэтому также можно создавать web-приложения, а также гибриды (с возможностью пересылать сообщения и данные между нативными и web модулями).
- Поддержка интернационализации.
- Поддержка USSD-сервисов.
- Сервис аналитики приложения.
- Безопасность на каждом уровне – пользователь, устройство, данные, приложение.
- Возможность обновления ресурсов приложения.
- Встроенные отзывы пользователей (user feedback).
- Платформа аналитики.
- Портал AppManager, куда можно загружать свои приложения, назначать доступ к ним, приглашать и управлять пользователями. (своеобразный собственный Play Market).
- Автоматизированное тестирование нативных, гибридных и web-приложений.
- Пуш-уведомления.
- Собственная продвинутая веб-IDE, соответственно создавать приложения можно прямо в браузере с любого устройства (с нормальным браузером конечно) в любой точке мира (с доступом к интернету).
- Дизайн и создание прототипов.
- Система контроля версий (VCS).
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).
Инструменты разработки
- 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, установив специальный плагин.
Поддерживаемые платформы
- Нативные приложения под мобильные ОС: 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 предоставляет самый широкий выбор платформ.
Расширяемость фреймворков
- Используя «модули», которые можно загружать или создавать самому (для этого необходимы навыки нативной разработки под нужную платформу), можно расширять возможности 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), огромное количество из них бесплатные.
Аналитика, крэш-репорты, логи, аудит и менеджмент
- Панель наблюдения в режиме реального времени за жизненным циклом приложения (от прототипа до публикации).
- Система аналитики для бизнес-пользователей, где в реалтайме можно отслеживать все показатели приложения. Также есть специальное приложение для 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
- Встроенных средств нет. Но зато есть много разных плагинов, которые решают эту проблему.
Цены и тарифные планы
- 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/пользователь/год.
Что из этого выбирать — решать вам. Надеюсь этот краткий обзор кому-нибудь сэкономит время в поисках подходящего решения. Плюсы и минусы каждого фреймворка, к сожалению, не имеет смысла описывать, не поработав с каждым из них. Надеюсь, что в комментариях к статье кто-нибудь поделится со мной полезной информацией касательно этой темы и, может быть, статья будет дополняться.
Автор: Demven