Разработка мобильного приложения: от идеи до результата

Процесс создания нативного приложения, описанный компанией BHW Group и адаптированный AppCraft под современный софт и реалии.

Разработка мобильного приложения: от идеи до результата

Каждый день тысячи мобильных приложений появляются в Google Play и Apple App Store. Соцсети, мессенджеры, игры и многие другие – все они делаются профессионалами по одному алгоритму разработки. И сегодня мы разложим его на понятные шаги, чтобы показать вам внутреннюю кухню мобильной разработки. Она включает в себя шесть этапов: оформление идеи, разработка стратегии, работа над дизайном, непосредственно разработка, выход на рынок и мониторинг ситуации.

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

Идея

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

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

Стратегия

Подготовка

Следующий шаг после рождения идеи – составить план работы над проектом. Его проще всего начать с анализа конкурентов. Найдите на рынке похожие мобильные приложения и проанализируйте следующие факторы:

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

История компании – будьте готовы столкнуться с теми же трудностями, что и ваши ближайшие конкуренты. Заодно попробуйте понять, как они завоевали признание аудитории.

Разработка мобильного приложения: от идеи до результата

Благодаря анализу конкурентов вы убиваете сразу двух зайцев. Во-первых, учитесь на чужих ошибках, причём бесплатно, без траты лишнего времени и ощущения собственной неполноценности. Во-вторых, вы начинаете понимать, на что вам придётся пойти, чтобы выжить на рынке мобильной разработки. Что именно пользователь хочет увидеть в своём смартфоне? Есть ли для вашего приложения свободная ниша? Ответы на эти вопросы помогут вам найти баланс между вашими возможностями и потребностями рынка. Ну а если ваша идея настолько уникальна, что подобных приложений ещё нет в природе, посмотрите, как разработчики-первопроходцы из других сфер презентовали себя аудитории.

Монетизация

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

Маркетинг

Эта ступень мобильной разработки связана с пониманием главного вызова, стоящего перед любым разработчиком. Вам придётся продвигать своё приложение, чтобы о нём узнали и начали пользоваться. Сотни качественных мобильных приложений пылятся на виртуальных полках потому, что у их разработчиков не было маркетинговой стратегии и бюджета на её реализацию. А без неё могут обойтись только B2B-приложения, сделанные для внутреннего использования сотрудниками компании-заказчика.

Дорожная карта продукта и MVP

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

UX-дизайн

Внутренняя архитектура

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

Инструменты: доска и маркеры. Много маркеров.

Разработка мобильного приложения: от идеи до результата

Вайрфрейм

Затем мы рисуем на доске или бумаге экраны и располагаем на них необходимые элементы и данные. Несмотря на то, что один и тот же элемент может присутствовать на нескольких экранах, у него должен быть «дом». Именно на этом этапе в проект можно внести любые изменения.

Пользовательские сценарии

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

Инструменты: маркеры, плюс Invision, Adobe XD и Figma.

Проверка на аудитории

Самый простой способ проверить, насколько хорош ваш UX-дизайн – протестировать его на будущих пользователях. Отправьте им ссылку, после перехода по которой они смогут «потыкать» по отрисованным вайрфреймам. О функциональности речь не идёт, только о проверке навигации. Прислушивайтесь к комментариям, возвращайтесь на один-два-три шага назад, исправляйте проблему и тестируйте. Снова и снова.

Инструменты те же, что и для пользовательских сценарий: Invision, Adobe XD и Figma.

UI-дизайн

Стайлгайды

Стайлгайды – это стройматериалы для отделки «интерьера» мобильного приложения и повышения его юзабилити. Без продуманного стайлгайда элементы дизайна будут менять цвета и плавать по экрану, сбивая пользователя с толку.

Руководство по стилю мобильного приложения должно быть максимально подробным и опираться на характеристики аудитории. Ей нужно работать в приложении по ночам? Делаем тёмную тему. Это внутреннее приложение для сотрудников крупной компании? Убираем всё лишнее. Как это сделать? Опытный UI-дизайнер предложит сотню вариантов цветовой палитры, шрифтов и виджетов (кнопок, форм, значков и т.д.).

Разработка мобильного приложения: от идеи до результата

Рендеринг

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

Инструменты: Sketch, Figma, Adobe XD и Principle.

Проверка дизайна

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

Инструмент: Invision, Figma и Sketch.

От дизайна к разработке

Настало время подключать разработчиков, которые качественно реализуют продуманный до мелочей и многократно протестированный дизайн. Что может пойти не так? Например, вы заказали дизайн у одной компании, а разработку – у другой. Или у них внутренний раскол. Поэтому рекомендуем работать с профессиональной командой, которая занимается мобильной разработкой от идеи до результата.

