Идея конечного автомата является чрезвычайно полезной концепцией, плодотворность которой прошла хорошую проверку временем. Использование конечных автоматов позволяет разработчикам создавать хорошо организованные приложения с гибкими возможностями. Поскольку процессу разработки мобильных приложений присущ итеративный, исследовательский характер, конечные автоматы сослужат вам хорошую службу, ибо они позволяют легко адаптировать приложение к новым идеям, которые могут возникнуть в ходе разработки проекта и внесения в него уточнений. В таких областях, как управление пользовательским интерфейсом, ресурсами, памятью или фоновым выполнением задач, использование конечных автоматов обеспечивает создание ясного, понятного и надежно функционирующего кода.
Старайтесь избегать неявного управления состояниями приложения путем встраивания соответствующего кода в различные места программы и не жалейте времени на разработку явно сформулированной модели состояний. Использование конечных автоматов стало уже обычной практикой при проектировании приложений для настольных компьютеров, серверов и мобильных устройств. Преимущества, обеспечиваемые применением конечных автоматов, заметнее всего проявляются в случае приложений для мобильных устройств, требующих экономного расходования экранного пространства, памяти, вычислительной мощности и других ресурсов. Связанные с этим незначительные дополнительные усилия с вашей стороны сторицей окупят себя впоследствии в процессе разработки прототипов, проектирования, компоновки, сопровождения и расширения приложения.
ГЛАВА 6
Шаг 0: прежде чем приступать к работе, определите сферу применения приложения
Руби Гольдберг (Rube Goldberg) (1883-1970) — художник-карикатурист, рисовавший механизмы, предназначенные, несмотря на всю фантастичность своей конструкции, для выполнения самых обычных операций. Каждый из этих механизмов представлял собой завораживающее сплетение всевозможных рычагов, шкивов и пружин и снабжался забавным описанием принципов его работы. Вам следовало бы очень внимательно ознакомиться с запутанным внутренним устройством этих механизмов, чтобы впоследствии никогда не допускать ничего подобного при разработке своих приложений для мобильных устройств. Стремитесь к простоте и действуйте всегда целенаправленно!
Иво Салмре (чтобы получить представление о механизмах Руби Гольдберга, посетите Web-сайт http://www.rube-goldberg.com/)
В название этой главы присутствует "Шаг 0", поскольку в книге, посвященной главным образом тому, как создавать приложения для мобильных устройств, ваше внимание должно быть обращено на необходимость получения в первую очередь ответа на следующий вопрос: "Какие конкретные задачи должны решаться при помощи данного мобильного приложения?" Очень важно всегда иметь для разрабатываемого приложения подходящий набор конечных целей. В процессе того, как вы будете ближе знакомиться с возможностями и ограничениями вашего целевого устройства, а также по мере появления новых или уточнения существующих требований в результате тестирования приложения, задачи разработки могут изменяться, но вы всегда должны хорошо представлять себе общую конечную цель, которая должна быть достигнута по завершении разработки. Приложение, для которого ясно не определены цели и сферы применения, обречено потонуть в море посредственных возможностей. Гораздо лучше выделить несколько важных задач, в которых будут больше всего заинтересованы пользователи мобильного устройства, и обеспечить возможность их эффективного решения, чем пытаться втиснуть все, что только возможно, в рамки одного универсального приложения.
Цель этой короткой главы состоит в том, чтобы помочь вам правильно очертить границы проекта разрабатываемого мобильного приложения. Успешность подобных приложений зависит от того, насколько они сфокусированы на решении строго определенного круга задач. Работа с мобильными приложениями, предназначенными для повышения производительности труда, обычно ведется в виде коротких сеансов, во время которых пользователь получает и изменяет данные или запрашивает услуги. Правильно определив набор необходимых средств, вы предоставите пользователям возможность быстрейшего получения информации и услуг, в которых они нуждаются. Вероятно, мобильное приложение с множеством форм, для просмотра и изучения которых пользователю понадобится более 20 минут, вряд ли можно считать соответствующим этому критерию; 20 секунд — вот те временные рамки, на которые вы должны ориентироваться. To же самое относится и к приложениям развлекательного характера; отличная мобильная игра должна быть простой в использовании, быстро запускаться и учитывать специфику кратковременных сеансов.
Читать дальше