вторник, 19 февраля 2013 г.

Практические рекомендации по написанию мобильных приложений

Не так давно App Quality Alliance (AQuA) предоставил на своем сайте детальную подборку рекомендаций по разработке приложений для мобильных устройств. При этом AQuA не делает акцент на какой-либо конкретной платформе, будь то – iOS, Android или Windows Phone, рекомендации будут применимы в равной степени для всех современных мобильных операционных систем.
Документ покрывает большое количество вопросов и ньюансов, таких, как использование сети, рекомендации относительно повышения производительности и увеличения срока жизни батареи. Разумеется, данный список носит исключительно рекомендательный характер, однако, соблюдение его пунктов позволит создавать более надежные и удобные в использовании приложения. Ниже приведена краткая выборка ключевых моментов, рассмотренных в руководстве.

Общие рекомендации

  • Приложение должно запрашивать только те права у системы, которые необходимы для работы основного функционала. Особенно это касается критических для пользовательской безопасности прав, например, на чтение контактов или на выполнение платных операций. Если для реализации небольших дополнительных улучшений нужны такие права – правильнее отказаться от их реализации.
  • Приложение должно уведомлять пользователя о всех действиях, которые отнимают время более чем на 5 секунд (показ прогресс-бара, splash-screen и т. п.)
  • Если приложение сохраняет данные в памяти смартфона – позаботьтесь про мониторинг и оповещения пользователя о нехватке свободного места в памяти.
  • В случае использования внешней памяти – следите за событиями извлечения (подключения) SD-карты.
  • Если приложение использует аппаратные средства (акселерометр, камеру, GPS и т. д.) – позаботьтесь об их своевременном выключении. Постарайтесь минимизировать время использования датчиков. По возможности используйте сторонние источники координат (напр. Passive provider для Android).
  • Если приложение собирает или отправляет какие-либо персональные данные – обязательно уведомляйте пользователя, какие именно данные используются и куда отправляются. Позаботьтесь о безопасности хранения и передачи таких данных (например, используйте шифрование).

Рекомендации по разработке UI

  • Если платформа поддерживает отдельные кнопки для навигации (Back, Home, Menu и т. д.) – используйте их. Не переопределяйте поведение стандартных органов управления.
  • Не затачивайте приложение под параметры конкретного устройства: размер или разрешение экрана, ориентацию, средства ввода. Приложение должно быть готово к корректной работе на всех устройствах, которые входят в целевую аудиторию.
  • Агрегируйте уведомления, если это позволяет используемая мобильная платформа. Уведомления должны показывать только ту информацию, которая относится к основному функционалу приложения. Не используйте временные уведомления для входящих событий (например: телефонный вызов, SMS-сообщение).
  • Используйте альтернативные наборы ресурсов для получения лучшего интерфейса на устройствах с различными параметрами экрана (размер, разрешение, ориентация).
  • На устройствах с большой диагональю и dpi, списки и меню не должны занимать всю ширину экрана. При отображении текста показывайте не более 100 (оптимально – 50 - 75) символов в строке.
  • При использовании виджетов домашнего экрана, убедитесь в корректности его отображения на устройствах с различной конфигурацией экрана.
  • При использовании сенсорных экранов без поддержки стилуса, позаботьтесь о соблюдении требований, указанных в гайдлайнах для соответствующей платформы (размер иконок, элементов управления и т. д.)
  • Задержки более 110 – 200 мс заметны пользователю. Старайтесь проектировать приложение так, чтобы минимизировать это значение.
  • Показывайте контент столько времени, сколько необходимо для целостного его восприятия (например, при использовании слайд-шоу).

Работа с сетью

  • Все операции с сетью не должны блокировать интерфейс пользователя. Выполняйте их в отдельном потоке.
  • Рекомендуется использовать HTTP 1.1 с конвейеризацией запросов.
  • Избегайте периодических обращений приложения к сети. Группируйте данные для отправки в пакеты, и отправляйте их, по возможности, реже.
  • Избегайте создания дополнительных и одновременных сетевых соединений. По возможности используйте уже открытое соединение для передачи как можно большего количества данных. После передачи обязательно закрывайте соединение.
  • Используйте кэширование данных, при необходимости подгружая требуемый контент из сети. При этом, обязательно позаботьтесь о времени жизни кэша, по его истечении обновляйте или удаляйте сохраненные данные.
  • По возможности используйте Wi-Fi соединение вместо GPRS/3G.
  • Контролируйте соединение с сетью, сообщайте пользователю о разрыве соединения.

Более детально с рекомендациями можно ознакомиться в официальном документе. Дополнительные подборки рекомендаций можно найти на сайтах AT&T и GSMA.

Автор: Сергей Макаренко

Комментариев нет:

Отправить комментарий