Разработка приложения всегда начинается с его проектирования. Определяются функциональные требования, на основе их составляется техническое задание. По техническому заданию уже разрабатываются прототипы приложения, обычно содержащие в себе все экраны приложения, переходы, «заглушки» для контента и функционал всех элементов. В зависимости от сложности приложения, срок проектирования составляет от двух недель до двух месяцев, обычно это около 25% от общего времени разработки. Итоги проектирования (техническое задание и прототипы) обязательно согласовываются с заказчиком. Уточнение всех нюансов работы приложения на этапе проектирования помогает в дальнейшем избежать многих проблем и сократить время работы на следующих этапах.
Далее обычно следует подготовка макетов приложения, т.е. дизайн. Дизайн приложения должен определяться не только «видением» дизайнера, но и обязательно рекомендациями по дизайну для данных мобильных платформ от разработчиков этих платформ. Дизайн должен быть не только красивым, но и удобным пользователю, интуитивно понятным. Для серьезных проектов всегда подготавливается два различных варианта дизайна – для работы приложения на смартфоне и на планшетном компьютере.
После утверждения заказчиком дизайна начинается непосредственно разработка. В большинстве приложений кроме самого приложения (клиентской части, устанавливаемой на устройство пользователя) используется и серверная часть, в которой хранится база данных для приложения, обрабатываются сложные задачи, происходит обмен данными между пользователями и многое другое. Чаще всего разработчики клиентской части приложения и сервера – это разные программисты. Для работы сервер кроме программной части необходим хостинг, который или предоставляется компанией-разработчиком приложения, или арендуется заказчиком. Сами приложения разрабатываются либо на нативных («родных») языках программирования, либо используется какое-то кросс-платформенное решение. Применение нативных языков обеспечивает высокое быстродействие приложения, отказоустойчивость и легкость в сопровождении. Пожалуй, единственным преимуществом кросс-платформенных решений является их более низкая стоимость. Процесс разработки может быть разбит на отдельные логические этапы, после каждого этапа идет тестирование работы с целью выявления ошибок на ранних этапах.
Завершает процесс разработки тестирование приложения. Стоит обратить внимание, что тестирование на заключительном этапе отличается от тестирования промежуточных сборок приложения. Кроме выявления непосредственно ошибок, обычно проверяется и удобство использования приложения, возможно проведение тестирования фокус-группами. В крупных проектах этап тестирования может занимать около 30% времени от общего времени разработки. Нередко по результатам тестирования приходится возвращаться к этапу разработки.