Разработка мобильных приложений: как мы делаем это в Лайв Тайпинг

В мобильной разработке своя философия, инструменты и проблемы. Рассказываем обо всём понемногу. Оценить статью на сайте: 👍👎

Разработка мобильных приложений: как мы делаем это в Лайв Тайпинг

Разработка мобильных приложений: как мы делаем это в Лайв Тайпинг

Как мы делаем проекты: разработка мобильных приложений, фотография 1

Если вы пропустили

Знакомство

Проектирование и прототипирование

Дизайн

Разработка вебсайтов

Участники со стороны Лайв Тайпинг:

  • аккаунт-менеджер;
  • руководитель проекта;
  • мобильные и веб-разработчики.

Процессы создания мобильных приложений и сайтов схожи в том, что:

  • разработчики получают дизайн-макет;
  • у проекта есть интерфейс и серверная часть. Второе зависит от необходимости запрашивать и получать данные;
  • разработчики реализуют дизайн с помощью языков программирования, фреймворков и библиотек (примечание: в мобильной разработке также применяется язык разметки XML для вёрстки; ниже об этом ничего не написано, но не упомянуть о таком аспекте нельзя).

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

Типизация проектов

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

  1. Требуется ли приложению сервер.
  2. Работает ли приложение офлайн.
  3. Распространяется ли приложение через AppStore или Google Play.

Если необходим сервер, то встаёт вопрос о том, есть ли API. В зависимости от ответа составляется список тактических мероприятий:

  1. API есть:
    1. создаётся слой работы с сервером;
    2. создаётся слой валидации полученных данных;
    3. создаётся слой хранения или временного хранения данных с моделями объектов по документации API.
  2. API нет, но планируется:
    1. создаётся слой зашитых данных в виде примерных ответов от сервера в формате JSON. Структуру данных мы создаём сами, если не с кем согласовывать (например, бэкендеров на проекте ещё нет, а сервер планируется в далёком будущем);
    2. создаётся слой валидации полученных данных;
    3. создаётся слой хранения или временного хранения данных с моделями объектов, соответствующих зашитым данным.

Если API нет и не планируется, то у приложения, скорее всего, одна логическая задача. К таким можно отнести таймер, калькулятор, фильтр для фотографий или набор стикеров, который не планируется расширять.

На вопрос «Работает ли приложение офлайн» предполагается два ответа:

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

Android или iOS?

С незначительной оговоркой можно сказать, что к 2018 году на рынке не осталось других операционных систем, кроме этих двух. Статистика за второй квартал 2017 года говорит о том, что 87,7% мобильных устройств работают на ОС Android, 12,1% устройств работают на ОС iOS и две десятых процента делят между собой операционки-аутсайдеры.

При создании приложений для мобильных устройств стоит определиться: вы хотите выпустить приложение для пользователей iOS? Или только для владельцев устройств на Android? Или и для тех, и для других? Как говорят наши англоязычные коллеги, it depends. С одной стороны, подавляющее большинство людей пользуются Android-устройствами. С другой, владельцы айфонов чаще склонны платить за приложения и совершать внутренние покупки. В пользу того, что в первую очередь стоит делать iOS-приложение, говорят несколько аргументов.

Нативное или кроссплатформенное?

Мобильные приложения делятся на нативные и кроссплатформенные. Нативные опираются на ресурсы устройства и напрямую используют камеру телефона, акселерометр и другие датчики, AR — что угодно из того, что умеет телефон или планшет. Этим приложения значительно отличаются от мобильных версий сайтов.

Для разработки под мобильные у устройства нативных приложений iOS-разработчики пользуются языками Objective-C и Swift, а Android-разработчики — языками Java и Kotlin. Objective-C и Java являются языками старого поколения и используются скорее для поддержки тех проектов, которые были на них написаны. Новые проекты всё чаще создаются на Swift и Kotlin.

Кроссплатформенные приложения — это нативное приложение, которое внутри себя может запускать универсальный код, независимый от конкретной ОС. Такой подход позволяет сэкономить на разработке. Их созданием обычно занимаются веб-разработчики. Для этого они используют фреймворки PhoneGap, React Native, Xamarin, Flutter и другие — их немало, но популярность перечисленных выше, чем у прочих. Если у вас в команде нет специалиста по данным технологиям, такого разработчика можно поискать в другой компании и нанять на время, по модели аутстаффинга.

