Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП / ООП / ры_приложений_полная_книга.pdf
Скачиваний:
500
Добавлен:
18.02.2017
Размер:
7.08 Mб
Скачать

24

Проектирование мобильных приложений

Обзор

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

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

Рис. 41

Типовая структура мобильного приложения

Как правило, в слое представления мобильного приложения располагаются компоненты пользовательского интерфейса и также, возможно, компоненты логики представления. Бизнес-слой, если таковой имеется, обычно включает компоненты бизнес-логики, все компоненты бизнес-процесса и бизнес-сущностей, необходимые приложению, и фасад, если он используется. В слое доступа к данным находятся компоненты доступа к данным и агентов сервисов. Чтобы сократить объем занимаемой приложением памяти устройства, мобильные приложения обычно используют менее жесткие подходы к разделению на слои и меньшее число компонентов. Более подробно многослойный дизайн рассматривается в главе 5, «Рекомендации по проектированию многослойных приложений». Больше сведений о компонентах каждого слоя можно найти в главе 10, «Рекомендации по проектированию компонентов».

Общие принципы проектирования

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

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

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

Определите, какие типы устройств будут поддерживаться. При выборе поддерживаемых типов устройств обратите внимание на размер и разрешение экрана, характеристики производительности ЦП, объем памяти и хранилища, а также доступность среды разработки. Кроме того, учтите требования пользователей и ограничения организации. Может потребоваться специальное оборудование, такое как глобальная система определения местоположения (global positioning system, GPS) или камера, что может иметь влияние не только на тип приложения, но также на выбор устройства.

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

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

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

1 Так как его просто нет (прим. научного редактора).

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

Учитывайте ограничения, налагаемые ресурсами устройства, такие как время работы батареи, объем памяти и частота процессора. Каждое проектное решение должно учитывать ограничения ЦП, памяти, емкость хранилища и время работы батареи мобильного устройства. Как правило, первостепенным ограничивающим фактором в мобильных устройствах является время работы батареи. Подсветка, чтение и запись в память, беспроводное соединение, специальное оборудование и частота процессора – все эти аспекты оказывают влияние на общее энергопотребление. При недостаточном объеме доступной памяти операционная система Windows Mobile может попросить закрыть приложение или пожертвовать кэшированными данными, что приводит к снижению скорости выполнения программы. Оптимизируйте приложение, чтобы снизить его энергопотребление и объем занимаемой им памяти, не забывая при этом о производительности.

Специальные вопросы проектирования

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

Аутентификация и авторизация

Кэширование

Сетевое взаимодействие

Управление конфигурацией

Доступ к данным

Особенности устройств

Управление исключениями

Протоколирование

Портирование приложений

Управление энергопотреблением

Синхронизация

Тестирование

Пользовательский интерфейс

Соседние файлы в папке ООП