В некоторой степени успех совместной работы дизайнеров и разработчиков зависит от выбора инструментов. Например, приложение Zeplin показывает последним все свойства загруженного в него дизайна, хотя не обладает всеми возможностями Sketch или Photoshop. В любом случае, убедитесь в том, что команда пользуется точными значениями измерений и не ленится копировать HEX-коды цветов.

Инструмент: Zeplin

Архитектура системы

В мобильной разработке существует великое множество технологий. Одни почти не требуют затрат, но не отличаются высокой производительностью, другие потребуют больших вложений во имя блестящего результата. Худшее, что вы можете сделать на данном этапе – использовать устаревшие или ненадёжные инструменты, которые приведут к тому, что вам придётся переписывать код, доплачивая остальным членам команды за переработку. Чтобы избежать этого, рекомендуем принять ряд важных решений до начала работы над проектом. Каких именно, расскажем ниже.

Разработка мобильного приложения: от идеи до результата

Frontend-разработка

Существует три основных подхода frontend-разработке:

  • Нативный – при таком подходе приложение пишется под конкретную мобильную платформу. То есть код приложения под Android нельзя будет использовать на iOS без адаптации. Интерфейс нативного приложения выглядит максимально органично, а само оно работает быстро и отлаженно. За такую надёжность приходится платить, поэтому нативная разработка стоит дороже остальных вариантов.
  • Кроссплатформенный – код такого приложения универсален, вследствие чего ОС запускает его как нативное. Многие считают этот способ оптимальным по соотношению «цена-качество», но он всё равно требует от разработчика временных затрат на оптимизацию. Если остановитесь на нём, среди фреймворков выбирайте между React Native, Xamarin и Native Script.
  • Гибридный – код пишется на HTML, CSS или Javascript в таких средах разработки, как Cordova, Phone Gap и Ionic. Получается дёшево, сердито и не без проблем.

Backend-разработка (программный интерфейс и сервер)

Сервер влияет на производительность мобильного приложения и масштабируемость продукта, то есть способность системы увеличивать ту же производительность за счёт увеличения доступных ресурсов. Технологии здесь те же, что и в разработке веб-приложений. Отправная точка – определиться с:

  • Языком программирования – написать мобильное приложение можно на Java, SWIFT, а сервер на Javascript, C#, Go-lang, PHP, Python и ещё десятке языков. И у каждого из них есть фреймворки на любой вкус.

  • Системой управления базой данных – они делятся на два типа: те, что работают на SQL, и все остальные. SQL-системы надёжны и подходят для решения практически любых задач. Самые популярные – MSSQL, MYSQL и PostgreSQL. Кроме того, придётся выбрать движок (подсистему хранения) и выстроить схему базы. Ваша цель на данном этапе – сделать систему надёжной и хорошо структурированной. Не поленитесь и тщательно продумайте каждый её элемент.
  • Хостингом для сервера и API – здесь вновь важно учесть производительность и масштабируемость приложения наряду с его надёжностью и ценой в магазинах. Такие провайдеры, как Amazon AWS и Rackspace, предлагают разработчикам облачные решения, причём размер облака можно будет увеличить, когда вырастет база пользователей. Они же помогут с резервным копированием данных и оперативными обновлениями.

Разработка и итерация

Как вы могли понять из начала нашего гайда, разработка мобильного приложения состоит из множества этапов. Разобраться в следующих будет в разы проще, если вы слышали про Scrum - метод управления проектами, который подразумевает разбивку рабочего процесса на небольшие отрезки – спринты. В каждом из них есть стадии планирования, разработки, тестирования и подведения итогов. Скрам – один из подходов методологии Agile, о которой написано множество книг, поэтому глубоко вдаваться в терминологию мы не будем. Тем более, что какими бы методами не пользовалась та или иная компания, этапы работы над мобильным приложением будут примерно одинаковыми.

Планирование

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

Разработка

На этапе разработки команда воплощает в жизнь идеи дизайнеров и свои собственные. Результат проверяет QA-команда (отдел контроля качества) или менеджер проекта. Последний также распределяет задачи между разработчиками, добиваясь равномерной загрузки команды на протяжении всего спринта.

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

Тестирование

Тестировать приложение не должны его же разработчики.

Тип тестирования выбирают исходя из проверяемой характеристики приложения:

  • Функционал – должен соответствовать заявленному. Хорошо, если у подрядчика есть QA-команда, а у неё – план тестирования со списком всех функций приложения и его желаемым поведением. Но если таковой нет – необходимо позаботиться об этом и нанять специально обученных специалистов. Юзабилити – интерфейс мобильного приложения должен быть интуитивно понятным и дружелюбным. О проблемах с этими качествами вам лучше всего расскажут те, кто видят продукт впервые.

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

