Современные технологии разработки мобильных приложений

Tablet PC with cloud of application icons

Разработка приложений для мобильных устройств (смартфонов, планшетов) развивается очень активно. Многие владельцы бизнесов осознали, что присутствие на мобильных платформах является обязательной составляющей результативной маркетинговой стратегии.

Чтобы успешно стартовать на рынке мобильных приложений, нужно принять несколько важных решения. Одним из них будет выбор правильного технологии создания приложения.

В данной статье рассмотрены основные доступные сейчас технологии и их особенности с точки зрения полезности  для решения конкретных бизнес-задач.

Вот приблизительный список параметров, по которым можно ориентироваться при выборе технологии:

  • Время разработки. Если взять специалистов одного уровня в каждой из технологий и дать им одинаковое задание, сколько времени потребуется, чтобы решить ее каждой из технологий.
  • Наличие специалистов. Насколько быстро можно найти разработчиков, которые сделают продукт на высоком качественном уровне, а также специалистов, которые смогут его в дальнейшем сопровождать.
  • Удобство разработки и отладки. Насколько развиты инструменты разработки и отладки в рамках данной технологии.
  • Документаци и тех. поддержка. Существует ли регулярная техническая поддержка для данной технологии. Насколько часто выходят обновления, как быстро исправляются критические ошибки.
  • Скорость работы. Насколько отзывчивым будет интерфейс приложения. Будут ли заметны задержки в переходах между экранами и состояниями приложения.
  • Юзабилити. Насколько удобен будет конечному пользователю процесс использования полученного приложения. Будут ли элементы интерфейса соответствовать пользовательскому опыту  использования приложений на данной платформе.
  • Охват платформ. Имеется ли возможность полного или хотя бы частичного повторного использования кода на разных платформах (iOS, Android, Windows)

3

Нативные приложения

Каждая современная мобильная платформа предоставляет инструментарий для разработчиков (SDK — software development kit), который позволяет получить доступ практически ко всем сервисам устройства. Разработчики SDK стремятся упростить процесс создания приложений путем решения типовых задач, с которыми сторонние разработчики сталкиваются в повседневной практике. Технологии, которые лежат в основе каждой из SDK, как правило, различаются достаточно сильно. Например, для приложения для Андроид разрабатываются на языке программирования Java. SDK для iOS (iPhone и iPad) использует в качестве основного язык Objective-C, разработанный как объектно-ориентированная надстройка над C.

К основным преимуществам нативной разработки можно отнести:

  • Удобство разработки и отладки. Хотя сам процесс и удобство инструментов отличается от платформы к платформе, в целом разрабатывать нативные приложения гораздо удобнее, чем, например гибридные или кроссплатформенные. Связано это с отсутствие дополнительных прослоек между кодом приложения и исполняемым файлом и, в целом, более развитыми инструментами.
  • Документаци и тех. поддержка
  • Скорость работы. Только нативное приложение может обеспечить максимальную скорость работы и производительность
  • Юзабилити. Каждая платформа имеет свои архитектурные и дизайнерские решения, знакомое пользователям расположения управляющих элементов. Нативные приложения, как никакие другие, предоставляет возможность реализовать интерфейс и общее поведения программы наиболее естественным для данной платформы способом.

К недостаткам можно отнести

  • Охват платформ
  • Наличие специалистов. Действительно, в целом найти хорошего разработчика на Java или Objective-C достаточно сложно ввиду специфичности данной области и более высокого порога при изучении технологии.

ВЕБ

Если приложение не требует работы с ресурсами устройства или работы в офлайн режиме, то можно рассмотреть реализовать его в виде веб-сервиса. Пользователю нужно лишь знать адрес в интернете, чтобы обратиться к приложению через браузер. Такой вариант хорошо подходит приложениям, которые в любом случае требуют постоянное наличие интернет-соединения, и при этом не предъявляют особенных требований к графике и использованию аппаратных средств устройства. Мобильное веб-приложение разрабатывается с помощью ставших уже классическими инструментов. HTML применяется для разметки элементов интерфейса. CSS описывает визуальную составляющую и взаимное расположение виджетов и контролов. Язык программирования JavaScript реализует логику приложения.

Преимущества веб-приложений:

  • Охват платформ
  • Время разработки. В целом, если учитывать охват сразу нескольких платформ, время разработки может быть ниже. Но, поскольку, веб-приложения, в целом, проще, чем нативные, это преимущество может быть спорным.
  • Наличие специалистов
  • Документаци и поддержка

К недостаткам относятся:

  • Скорость работы и производительность. В целом производительность ниже чем у нативных, т.к. появляется дополнительная прослойка в виде веб-браузера
  • Отладка. Процесс разработки веб-приложения достаточно прост. Первоначальная отладка может быть сделана на компьютере разработчика в обычном браузере. Отладка же на устройствах зачастую затруднена и ограничивается использование всплывающих сообщений (т.н. caveman debugging  — примитивная отладка)
  • Использование аппаратных ресурсов устройства. Веб-приложения имеют доступ только лишь к небольшому набору сервисов — постоянное хранилище (localstorage), гео-координаты. Ни файловая система, ни фото-камера не доступны.

45

Гибридные

Идея использования веб-технологий действительна очень привлекательна. Разработав приложения один раз, потенциально можно распространить его сразу на множество платформ, так как веб-браузеры встроены по умолчанию во все современный мобильные операционные системы. Учитывая, что фреймфорки и инструменты для разработки мобильных HTML5-приложений постоянно совершенствуются, то многие программисты, знакомые с веб-технологиями, могут начать разрабатывать мобильные приложения прямо здесь и сейчас.

Достоинства

  • Поддержка платформ. В частности, phonegap заявляет о поддержке более чем семи платформ.
  • Наличие специалистов
  • Время разработки. Правда, иногда процесс доводки под конкрентую платформу может привести к пересмотру архитектуры проекта и свести на нет данное преимущество

Недостатки очевидны:

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

Кроссплатформенные

Разделение между гибридными и кроссплатформенными средствами разработки достаточно условное. В данной статье под кроссплатформенными понимаются приложения, компилируемые в нативный код или сразу в исполняемый файл. При этом, существует возможность повторного использования значительной части кода.

Преимущества кроссплатформенных технологий:

  • Скорость работы
  • Время разработки. 
  • Поддержка платформ

Недостатки:

  • Наличие специалистов. Действительно, ввиду большей специфичности, разработчиков с опытом разработки в, например, MonoTouch найти еще сложнее, чем разработчиков для нативных SDK
  • Удобство отладки.  В Titanium можно отлаживать только свой код, и нельзя получить доступ в исходниках самого фреймфорка, что затрудняет поиск проблем. Что касается MonoTouch, то, видимо ввиду недостаточной зрелости инструмента, у многи разработчиков возникают постоянны проблемы при отладке и запуске приложения.

headline-ap

2 comments

  1. С развитием мобильных телефонов,планшетов, и прочего в последние несколько лет очень важным является выбор правильного направления для разработки мобильного приложения.Ведь если ты выберешь не правильное направление,то приложение не получит популярности,хотя надо учитывать что и сама идея приложения играет очень важную роль.Поэтому перед разработкой и созданием приложения,стоит хорошенько задуматься о направлении разработки.И возможно это в будущем сыграет очень важную роль в успехе.Спасибо за описание технологий в мобильных приложениях,очень интересная статья,которая поможет будущим разработчикам определиться с выбором направления работы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *