Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
Стереотипы использования мобильного и настольного программного обеспечения
Следует развеять миф о том, что персональные компьютеры будут вытеснены мобильными устройствами; в действительности на это пока ничто не указывает. Как уже отмечалось в предыдущих главах данной книги, мобильные устройства находят качественно иное применение по сравнению с персональными компьютерами. Чтобы добиться успеха в создании замечательных мобильных приложений, вы должны исходить из того, что мобильные устройства привносят в существующее программное обеспечение новое, мобильное наполнение, заставляя создавать совершенно новые классы программного обеспечения, а не просто заменять то, которое уже существует в виде приложений для настольных компьютеров и Web-приложений
Настольные и переносные компьютеры хорошо справляются со многими задачами, и в частности, обеспечивают возможность исследовательского стиля работы с данными, получаемыми их из самых разных источников. Во время сеанса работы с настольными или переносными компьютерами исходная информация нередко поступает из нескольких разнородных источников, и вы всегда можете
Проектируя приложения для мобильных устройств, важно ориентироваться на определенные стереотипы их использования и конкретные условия, в которых люди будут пользоваться этим программным обеспечением. Возникнет ли необходимость в использовании приложения непосредственно в кабине грузовика сразу же после доставки груза? Должно ли приложение быть достаточно простым, чтобы им можно было пользоваться на людных улицах, или оно будет использоваться для поиска сложных данных в комфортных офисных условиях? Предполагается ли использование приложения во время перелетов, когда обмен сообщениями сможет быть осуществлен лишь тогда, когда представится возможность установления связи? Будет ли данное приложение являться частью пакета, причем программное обеспечение настольного компьютера и мобильного устройства будет использоваться одним и тем же человеком, или же настольными компьютерами и мобильными устройствами будут пользоваться разные люди, общими для которых будут только данные, с которыми они совместно работают? Каким опытом работы с другими компьютерами и приложениями обладает целевой пользователь? Следует ли максимально упростить пользовательский интерфейс, чтобы им могли пользоваться даже неискушенные пользователи? Важно иметь отчетливое представление о том, каким образом сценарии использования затрагивают часть вашей системы, устанавливаемую на мобильных устройствах, и как именно пользователи будут работать с ней. Это позволит вам не только определить нужный состав средств и особенности пользовательского интерфейса мобильного приложения, но и выбрать наиболее подходящее целевое оборудование для вашего мобильного решения. Если для приложения требуется определенный тип пользовательского интерфейса, то это может очень сильно повлиять на выбор соответствующего приложению целевого оборудования и его форм-фактора.
Мне не раз приходилось слышать оценку, согласно которой в течение всего лишь нескольких лет число мобильных устройств, имеющих доступ к Internet, превысит аналогичное число настольных компьютеров. Возможно, так оно и будет, но было бы неправильно считать, что способы использования Internet в обоих случаях будут одинаковыми. Стоит поговорить о том, почему это так.
Ранее мы уже указывали на то, что в мобильных Web-бpayзepax адресная строка часто по умолчанию является скрытой. В случае настольных компьютеров такое поведение можно было бы считать упущением, но в случае мобильных устройств критерии оценки другие. На то есть две причины: 1) в случае мобильных устройств быстро вводить длинные URL-адреса обычно бывает непросто, и если имена Web-сайтов приходится задавать с указанием всех входящих в них символов то и редактор T9 не в состоянии ускорить эту процедуру, и 2) в силу требований к размерам изображений и компоновке экрана большая часть Web-содержимого плохо приспособлена для отображения на мобильных устройствах.
По этой причине работа в Web с помощью мобильных устройств осуществляется с использованием списка наиболее часто посещаемых мобильных Web-сайтов, причем приходится проверять, чтобы ссылки, которые могут встречаться на этих стартовых страницах, также указывали на полезное содержимое, способное нормально отображаться на экране мобильного устройства.
Именно поэтому ведется работа по выделению в Internet отдельного домена высшего уровня (например, .mobile, а не .com), предоставляющего содержимое специально для мобильных устройств. Мобильные устройства вскоре станут очень важными участниками деятельности в Internet, но использоваться в работе они будут не так, как браузеры современных настольных компьютеров. Ближайшее
Шаги по определению сферы применения мобильного приложения
Ниже перечислены шаги, которым вы должны следовать при определении сферы применения вашего мобильного приложения.
1. Записывайте сценарии использования мобильных устройств. Не существует лучшего способа, чем описание на бумаге каждого возможного пользовательского сценария из подготовленного вами списка. Чем более подробно описаны сценарии, тем лучше. Определите круг потенциальных пользователей мобильного приложения. Определите, какие устройства они могут иметь при себе. Определите, какие задачи они смогут решать при помощи данного программного обеспечения. Определите где и когда они могут использовать ваше мобильное приложение. Определите длительность и частоту возможных сеансов взаимодействия с устройством. Запись всей этой информации на бумаге обострит ваше мышление и позволит получить конкретные отзывы от других участников рабочей группы, потенциальных пользователей приложения и других заинтересованных сторон. Не менее важно указать также то, для выполнения чего ваше мобильное приложение не предназначено. Тем самым будут полностью определены границы и сфера применения вашего мобильного приложения
2. Определите, какая часть системы перемещается на устройство. Будет очень неплохо, если вы предварительно разделите приложение на части, соответствующие серверу, устройству и настольному компьютеру, если это только возможно. Это позволит вам получить хорошее представление о запросах вашего мобильного приложения в отношении обработки, хранения и обмена данными.
3. Создайте начальный прототип. Располагая современным инструментарием RAD (Rad Application Development — быстрая разработка приложений), можно сравнительно легко создавать начальные прототипы того, что вы задумали. Создание прототипов — отличная вещь. Подготовка и выполнение прототипов на устройстве поможет вам лучше изучить возможности и ограничения выбранного вами оборудования и выявить проблемы проекта, которые вы могли упустить. Помимо этого, наличие выполняющегося прототипа сделает возможной оценку дееспособности определенных вами сценариев использования приложения
4. Проанализируйте, подходит ли разработанный вами пользовательский интерфейс прототипа для выбранного целевого устройства. Создание прототипа приложения ясно покажет вам, каким образом приложение будет представлять данные и взаимодействовать с пользователем. Не каждое приложение подойдет для любого устройства. Прототип продемонстрирует вам, как именно будут выглядеть и работать определенные вами сценарии использования приложения на физическом оборудовании устройства. В зависимости от полученных при этом результатов может потребоваться уточнение сценариев, изменение парадигмы пользовательского интерфейса и даже выбор другого целевого мобильного устройства.
5. Используя опыт работы с прототипом, уточните модель данных приложения. Работа с прототипом приложения должна помочь вам лучше понять, с какими типами данных придется иметь дело приложению, и в каких условиях будет осуществляться отправка и получение этих данных. У вас будет достаточно информации для того, чтобы определить, необходимо ли использовать локальную базу данных, и какой тип локального хранилища может потребоваться. Как и в случае пользовательского интерфейса, потребности вашего приложения в данных могут вынудить вас к пересмотру решения о выборе целевого оборудования на основании доступности баз данных или требований к хранению данных.
6. Проанализируйте, реализуемы ли для выбранного целевого устройства заложенные в прототипе приложения допущения, касающиеся вопросов обмена информацией. Критически оцените потребности вашего мобильного приложения в обмене информацией и взаимодействии с другими системами. Требуется ли высокоскоростной доступ в сеть? Существует ли необходимость в роуминге? Смогут ли соединение с сетью и синхронизация данных через настольный или переносной компьютер в достаточной мере удовлетворить потребности вашего мобильного приложения в обмене информацией?
7. Приступите к разработке программного обеспечения! Вооружившись тщательно продуманным списком пользовательских сценариев, первоначальным представлением о том, каким должно быть подходящее разбиение приложения на отдельные части, и ценными сведениями, полученными в процессе апробирования экспериментальной модели приложения, вы будете вполне готовы приступить к его разработке.
Каждый из нас должен оставлять за собой право проснуться назавтра поумневшим по сравнению с сегодняшним днем. Очень важно, чтобы к тому моменту, когда вы будете приступать к непосредственной разработке вашего мобильного приложения, у вас имелся хорошо продуманный план действий. Кроме того, необходимо понимать, что в процессе разработки приложения будут выясняться новые факты, которые могут заставить вас пересмотреть и скорректировать первоначальный план. Важно не только представлять себе в общих чертах, как должно работать приложение, но и ориентироваться на конкретные сценарии, наполняющие это представление содержанием. Без этого вы рискуете прийти к тому, что конечный результат будет подобен кухонному комбайну, который готовит ужасный кофе, печет рыхлый хлеб и плохо справляется с мытьем посуды. У вас должна быть ясная картина того, для чего именно предназначено и, что не менее важно, для чего не предназначено ваше приложение. Если имеющийся план требует изменений — измените его, но сфера применения и соответствующие сценарии использования вашего мобильного приложения в любом случае должны быть определены.