Но и это ещё не всё:

  • Регрессионное тестирование – используется для проверки уже протестированного кода на ошибки, исправленные ранее, или возникшие в результате этих исправлений. Здесь на помощь вновь приходит QA-команда с чек-листами изменений, внесённых в код на каждом из спринтов.

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

Анализ

В конце каждого спринта обсуждайте его результаты с заинтересованными сторонами. Сделайте выводы из трудностей, с которыми вы столкнулись, и постарайтесь больше их не допускать. Отмечайте успешные решения и используйте их в дальнейшем. Двух одинаковых проектов быть не может, поэтому разработчики постоянно прокачивают свои навыки, в том числе – навыки планирования работы над проектом. Который, кстати, переходит в следующую стадию.

Перед запуском

К этому моменту приложение (или хотя бы MVP) должно быть полностью готово к выходу на рынок. Но если вы хотите потратить маркетинговый бюджет с умом, то размещать приложение в публичный доступ Google Play и Apple App Store пока рано. Нужно ещё раз протестировать его — на этот раз на небольших группах целевой аудитории. Сделать это можно двумя способами.

Фокус-группы

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

Бета-тестирование

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

Помните: лучше получить как можно больше подробных отчётов об ошибках и исправить их, чем не получить ни одного и узнать о проблеме от недовольных комментаторов из магазинов.

Внедрение на рынок

Перед тем, как представить своё мобильное приложение миру, позаботьтесь о двух вещах: надёжном API-сервере и соблюдении правил Google Play Store и Apple App Store.

Разработка мобильного приложения: от идеи до результата

API-сервер

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

Магазины приложений

Публикация приложения в Google Play Store и Apple App Store – трудоёмкий процесс. Вам придётся убедиться в том, что приложение отвечает требованиям магазина, заполнить несколько форм для каждого из них, подготовить скриншоты и маркетинговые материалы, составить текст описания… а Apple ещё и тщательно в течение нескольких дней будет проверять само приложение и даже может не только потребовать изменений, но и отказать в публикации из-за “бессмысленности” приложения. Нет, мы не исключаем вероятность того, что магазин примет ваше приложение без лишних вопросов, и через несколько дней оно будет доступно для скачивания. Просто предупреждаем о возможных трудностях, которые возникнут с вероятностью в 99%.

Мониторинг

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

Разработка мобильного приложения: от идеи до результата

Падения

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

Инструменты: Firebase и Bugsee

Аналитика

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

Производительность

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

Инструмент: Prometheus

Поддержка репутации

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

Дальнейшие улучшения

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

Вывод

Процесс разработки мобильного приложения кажется сложным только на первый взгляд. Да, вам придётся принимать множество важных решений и постоянно возвращаться к предыдущим этапам. Не поддавайтесь соблазну пропустить один или несколько – в конце вас ждёт заслуженная награда в виде денег и благодарных пользователей. Говорим об этом как разработчики с почти 7-летним опытом :)

Статья-источник на странице блога компании BHW Group.

1515
7 комментариев

Статья длинная, но оно того стоило

7

Спасибо! Изначально хотели разбить на две смысловые части, а именно: подготовка+дизайн и разработка+релиз. Но они оказались оказались весьма не пропорциональными по отношению друг к другу, поэтому решили не мелочится.

2

Спасибо!
Всегда было интересно посмотреть не весь процесс разработки приложения!

3

Спасибо за бесценную информацию! Планирую создать приложение в b2b2c секторе, маркетплейс в сфере услуг на региональном рынке с перспективой масштабирования. Не знаю пока где найти разработчиков, связываться с фрилансерами опасно, собирать свою команду в моем регионе проблематично, не знаю как быть. Средства на реализацию думаю привлечь от потенциальных партнёров, показав презентацию, но если они захотят протестить приложение как быть?

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

На что стоит обратить внимание на этом этапе?
A. Специализация студии (работает ли она со стартап-проектами напрямую?).
B. Штат сотрудников inhouse.
C. Работает ли над MVP версией продукта напрямую?

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

Готово, теперь вы можете продемонстрировать свою идею потенциальным партнёрам.

P.S. Не забудьте заложить риски на момент привлечения инвестиций.

1

Что-то напутано всё в блоках про «‎UX-дизайн», «‎UI-дизайн» и передачу макетов в разработку 😔
Если дизайнер предлагает «сотню вариантов цветовой палитры, шрифтов и виджетов», то стоит усомниться в его опыте.
Да и подключать разработчиков нужно далеко не на этапе завершённого дизайна.

Нигде не увидела такой этап разработки, как тестирование и отладка.

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

Проконсультировалась с админом тг-канала @sailet_llp (об автоматизации бизнес-процессов, мобильной разработке, веб-дизайне и т.д.) - так вот он, имея большой практический опыт в теме, в целом поддержал моё мнение по поводу тестирования и отладки (правда добавил, что ничто не догма и могут быть исключения))