Кроссплатформенные мобильные приложения
Разработать мобильное приложение - не очень простое дело, ведь существует огромное количество платформ, технологий и языков программирования. На помощь приходят инструменты кроссплатформенной разработки, о которых и поговорим подробнее.
Введение
Используя соответствующие технологии, теоретически можно один раз написать приложение и потом собрать его для всех нужных платформ. При этом приложение также может использовать функции и данные устройства (такие как местоположение или контакты).
Данный подход оправдывается и в том случае, если вы заказываете создание приложения у специалистов. К примеру, кроссплатформенная разработка игр на андроид позволит вам с минимальными затратами портировать их еще и на iOS.
Плюсы для бизнеса
Кроссплатформенная разработка имеет ряд плюсов для бизнеса: уменьшается время разработки, уменьшается стоимость разработки. Выгоды очевидны и для информационных приложений использование таких технологий вполне оправдано.
Технологии кроссплатформенной разработки
Одни из самых популярных - это Phonegap и Titanium. PhoneGap и Titanium используют HTML, CSS и javascript. Они оба поставляют Javasript API, чтобы иметь доступ к родным возможностям устройства. При этом данные библиотеки по-разному реализуют эти возможности.
Phonegap
Имеет очень хорошую документацию и понятное API. Приложение на Phonegap может быть собрано под все популярные платформы(iOS, Android и даже уже неактуальные Windows Phone и Blackberry).
Titanium
Имеет плохую документацию и не очень понятное API. Приложение на Titanium может быть собрано под iOS и Android. При этом предоставляется API, с помощью которого можно создавать родные элементы пользовательского интерфейса.
Я выбрал для себя Phonegap по причине хорошей документации и наличия большого сообщества разработчиков. При этом клиентов всегда предупреждаю, о том, что такое приложение не будет выглядеть и работать так же хорошо, как нативное.
ПОДВОДНЫЕ КАМНИ В PHONEGAP
Производительность
Приложение на Phonegap работает медленнее, чем нативное. Тут все дело в технологиях: программа на javascript загружается в Webview(встроенный браузер, есть во всех платформах) и работает в нем. Кроме того, что производительность плохая, она может отличаться на различных платформах. Лучше всего работает в iOS, существенно хуже в Android и просто ужасно в Windows Phone.
Различия в платформах
Теоретически после сборки приложение на Phonegap должно работать одинаково на всех платформах. Но внутренние браузеры(Webview) различны. Поэтому в реальном проекте придется во многих местах ставить условные операторы и писать код специфичный для платформы(привет Internet Explorer в Windows Phone!).
Различные размеры устройств
Особенно характерно это для Android, где Вы можете встретить совершенно разные разрешения экранов. Решается это использованием CSS Media Queries(благо они работают в iOS и Android).
Утверждение приложения при выкладывании в App Store
Apple не любит такие приложения и с легкостью может отказать Вам. Хотя я успешно выкладывал приложение на Phonegap в App Store. Возможно важную роль играет дизайн, и, если дизайн Вашего приложения хорош, то и проблем не возникнет.
Итоги
Использовать Phonegap в реальных проектах можно, но делать это нужно осторожно. Использование оправданно, если у Вас достаточно простое приложение и Вы хотите охватить как можно большее количество платформ.