Чтение онлайн

на главную - закладки

Жанры

Программирование мобильных устройств на платформе .NET Compact Framework

Салмре Иво

Шрифт:

ГЛАВА 6

Шаг 0: прежде чем приступать к работе, определите сферу применения приложения

Руби Гольдберг (Rube Goldberg) (1883-1970) — художник-карикатурист, рисовавший механизмы, предназначенные, несмотря на всю фантастичность своей конструкции, для выполнения самых обычных операций. Каждый из этих механизмов представлял собой завораживающее сплетение всевозможных рычагов, шкивов и пружин и снабжался забавным описанием принципов его работы. Вам следовало бы очень внимательно ознакомиться с запутанным внутренним устройством этих механизмов, чтобы впоследствии никогда не допускать ничего подобного при разработке своих приложений для мобильных устройств. Стремитесь к простоте и действуйте всегда целенаправленно!

Иво Салмре (чтобы получить представление о механизмах Руби Гольдберга, посетите Web-сайт

Введение

В название этой главы присутствует "Шаг 0", поскольку в книге, посвященной главным образом тому, как создавать приложения для мобильных устройств, ваше внимание должно быть обращено на

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

Цель этой короткой главы состоит в том, чтобы помочь вам правильно очертить границы проекта разрабатываемого мобильного приложения. Успешность подобных приложений зависит от того, насколько они сфокусированы на решении строго определенного круга задач. Работа с мобильными приложениями, предназначенными для повышения производительности труда, обычно ведется в виде коротких сеансов, во время которых пользователь получает и изменяет данные или запрашивает услуги. Правильно определив набор необходимых средств, вы предоставите пользователям возможность быстрейшего получения информации и услуг, в которых они нуждаются. Вероятно, мобильное приложение с множеством форм, для просмотра и изучения которых пользователю понадобится более 20 минут, вряд ли можно считать соответствующим этому критерию; 20 секунд — вот те временные рамки, на которые вы должны ориентироваться. To же самое относится и к приложениям развлекательного характера; отличная мобильная игра должна быть простой в использовании, быстро запускаться и учитывать специфику кратковременных сеансов.

Независимое приложение или часть большой системы?

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

Независимые приложения

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

Наборы взаимосвязанных приложений, установленных на устройстве

Большинство приложений, заслуживающих интереса, взаимодействуют с другими системами. В некоторых случаях вместо варианта, предусматривающего создание одного крупного многоцелевого приложения, можно выбрать вариант создания набора приложений, установленных на одном устройстве, которые осуществляют совместный доступ к локальной базе данных. Каждое приложение может быть ориентировано на решение отдельного круга задач и разрабатываться так, чтобы наилучшим образом обеспечить достижение соответствующих целей. При построении набора приложений, которые будут совместно работать с разделяемыми данными, важно как можно точнее определить, что именно каждое приложение должно делать, а что не должно. Хорошим примером разделения функций между отдельными приложениями может служить набор офисных приложений. Типичное программное обеспечение офисного набора включает в себя текстовый процессор, программу для выполнения расчетов (электронные таблицы), а также программное обеспечение для подготовки презентационных материалов и обеспечения связи. Указанные программы могут взаимодействовать между собой множеством способов и разделять общие данные и компоненты, но сомнения в отношении того, какое из приложений больше всего подходит для решения той или иной задачи, возникают лишь в очень редких случаях. Кое-кому может показаться, что отдельные офисные приложения сами по себе являются слишком сложными, чтобы каждое из них можно было считать ориентированным на решение узкого круга задач, однако представьте, что бы произошло, если бы все они были объединены в одно огромное "суперприложение". Результат напоминал бы собой некий конгломерат. Залог создания успешных мобильных приложений — минимизация их размеров и специализация выполняемых ими функций

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

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

У конечного пользователя не должно возникать никаких сомнений относительно того, каким именно инструментом следует воспользоваться для решения той или иной конкретной задачи. Размытие целевого назначения приложений в пределах набора говорит о незавершенности продукта или разработке проекта путем незапланированного наращивания его возможностей, когда вместо систематического создания заранее предусмотренных средств существующие приложения дорабатываются в специализированном стиле по мере выявления новых потребностей. Если в процессе разработки мобильного приложения у вас рождается идея "убийственного сценария", задайтесь вопросом, следует ли включать этот сценарий в состав существующего приложения или лучше реализовать его надлежащим образом в виде независимого приложения. Можно легко объединить приложения в одно целое, но выделить вплетенный в тело приложения код очень непросто. Если вы сомневаетесь в том, как лучше поступить, начните с создания независимого приложения, не забыв при этом о правиле "20 секунд": пользователь, действуя без спешки, должен успевать достать устройство из кармана и перейти к разделу с нужной информацией в течение не более 20 секунд. 

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

Многие из установленных на устройствах приложения взаимодействуют с внешними ресурсами, например, с данными, которые хранятся на настольном компьютере, доступны на сервере предприятия или предлагаются Internet-службами. Определяя сферу применения мобильных приложений, являющихся частью более крупных систем, необходимо не забывать о двух важных вещах:

1. Определите ключевой набор сценариев работы с устройством. Сценарии использования приложений для настольных компьютеров и Web-приложений значительно отличаются от сценариев использования мобильных приложений, и поэтому простой перенос функциональных возможностей соответствующих приложений на мобильные устройства является оправданным лишь в очень редких случаях. Очень важно, чтобы вы могли дать ответы на следующие вопросы. Быстрое решение каких задач может потребоваться пользователям данного приложения при работе в мобильных условиях? Каковы те ключевые элементы, необходимость быстрого поиска или выполнения которых может заставить пользователя извлечь устройство из кармана? От ответов на эти вопросы зависят сценарии использования вашего мобильного приложения.

2. Определите будет ли устройство взаимодействовать с данными, хранящимися на настольных компьютерах или серверах. При работе крупных приложений часто используются экземпляры данных, разбросанные по самым разным местам. Данные могут храниться на нескольких серверах, на настольных компьютерах и на устройствах. Очень важно иметь ясную картину того, с какими данными будет взаимодействовать ваше мобильное приложение. Если у вас есть возможность выбирать, с какими данными следует организовать взаимодействие, — теми, которые хранятся на сервере, или теми, которые хранятся на настольном компьютере, — то наиболее подходящим почти всегда будет второй вариант. Это обусловлено двумя причинами: 1) обычно данные, хранящиеся на настольном компьютере, являются локальной кэшированной копией серверных данных, реальное текущее состояние не всегда отражается правильно, и 2) в то время как настольный компьютер не всегда может быть доступным, серверы специально проектируются таким образом, чтобы обеспечивалась возможность постоянного доступа к ним. Обычно если принимается решение о том, что мобильное устройство должно синхронизироваться с данными, хранящимися на настольном компьютере, а не на сервере, то это делается на основе тактических, а не прочно обоснованных стратегических соображений. В качестве оправдания указанной близорукой политики приводят, например, такую аргументацию: "Я не могу получить разрешение на доступ к находящимся на сервере данных с мобильного устройства, и поэтому вынужден обратиться к модели, которая обеспечивает синхронизацию с данными, хранящимися на настольном компьютере" или "Структуры данных, хранящихся на серверах, слишком сложны для обработки, в то время как на настольных компьютерах данные хранятся в простых форматах, и поэтому синхронизация с ними осуществляется легче". Постарайтесь устоять перед подобного рода соблазнами. Если данные действительно хранятся на сервере, то вы должны организовать синхронизацию именно с ними, даже если для этого и придется создавать промежуточное серверное решение, поддерживающее получение доступа к данным. Формирование продуманной архитектуры взаимодействия с другими звеньями вашего приложения сторицей окупит себя в отношении надежности и сроков разработки. Кратковременным тактическим решениям свойственно очень быстро превращаться в непрерывный долговременный кошмар сопровождения. Корректная оценка сферы применения вашего мобильного приложения требует того, чтобы вы руководствовались отчетливой схемой, отражающей взаимодействие приложения с внешними по отношению к устройству системами.

