• Введение
  • Независимое приложение или часть большой системы?
  • Независимые приложения
  • Наборы взаимосвязанных приложений, установленных на устройстве
  • Мобильные приложения, взаимодействующие с приложениями для настольных компьютеров и серверов
  • Не пытайтесь просто переносить на устройства приложения, рассчитанные на настольные компьютеры! Мыслите категориями устройств!
  • Стереотипы использования мобильного и настольного программного обеспечения
  • Шаги по определению сферы применения мобильного приложения
  • ГЛАВА 6

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

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

    (Иво Салмре) ((чтобы получить представление о механизмах Руби Гольдберга, посетите Web-сайт http://www.rube-goldberg.com/))

    Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Стереотипы использования мобильного и настольного программного обеспечения

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

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

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

    Поиск информации в Web с помощью мобильных устройств имеет свои особенности

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

    Ранее мы уже указывали на то, что в мобильных Web-бpayзepax адресная строка часто по умолчанию является скрытой. В случае настольных компьютеров такое поведение можно было бы считать упущением, но в случае мобильных устройств критерии оценки другие. На то есть две причины: 1) в случае мобильных устройств быстро вводить длинные URL-адреса обычно бывает непросто, и если имена Web-сайтов приходится задавать с указанием всех входящих в них символов то и редактор T9 не в состоянии ускорить эту процедуру, и 2) в силу требований к размерам изображений и компоновке экрана большая часть Web-содержимого плохо приспособлена для отображения на мобильных устройствах.

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

    Именно поэтому ведется работа по выделению в Internet отдельного домена высшего уровня (например, .mobile, а не .com), предоставляющего содержимое специально для мобильных устройств. Мобильные устройства вскоре станут очень важными участниками деятельности в Internet, но использоваться в работе они будут не так, как браузеры современных настольных компьютеров. Ближайшее будущее обещает нам много интересного, поскольку можно ожидать появления в Web множества новшеств, специфических для мобильных устройств, а не простого переформулирования идей программного обеспечения, разработанного для настольных компьютеров.

    Шаги по определению сферы применения мобильного приложения

    Ниже перечислены шаги, которым вы должны следовать при определении сферы применения вашего мобильного приложения.

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

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

    3. Создайте начальный прототип. Располагая современным инструментарием RAD (Rad Application Development — быстрая разработка приложений), можно сравнительно легко создавать начальные прототипы того, что вы задумали. Создание прототипов — отличная вещь. Подготовка и выполнение прототипов на устройстве поможет вам лучше изучить возможности и ограничения выбранного вами оборудования и выявить проблемы проекта, которые вы могли упустить. Помимо этого, наличие выполняющегося прототипа сделает возможной оценку дееспособности определенных вами сценариев использования приложения

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

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

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

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

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







     


    Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Наверх