Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework
Фокусирование внимания на отдельных задачах
Еще одной характеристикой мобильного приложения, определяющей его успешность, является степень его специализации. Для приложения должен быть четко определен набор задач, эффективное решение которых оно должно обеспечивать; совершаемые при этом операции должны выполняться быстро и требовать лишь минимального количества щелчков, нажатий или иных действий со стороны пользователя.
Именно по этой причине в устройствах часто предусматриваются специальные кнопки, соответствующие отдельным задачам, которые способно решать данное устройство (например, кнопка для перехода непосредственно к базе данных, хранящей информацию о контактах, кнопка для просмотра календаря встреч или кнопка для считывания штрих-кода и передачи его определенному приложению).
Вы должны приложить максимум усилий к тому, чтобы как можно точнее определить круг тех часто встречающихся задач, решение которых должно требовать минимума действий со стороны пользователя. Этой рекомендацией следует руководствоваться как в отношении высокоуровневых функций приложения, так и в отношении низкоуровневых задач, которые обычно приходится решать пользователям в процессе работы с данным приложением. Например, если мобильное приложение должно обеспечивать быстрый ввод дат, то вы должны позаботиться о максимальном упрощении (и ускорении) указанного процесса и измерении его эффективности. Если ваше мобильное приложение должно обеспечивать возможность указания определенного местоположения при помощи схемы городских улиц, чтобы пользователь мог выбрать маршрут движения к конечному пункту назначения, то вы должны позаботиться о том, чтобы это могло быть сделано как можно быстрее.
Одна из распространенных ошибок, допускаемых разработчиками при создании приложений для мобильных устройств, состоит в том, что программный код стараются сделать как можно более коротким, чтобы тем самым максимально уменьшить размер приложения. Хотя подобные цели и являются благородными, они не должны достигаться за счет снижения производительности труда пользователей. Не жалейте времени на написание дополнительного кода, фокусирующего внимание пользователей на выполнении специализированных задач и позволяющего сократить время получения конечного результата
Настройка взаимодействия с внешними источниками информации
Очень важно понимать, что создание отличного мобильного приложения — это не только написание кода, который правильно выполняется на устройстве. Не следует забывать также о внешнем программном обеспечении, с которым взаимодействует ваше мобильное приложение. Необходимо, чтобы в приложении соответствующим образом учитывались особенности информационных источников, обслуживающих мобильные устройства, и осуществлялась проверка того, что информация предоставляется в той форме, которая соответствует данному устройству. В качестве примера можно привести службы электронной почты для мобильных устройств. Многофункциональные почтовые приложения требуют наличия соответствующего программного обеспечения как на стороне сервера, так и на стороне клиента. Клиент осуществляет доступ к серверу для получения информации относительно поступивших сообщений и загружает соответствующее содержимое в локальное устройство. Поскольку сетевые соединения, используемые мобильными устройствами, отличаются нерегулярностью доступа к ним, пониженной пропускной способностью, а во многих случаях и более высокой стоимостью по сравнению с теми соединениями, которые используются персональными компьютерами, почтовые службы сервера должны быть приспособлены для удовлетворения этих требований. Обычно это достигается за счет того, что на сервере предоставляются средства, позволяющие ограничивать объем загружаемого содержимого, или фильтры, пропускающие лишь ту информацию, которая действительно может потребоваться пользователю мобильного устройства. Для обеспечения поддержки эффективных сценариев при обслуживании мобильных устройств может потребоваться расширение функциональных возможностей тех служб на стороне сервера, которые первоначально предназначались для обслуживания персональных компьютеров. Кроме того, должны быть предусмотрены такие механизмы настройки конфигурационных параметров приложения для его выполнения на серверах, настольных компьютерах и самих мобильных устройствах, при помощи которых пользователи смогут определять свои информационные запросы и настраивать информационные фильтры таким образом, чтобы обеспечивалось выполнение соответствующих требований. Проектирование мобильных приложений далеко не ограничивается физическими границами самих мобильных устройств.
Единообразие стиля интерфейса
С учетом того, что любое мобильное устройство отличается компактностью и самодостаточностью, желание пользователей работать с интерфейсом, который не зависит от характера решаемых с помощью устройства задач, представляются вполне естественными. Каждое мобильное устройство имеет собственный функциональный колорит. Типичное удачно спроектированное приложение воспринимается не как разрозненный набор средств, а как гармоничное расширение возможностей самого устройства
По этой причине при проектировании приложений для мобильных устройств очень важно придерживаться единого стиля. Способы запуска и остановки приложений, перемещения в пределах интерфейса, а также организации диалогов между пользователем и приложениями должны тщательно продумываться отдельно для каждого типа устройств. Пользователи мобильных устройств подсознательно подстраиваются под метафоры пользовательского интерфейса, и любые отклонения от привычных шаблонов доставляют им ощутимые неудобства. Создание привычной рабочей среды много значит и в случае приложений для настольных компьютеров, но в силу разнообразия возможностей, которые предлагаются такими приложениями, они позволяют добиться одной и той же цели несколькими способами (например, при помощи сочетаний клавиш, щелчков мышью, меню и панелей инструментов). В случае же мобильных устройств для решения данной задачи часто имеется только один путь, и пользователь невольно привыкает к одному определенному способу. Гораздо лучше иметь четыре различных версии приложения, каждая из которых соответствует определенной метафоре пользовательского интерфейса конкретного устройства, чем одно общее приложение, которое не может быть интегрировано надлежащим образом ни в одно целевое устройство.
Различия в архитектуре компьютеров
Если воспользоваться аналогией из области архитектуры, то настольные и переносные компьютеры можно уподобить большим усадьбам в сельской местности. Тогда в отношении мобильных устройств можно сказать, что они похожи на отдельные или коммунальные городские квартиры. Каждый из этих типов жилищ предназначен для удовлетворения определенных нужд и выдвигает специфические требования относительно наиболее эффективных способов их использования.
Обычно усадьбы характеризуются крупными размерами, и в них имеется много мест, пригодных для хранения различных вещей. Одни из таких мест находятся неподалеку, тогда как добраться к другим несколько труднее. В усадьбах редко используемые вещи обычно хранятся на чердаках или в подвалах, откуда их можно периодически извлекать по мере того, как в них возникает необходимость.
С другой стороны, в условиях городских квартир мест, пригодных для хранения вещей, значительно меньше. В квартирах хранят вещи, которые должны быть всегда под рукой. Те же вещи, которыми пользуются редко, в квартире не держат. Вместо того чтобы приобретать редко используемые вещи, их часто выгоднее арендовать.
То же самое справедливо и в отношении мобильных устройств. Как оперативная память, так и память для долговременного хранения данных ориентированы на хранение той информации, которая используется чаще всего. Редко используемые данные должны выталкиваться на серверы, откуда их можно будет запросить, когда они потребуются.
В настольных компьютерах ОЗУ и долговременная память разделены. В то же время, в устройствах ОЗУ часто используются и как рабочая память приложений, и как промежуточная или долговременная память. В качестве долговременных хранилищ данных все чаще используется флэш-память, обычно в виде съемных карт памяти.
Некоторые простые подсчеты, касающиеся размеров памятиОбъем ОЗУ современных многофункциональных мобильных устройств достигает 64 Мбайт. ОЗУ такого объема часто разделяются на программное ОЗУ и виртуальную файловую систему. Предположим, что 32 Мбайт такого ОЗУ приходится на файловую систему, предназначенную для хранения всех долговременных данных, с которыми вы работаете (такими данными могут быть фотографии, документы, музыка или другая информация). При этом в совместном распоряжении операционной системы и приложений остается 32 Мбайт. Допустим, что одновременно выполняются пять приложений (не столь уж редкая ситуация), каждое из которых использует примерно одинаковый объем ОЗУ, а сама операционная система использует те же ресурсы, что и отдельное приложение. В результате этого на каждое приложение приходится примерно 5-6 Мбайт ОЗУ. Хотя этот объем памяти и значителен, он далеко не бесконечен. Несколько крупных цифровых фотографий, перенесенных в память, израсходуют большую часть ОЗУ. Многие мобильные устройства располагают значительно меньшими рабочими объемами ОЗУ, а количество одновременно запускаемых приложений в реальных случаях может превышать то, которое мы использовали выше в качестве примера. Доступный на устройстве объем ОЗУ устанавливает абсолютный предел, превышение которого невозможно ни при каких обстоятельствах. Если имеющаяся физическая память устройства истощена, объекты не будут перемещаться в страничный файл, как это было бы в случае настольных компьютеров. Вероятнее всего, приложение израсходует всю доступную память и закончится аварийно.