Не пытайтесь просто переносить на устройства приложения, рассчитанные на настольные компьютеры! Мыслите категориями устройств!

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

Поделиться:
Популярные книги

Жребий некроманта 2

Решетов Евгений Валерьевич
2. Жребий некроманта
Фантастика:
боевая фантастика
6.87
рейтинг книги
Жребий некроманта 2

Предатель. Вернуть любимую

Дали Мила
4. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Предатель. Вернуть любимую

Бывший муж

Рузанова Ольга
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Бывший муж

Мама для дракончика или Жена к вылуплению

Максонова Мария
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Мама для дракончика или Жена к вылуплению

Жандарм 5

Семин Никита
5. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 5

Менталист. Эмансипация

Еслер Андрей
1. Выиграть у времени
Фантастика:
альтернативная история
7.52
рейтинг книги
Менталист. Эмансипация

Кодекс Охотника. Книга XXIV

Винокуров Юрий
24. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XXIV

Лорд Системы 14

Токсик Саша
14. Лорд Системы
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Лорд Системы 14

Смерть может танцевать 4

Вальтер Макс
4. Безликий
Фантастика:
боевая фантастика
5.85
рейтинг книги
Смерть может танцевать 4

Идеальный мир для Лекаря 2

Сапфир Олег
2. Лекарь
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 2

Черный Маг Императора 8

Герда Александр
8. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 8

Не отпускаю

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
8.44
рейтинг книги
Не отпускаю

Идеальный мир для Лекаря 8

Сапфир Олег
8. Лекарь
Фантастика:
юмористическое фэнтези
аниме
7.00
рейтинг книги
Идеальный мир для Лекаря 8

Темный Патриарх Светлого Рода 3

Лисицин Евгений
3. Темный Патриарх Светлого Рода
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Темный Патриарх Светлого Рода 3