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

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

16 февраля 2018
Клиентам
Наш опыт
Как мы делаем проекты: разработка мобильных приложений
16 февраля 2018
Клиентам
Наш опыт
Андрей
Руденко
Редактор

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

Знакомство

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

Дизайн

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

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

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

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

  • разработчики получают дизайн-макет;
  • у проекта есть интерфейс и серверная часть. Второе зависит от необходимости запрашивать и получать данные;
  • разработчики реализуют дизайн с помощью языков программирования, фреймворков и библиотек (примечание: в мобильной разработке также применяется язык разметки 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 до 11.2.6. Это обусловлено тем, что с девятой версии IDE xCode без ошибок позволяет как верстать в Interface Builder, так и писать код на Swift 4.0.

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

Версии ОС Android, поддерживаемые в Лайв Тайпинг, февраль 2018

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

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

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

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

Версии ОС iOS и модели iPhone, поддерживаемые в Лайв Тайпинг, февраль 2018
Информация актуальна на февраль 2018 года

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

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

Чтобы затратить минимальное время разработки версии для планшетов, а не создавать второе приложение за те же деньги, мобильному разработчику и дизайнеру необходимо действовать максимально слаженно; их главная задача — создать дизайн, использующий похожие компоненты на смартфоне и планшете. Больший, относительно телефона, размер дисплея планшета даёт уникальный пользовательский опыт. О том, какими особенностями — и преимуществами! — обладает планшетная версия ИЛЬ-ДЕ БОТЭ, мы рассказали в кейсе проекта.

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

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

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

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

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

Прочитайте другие наши статьи
Сколько стоит разработать мобильное приложение?

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

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

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

Как мы делаем проекты: разработка вебсайтов

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

Андрей Руденко, фотография
Андрей
Руденко
Редактор