Навигация по ландшафту разработки мобильных приложений
Вы продолжаете слышать о пользовательских тенденциях к мобильным устройствам; Ваш 10-летний подросток знает ваш iPad лучше, чем вы, и поэтому вы полагаете, что ваш бизнес также должен принять участие и иметь собственное мобильное приложение. Конечно, если ваша компания в основном взаимодействует с нишей аудиторией, в основном, в автономном режиме, вполне возможно, что вам не нужно мобильное приложение. Если вы сделаете колпачки для тюбиков с зубной пастой, я не уверен, что приложение сделает все для вас.
По мере того, как все больше и больше людей начинают пользоваться Интернетом со своих мобильных устройств, многие компании считают, что наличие мобильного приложения — отличный способ связать их со своей аудиторией.
Показательный пример — когда я делаю заказ в моем любимом ресторане, я проверяю их номер и звоню? Нет, я запрыгиваю на их мобильное приложение, вижу, сколько времени доступно, и забронирую свой столик. Я также могу видеть, сколько людей у них в списке ожидания. Теперь, если бы только приложение позволяло мне предварительно заказать стакан Мерло, чтобы быть готовым для меня, когда я туда попал!
Поскольку бизнес рассматривает возможность найма компании для создания мобильного приложения, ситуация может быть запутанной, а иногда даже пугающей — это часто может означать огромные затраты времени и денег. Вы слышите разговоры об iOS, Android, Symbian, webOS, и люди спрашивают вас, хотите ли вы использовать нативную версию или использовать веб-приложение. Собираетесь родные? Нет, это не означает носить набедренную повязку, лицевую краску и копье … это скорее означает фундаментальное решение о том, в каком направлении следует развивать ваше мобильное приложение. И нет правильного ответа — скорее плюсы и минусы для каждого пути, который вам нужно будет сравнить с вашими конкретными потребностями бизнеса.
Позволь мне сосчитать пути …
Часто предполагается, что существует два способа создания мобильных устройств: веб-приложения или нативные приложения. На самом деле их больше как четыре:
Родные приложения
Нативный относится к созданию приложения на родном языке программирования устройства. Для iOS-устройств это означает Objective-C, а для Android — Java. Нативные приложения обычно бывают быстрыми, надежными и могут получить доступ ко всем аппаратным средствам устройства (камера, акселерометр, компас и т. Д.). Из-за этой повышенной производительности мобильные игры обычно создаются как собственные приложения. Это также означает, что ваше приложение привязано к платформе, для которой оно создано. Например, приложение iOS не будет работать на устройстве Android без предварительной перекодировки всего приложения в Java.
Веб-приложения
Веб-приложение — это веб-сайт, к которому вы получаете доступ через браузер вашего устройства, но этот сайт создан для того, чтобы напоминать приложение, а не традиционный веб-сайт. Его назначение также более функционально — оно предлагает утилиту или услугу, а не простой веб-сайт, который часто является более информативным. Доступ к веб-приложению может быть получен с любого мобильного устройства с браузером. Хотя это основано на браузере, типично, что не все аппаратные функции устройства могут быть задействованы. Для создания более увлекательного и интерактивного опыта. HTML5, CSS3 и JavaScript все чаще используются для использования преимуществ расширенных функций, предлагаемых этой новой спецификацией.
Веб-приложение для конкретной платформы
Это веб-приложение, специально разработанное для определенных мобильных устройств, таких как смартфоны под управлением iOS или Android. Меньше внимания уделяется тому, как приложение выглядит на всех мобильных устройствах, а упор делается на то, чтобы сделать веб-приложение максимально похожим на нативное приложение.
Гибридное приложение
Некоторые утверждают, что гибридное приложение является нативным, но важно проводить различие. Гибридное приложение создается с использованием веб-технологий, а затем помещается в оболочку для конкретной платформы, которая позволяет устанавливать его точно так же, как и нативное приложение. Таким образом, он продается / доступен через магазин приложений устройства.
PhoneGap — это пример инфраструктуры, которая позволяет вам взять веб-приложение и превратить его в собственное приложение для iOS, Android, BlackBerry, Windows 7, WebOS, Symbian и других. Гибридные платформы обычно имеют также API-интерфейсы, которые позволяют получить доступ к аппаратному обеспечению и функциям устройства, которые заблокированы в браузере.
А без мозгов?
На первый взгляд вы можете подумать, что гибрид — это путь. В конце концов, он предлагает лучшее из обоих миров или, по крайней мере, лучший компромисс между затратами на разработку и распространением; единая базовая кодовая база на нескольких платформах. Увы, не все так просто. Давайте разберем некоторые плюсы и минусы нативных, веб-и гибридных приложений, чтобы помочь вам сделать правильный выбор. Направление, которое вы выберете, должно быть больше о соответствии технологии требованиям вашего бизнеса.
Родной — Когда скорость имеет значение
Плюсы:
- Лучшая производительность (по крайней мере, на данный момент), более быстрая анимация, переходы и более быстрое время загрузки. Разница в производительности между нативными и веб-приложениями гораздо более заметна на медленных устройствах (например, iPhone 3G с iOS4)
- Может хранить больше данных в автономном режиме
- Можно найти и найти в магазине приложений
- Полный доступ к аппаратному и аппаратному обеспечению устройства
- Неявная установка приложения на домашний экран устройства. На устройствах iOS вы можете добавить любое веб-приложение на домашний экран, но это ручной процесс
- App Store обрабатывает транзакции покупки от вашего имени
Минусы:
- Обычно дороже в сборке, даже для одной платформы. Стоимость сборки значительно увеличивается для каждой новой платформы.
- Поскольку кодовая база должна быть переработана для каждой ОС, время создания приложения для нескольких устройств также может быть довольно сложным.
- Доступ к вашему приложению должен осуществляться через магазин приложений устройства, который имеет два важных соображения: ваше приложение должно пройти процедуру утверждения, которая может быть длительной и произвольной, и если ваше приложение приносит доход, вы должны разделить процент с магазином (30% для Apple App Store, включая покупки в приложении). Обновления приложений должны проходить новый процесс утверждения каждый раз.
Веб — пиши один раз, беги везде
Плюсы:
- Единая кодовая база, к которой может получить доступ любое мобильное устройство с поддержкой браузера.
- Используются веб-технологии (HTML / CSS / Javascript), которые, возможно, легче освоить, чем родные языки, такие как Objective-C или Java.
- Проблемы с производительностью становятся менее важными, поскольку мобильные браузеры становятся быстрее, а их движки Javascript продолжают улучшаться
- Процесс утверждения не требуется, и обновления приложения могут происходить мгновенно
- Нет разделения доходов с магазином приложений
Минусы:
- Использование веб-технологий означает интерпретированный код (в отличие от скомпилированного кода для нативных приложений), что, как считают некоторые, означает, что веб-приложения всегда будут работать медленнее, чем нативные.
- Не имейте полного доступа ко всем методам, предоставляемым операционной системой устройства, а это значит, что вы ограничены API, предоставляемыми браузером. В настоящее время в Mobile Safari это означает отсутствие камеры, компаса, захвата видео, микрофона, контактов пользователя, загрузки файлов или push / локальных уведомлений.
- Не может быть найдено в магазине приложений. Например, если вам повезло стать популярным приложением в магазине Apple, это огромный маркетинговый импульс.
- Если вы хотите получать доход, вы должны создать коммерческую модель.
Гибрид — полностью загружен с лучшей экономией топлива
Плюсы:
- Позволяет вам извлечь выгоду из единой кодовой базы, предлагаемой веб-технологиями, и в то же время продвигать ваше приложение-убийцу в каждом из крупных магазинов мобильных приложений.
- Предоставляет вам API для доступа к некоторым, если не всем, функциям, заблокированным в браузере, таким как камера, компас, контакты. Для справки вот список поддерживаемых функций PhoneGap
- Покупками управляет App Store.
Минусы:
- По-прежнему подлежит одобрению магазина процесс и распределение доходов. Нет мгновенного обновления.
- Производительность приложения по-прежнему зависит от возможностей браузера устройства.
Информированное решение
Как вы можете видеть из приведенного выше списка плюсов и минусов, решение о том, какую технологию использовать, часто зависит от того, что вашему приложению нужно будет делать. Выясните, каковы ваши бизнес-цели, и посмотрите, какой метод лучше всего им подходит. Прямо сейчас, учитывая состояние производительности веб-приложения, если вы создаете игру с причудливой графикой, вам, вероятно, придется перейти к нативной. Если ваше приложение более простое, например, приложение, которое напоминает людям об их годовщине (и ругает вас, если вы забудете), то, возможно, вам нужно веб-приложение.
Назад в будущее
В своей работе я всегда смотрю в будущее, и мой хрустальный шар рассказывает мне очень хорошие вещи о веб-приложениях и расширяющихся возможностях технологий HTML5. Уже есть несколько замечательных примеров игр на основе HTML5, которые дают опыт, который ранее был возможен только с помощью Flash, см. Pirates Love Daisies .
Financial Times недавно вытащил их родное приложение из магазина Apple и вместо этого выбрал приложение на основе HTML5 . HTML5 предоставляет такие вещи, как видео, аудио, переходы, преобразования, анимации, автономное хранение и API-интерфейсы рисования непосредственно в браузер … вещи, которые ранее были возможны только с такими технологиями плагинов, как Flash и Silverlight.
Создание веб-приложений не так просто. Это все еще требует большого знания HTML, CSS и Javascript. Javascript — это очень надежный, эффективный и способный язык, который выполняет большую часть тяжелой работы в веб-приложениях (например, логика кода, анимация, интеграция с базой данных, интерактивность и т. Д.). И чтобы упростить разработку сложных веб-приложений, в последнее время появилось несколько сред Javascript, некоторые из которых даже используют архитектуру MVC (модель-представление-контроллер), чтобы вы действительно почувствовали себя инженером-программистом.
После оценки ряда этих новых фреймворков я недавно получил одну из них под названием SproutCore . SproutCore — это платформа с открытым исходным кодом, которая использует HTML5, использует красивую и чистую архитектуру MVC и предназначена для создания быстрых и отзывчивых веб-приложений, которые конкурируют с производительностью, встречающейся в нативных приложениях. SproutCore достигает этого, перемещая всю бизнес-логику в браузер, тем самым избегая узких мест пропускной способности и задержки в сети, которые могут возникнуть в более традиционных веб-приложениях, которые построены вокруг обратной связи между клиентом и сервером.
Мобильные приложения для всех!
Это захватывающее время для мобильных и веб-разработчиков. Хотя я не предполагаю, что нативные приложения будут полностью заменены веб-приложениями, я полагаю, что мы по-прежнему увидим, как все больше компаний обращаются к веб-приложениям за более дешевым и эффективным по времени решением при разработке мобильных приложений. И кто знает, может быть, ваша компания-производитель колпачков для зубной пасты могла бы использовать мобильное приложение в конце концов!