Разработка успешного Android-приложения: принципы, требования

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

Одна из целей настоящей статьи — объяснить преимущества разработки родных приложений на языке Java для платформы Android над другими способами доставки контента на мобильных устройствах.


Оглавление статьи[Показать]


Требования к приложениям для мобильных телефонов

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

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

 

Проектирование приложений для платформы Android

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

Для тех, кто только начал изучать программирование под платформу Android, порекомендую посмотреть моб статью о создании приложения Android на реальном примере.

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

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

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

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

Приложение будет сконструировано таким образом, чтобы оно взаимодейство­вало с тонким слоем веб-служб RESTful, которые предоставляют данные в формате JSON. Этот интерфейс будет таким же, как тот, который используется Apple iPhone, а также приложениями, написанными для других платформ.

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

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

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

Размер и разрешение экрана. Чтобы классифицировать устройства по типу эк­рана, платформа Android определяет две характеристики для каждого устройства: размер экрана (физические размеры экрана) и разрешение экрана (физическая плот­ность пикселей на экране, или dpi (количество точек на дюйм)). Чтобы упростить все типы конфигураций экрана, система Android обобщает их на группы, которые упрощают их настройку.

При разработке приложения проектировщик должен определить подходящие размер и разрешение экрана.

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

Конфигурации ввода. Многие устройства предоставляют различные типы поль­зовательских механизмов ввода, такие как аппаратная клавиатура, трекбол или пятипозиционная навигационная панель. Если вашему приложению требуется опреде­ленный вид аппаратного обеспечения для ввода данных, необходимо объявить его в файле AndroidManifest.xml и помнить, что на сайте Google Play Store ваше при­ложение не будет отображаться на устройствах, которым не хватает этой функции. Однако для приложения редко требуется определенная конфигурация ввода.

Особенности устройства. Существует множество аппаратных и программных функций, которые могут или не могут существовать на данном устройстве на базе Android, таком как камера, датчик освещенности, механизм Bluetooth, определенная версия OpenGL или качество сенсорного экрана. Вы никогда не должны предпола­гать, что определенная функция доступна на всех устройствах на базе Android (кро­ме доступности стандартной библиотеки Android).

Усовершенствованное приложение для Android будет использовать два типа меню, предоставляемые платформой Android, в зависимости от обстоятельств.

  • Командное меню содержит основные функции, которые применяются глобаль­но к текущей активности или запускают связанную с ним активность. Командное меню обычно появляется, когда пользователь нажимает аппаратную кнопку, часто обозначаемую Menu, или программную кнопку меню на панели действий Action Ваг (вертикальный стек из трех точек).
  • Контекстное меню содержит вспомогательные функции для выбранного в данный момент элемента. Контекстное меню обычно вызывается пользовате­лем, выполняющим длительное нажатие (нажатие и удержание) на элементе. Как и в меню команд, выбранная операция может выполняться либо в теку­щей, либо в другой активности. Контекстное меню предназначено для любых команд, которые применяются к текущему выбору.

Команды в контекстном меню, которые появляются при длительном нажатии на элемент, должны дублироваться в активности, которая запускается при обычном на­жатии на этот элемент.

Итак, сформулируем самые общие правила.

  • Сначала включите в меню наиболее часто используемые операции.
  • В качестве кнопок на экране должны отображаться только самые важные ко­манды, остальные включите в меню.
  • Подумайте о перемещении элементов меню на панель действий Action Ваг, если ваше приложение его использует.

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

В нашем приложении для платформы Android будет широко использоваться ме­ханизм намерений (Intent), разработанный компанией Google для передачи данных между объектами класса Activity. Намерения не только используются для передачи данных между представлениями в одном приложении, но также позволяют переда­вать данные или запросы внешним модулям. Таким образом, большое количество функций может быть адаптировано приложением Android с помощью встроенных функций из других приложений, вызываемых вызовами намерений. Это упрощает процесс разработки и обеспечивает общий внешний вид и функциональность во всех приложениях.

Каналы данных и форматы каналов. Нецелесообразно напрямую взаимодейство­вать с любым источником данных, предоставленным третьей стороной. Например, для прямой связи вашего мобильного приложения с базой данных на вашем сервере было бы неплохо использовать драйвер JDBC третьего типа. Обычным подходом яв­ляется сбор данных из нескольких источников в потенциально нескольких форматах посредством промежуточного программного обеспечения, которое затем передает данные в приложение через ряд API-интерфейсов веб-служб RESTful в виде потоков данных JSON.

Как правило, данные предоставляются в таких форматах, как XML, SOAP, или в виде какого-либо другого представления, связанного с XML. Форматы наподобие SOAP являются тяжеловесными, и поэтому передача данных с вспомогательных сер­веров в этом формате значительно увеличивает время разработки, поскольку ответс­твенность за преобразование этих данных во что-то более управляемое возлагается на приложение или на объект, находящийся на сервере промежуточного програм­много обеспечения.

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

 

Вас заинтересует / Intresting for you:

Использование Google Analytics...
Использование Google Analytics... 1824 просмотров Семен Thu, 07 Mar 2019, 16:45:04
Запросы разрешений от системы ...
Запросы разрешений от системы ... 4449 просмотров dbstalker Sun, 24 Feb 2019, 06:24:29
Как научиться создавать прилож...
Как научиться создавать прилож... 2010 просмотров Antoni Fri, 12 Jul 2019, 06:34:30
Как контролировать запуск прил...
Как контролировать запуск прил... 2328 просмотров Семен Fri, 04 Oct 2019, 16:54:20
Войдите чтобы комментировать