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

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

Код

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

Дизайн

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

Код и дизайн

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

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

Цикл разработки приложений

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

При необходимости следует остановить воспроизведение и удалить прослушиватели для датчиков географического положения и акселерометров. Объект AIR NativeApplication отправляет события активации и отключения. Используйте эти события для управления переходами между активным и фоновым состоянием.

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

Плотность информации

Экраны мобильных устройств имеют меньшие физические размеры, чем экраны настольных компьютеров, однако плотность пикселов (количество пикселей на дюйм) выше. При одном и том же размере шрифта буквы на экране мобильного устройства будут меньше, чем на экране компьютера. Часто необходимо использовать шрифт большего размера, чтобы текст был хорошо читаемым. В общем случае минимальный размер шрифта, который легко читается на экранах мобильных устройств, равен 14 пунктам.

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

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

Ввод текста

На многих устройствах для ввода текста используется виртуальная клавиатура. Виртуальные клавиатуры скрывают часть экрана и зачастую являются крайне громоздкими. Старайтесь избегать использования клавиатурных событий (за исключением программируемых клавишей).

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

Программируемые клавиши

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

Изменение ориентации экрана

Мобильное содержимое можно просматривать с использованием книжной или альбомной ориентации. Предусмотрите поведение приложения при изменении ориентации экрана. Дополнительные сведения см. на веб-странице «Ориентация рабочей области».

Затемнение экрана

При воспроизведении видео AIR не блокирует автоматически затемнение экрана устройства. Для управления переходом устройства в режим энергосбережения используйте свойство systemIdleMode объекта AIR NativeApplication (на некоторых платформах требуется запросить разрешение для работы этой функции).

Входящие звонки

Среда выполнения AIR автоматически приглушает звук, когда поступает входящий вызов или пользователь совершает звонок. В Android в дескрипторе приложения необходимо настроить разрешение READ_PHONE_STATE, если приложение должно воспроизводить звук при работе в фоновом режиме. В противном случае Android не позволяет среде выполнения обнаруживать телефонные вызовы и автоматически приглушать звук. См. раздел «Разрешения Android».

Мишени

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

Размер установочного пакета приложения

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

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

Доступ к файловой системе

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

Одно из последствий отличия файловых систем заключается в том, что не всегда будут доступны ярлыки на общие папки, предоставляемые классом AIR File. Следующая таблица содержит ярлыки, которые можно использовать в Android и iOS.

 

Android

iOS

File.applicationDirectory

Только чтение по URL (не исходный путь)

Только чтение

File.applicationStorageDirectory

Доступно

Доступно

File.cacheDirectory

Доступно

Доступно

File.desktopDirectory

Корневой каталог SD-карты

Недоступно

File.documentsDirectory

Корневой каталог SD-карты

Доступно

File.userDirectory

Корневой каталог SD-карты

Недоступно

File.createTempDirectory()

Доступно

Доступно

File.createTempFile()

Доступно

Доступно

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

Компоненты пользовательского интерфейса

Компанией Adobe разработана специальная версия Flex, оптимизированная для мобильных платформ. Дополнительные сведения об этом см. в разделе Разработка мобильных приложений с использованием Flex и Flash Builder.

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

Ускоренная визуализация графики Stage3D

Начиная с AIR 3.2 профиль AIR для мобильных устройств поддерживает ускоренную визуализацию графики Stage 3D. API-интерфейсы Stage3D в ActionScript представляют собой API низкого уровня, использующие аппаратное ускорение с использованием графического процессора и обеспечивающие дополнительные возможности 2D- и 3D-визуализации. Эти API-интерфейсы низкого уровня предоставляют разработчикам возможность использования аппаратного ускорения графического процессора для значительного улучшения производительности. Также можно использовать игровые станции, которые поддерживают API-интерфейсы Stage3D в ActionScript.

Дополнительные сведения см. в документе Gaming engines, 3D, and Stage 3D (Игровые станции, 3D и Stage3D).

Cглаживание видео

Для повышения производительности сглаживание видео в среде AIR отключено.

Собственные функции

Многие мобильные платформы предоставляют функции, которые пока не доступны через стандартный API-интерфейс AIR. Как и в AIR 3, вы можете расширить AIR, добавив свои библиотеки собственных кодов. Такие библиотеки расширений позволят получить доступ к функциям, доступным в операционных системах, или даже на определенных устройствах. Собственные расширения могут быть написаны на языке C в iOS и на Java или C в Android. Дополнительные сведения по разработке собственных расширений см. в разделе Представление собственных расширений для Adobe AIR.