Когда веб-разработчику нужен доступ к возможностям телефона, на помощь приходит мобильный разработчик, который пишет плагин и даёт доступ к нативному API телефона. Веб-разработчик встраивает плагин в свой проект через фреймворк кроссплатформенной разработки и подключается к нативным частям телефона. Такая опосредованная работа кроссплатформенных приложений накладывает ограничения на их функциональность.

Об особенностях нативных и кроссплатформенных приложений и разнице в стоимости разработки рассказал в своей статье генеральный директор Лайв Тайпинг Александр Кузнецов.

Поддержка версий операционной системы

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

iOS-отдел компании Лайв Тайпинг поддерживает версии от 9.0 до 12.2. Это обусловлено тем, что с девятой версии IDE xCode без ошибок позволяет как верстать в Interface Builder, так и писать код на Swift 4.0.

На момент написания статьи Android отдел компании поддерживает версии от 4.4 до 8.1, что покрывает 94% всех Android устройств.

Разработка мобильных приложений по Android

С актуальными процентными соотношениями версий ОС можно ознакомиться по этой ссылке.

Поддержка старых версий iOS и Android не только ведёт к удорожанию проекта и отказу от удобных технологий, но и не имеет смысла даже с точки зрения потребительских запросов — если рассматривать технику Apple, то в феврале 2019 года iOS 12 была установлена на 80% всех мобильных устройств.

Поддержка устройств

Диапазон поддерживаемых девайсов зависит от поддержки версий ОС. iOS-отдел Лайв Тайпинг поддерживает все устройства с версией от 9.0 и старше.

Список поддерживаемых iOS-устройств
Информация актуальна на апрель 2019 года

С поддержкой Android-девайсов ситуация другая. На момент написания статьи на рынке существует 18221 мобильный телефон и планшет на ОС Android, и мы не можем на 100% гарантировать корректное поведение на каждом из них. При разработке приложений для телефонов мы ориентируемся на самые популярные форматы устройств и несколько известных проблемных девайсов. Так удаётся покрыть большую часть девайсов на рынке и минимизировать количество багов на специфических устройствах. А проведение финального предрелизного теста с помощью сервисов удалённого тестирования на реальных девайсах, например, Firebase Test Lab, позволяет минимизировать проблему фрагментации устройств на ОС Android.

Планшетная версия

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

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

В области eCommerce её уместность сомнительна. Работая над проектом ИЛЬ ДЕ БОТЭ, мы провели анализ и выяснили, что отдача от планшетной версии приложения несоизмерима с затратами на её разработку и поддержку. В итоге мы отказались от неё и сделали вывод, что онлайн-магазинам с большим оборотом будет достаточно приложения для мобильных телефонов и сайта с адаптивной вёрсткой. О том, как мы пришли к этому, рекомендуем прочесть статью генерального директора Лайв Тайпинг Александра Кузнецова.    

Нужен ли бэкенд

Формально на бэкенде мобильных приложений и сайтов происходит одно и то же, но пользовательский опыт у сайтов и приложений будет отличаться.

Повторимся, что бэкенд не нужен приложению с закрытой функциональностью, не требующему получения данных. Среди таких калькулятор, набор стикеров, таймер, будильник, заметки, приложение Prisma или приложение Mandu, разработанное в Лайв Тайпинг. Не нужен сервер также для работы функций авторизации через сторонние сервисы (Google или Twitter-аккаунты) или внутренних покупок.

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

Теперь поговорим о дисциплине внутри команды.  

Клиентам
Сколько стоит разработать мобильное приложение?

Отвечаем на главный вопрос заказной мобильной разработки — подробно и с примерными ценами проектов

Клиентам
19 апреля 2018
Почему мобильные приложения делаются в первую очередь для iOS?

Владельцы айфонов поблагодарят вас за качественное приложение и быстрее окупят разработку. Это ли не повод сделать первую ставку на iOS-версию?

Клиентам
08 апреля 2018
Как мы делаем проекты: разработка вебсайтов

Глава о буднях веб-разработчиков: что входит в их работу, насколько сложными могут быть проекты, кто отвечает за интерфейс, а кто — за сервер...

Клиентам
10 февраля 2018