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