slavachernikoff
Technical Design Of Mobile Applications

Updated 5 months ago

Distributed under CC BY-ND licence

Binwell’s Guide

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

С примерами на Xamarin.Forms

Об авторе и компании Binwell

В компании Binwell (https://binwell.com) мы создаем мобильные приложения и облачные сервисы под ключ с использованием Xamarin и Azure. Осуществляем разработку полного цикла: бизнес-аналитика, проектирование, дизайн, кодирование, тестирование, публикация, развитие. Ключевыми направлениями деятельности являются: реализация комплексных решений на основе облачных и мобильных технологий, а также реализация интеграционных проектов на базе облачной платформы Azure. Сфокусированы на стеке .NET, являемся Microsoft Azure Partner и Xamarin Certified Partner.

Вячеслав Черников является руководителем отдела разработки в компании Binwell, а также Microsoft MVP и Xamarin Certified Developer. В прошлом был отмечен статусами Qt Certified Specialist, Qt Ambassador и Nokia Champion. В сферу mobile пришел в 2005 в качестве автора и редактора портала Ladoshki.com, был руководителем проекта iPAQ Choice (проект HP для владельцев наладонников iPAQ) и с 2008 года вернулся к программированию, сфокусировавшись на Qt. Участвовал в более чем 40 проектах мобильных приложений и игр для iOS, Android, Windows, Symbian, Maemo/Meego в качестве разработчика, аналитика и проектировщика. Автор популярных статей о Xamarin и Mobile DevOps.

Введение

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

Из нашего опыта, большинство команд мобильных разработчиков сталкивается со следующими проблемами во время длительного развития проекта:

  1. Отсутствие или несоблюдение архитектурных паттернов, которое ведет к хаотичному расположению файлов в структуре решения. Также создаются излишние связи между классами и подсистемами. Все это усложняет и замедляет развитие продукта, так как требуется много времени на распутывание “лапши”.

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

  3. Отсутствие единой документации (кроме ТЗ) для всей команды, которая бы позволила проще находить общий язык и при этом сама была достаточно компактной и простой для восприятия. “Документация отдельно, код отдельно” - редко обозначения и названия из документации используются в коде, что усложняет его разработку и развитие.

В нашем руководстве мы расскажем о пошаговом процессе подготовки технической документации, которая позволит создать “скелет” проекта на основе пользовательского интерфейса. Также мы остановимся на необходимом минимуме электронных документов, на которые могут в дальнейшем опираться участники команды.

Вопросы, на которые мы постараемся ответить в данном руководстве:

  1. Как расширить проектную документацию, чтобы разработчику было проще самостоятельно подготовить структуру проекта?

  2. Как организовать взаимодействие команды на базе единой технической документации?

  3. Как использовать техническую документацию в качестве чек-листов?

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

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

Приятного чтения!