Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Рисунок 12. Жизненный цикл Service

2.5 Разработка структуры ПО

При разработке приложения были использованы следующие классы:

1.  MainActivity;

2.  AddNewPlaceActivity;

3.  MapsActivity;

4.  SettingsActivity;

5.  BackgroundService;

6.  Profile.

Рисунок 13. Дерево классов

Класс MainActivity является главной активностью. В данном классе создается метод получения координат из FusedLocationProviderApi, переход к AddNewPlaceActivity, MapActivity и SettingsActivity, а также запуск сервиса BackgroundService.

Запуск приложений происходит с помощью намерения (Intent). Intent — механизм для описания одной операции (например, открыть фотографию, сделать звонок). В Android многие операции происходят через намерения. Также, через намерения можно передавать данные, которые затем считываются при помощи BroadcastReceiver.

BroadcastReceiver — один из важнейших компонентов при создании приложений для Android. Это компонент для получения внешних событий и реакции на них. Но самостоятельно Broadcast Receiver не выполняет никаких действий, а передает сигнал дальше, например, выводит уведомление.

Рисунок 14. Пример получения информации при помощи BroadcastReceiver

В классе AddNewPlaceActivity создается JSON файл, содержащий в себе профили, созданные пользователем в данной активности.

Класс MapActivity содержит в себе карту Google Map, отображающую текущее местоположение пользователя и метки, полученные из JSON файла.

Класс SettingsActivity обеспечивает пользователю выбор настроек для выбора способа оповещения и интервала обновления данных о местонахождении.

НЕ нашли? Не то? Что вы ищете?

BackgroundService обеспечивает обработку поступающих координат в фоновом режиме.

2.6 Разработка геолокационного модуля

Для работы с FusedLocationProviderApi необходимо подключиться к сервисам Google Play.

Рисунок 15. Подключение к сервисам Google Play

После того, как приложение подключилось к GooglePlay Services, задаются параметры для запроса текущего местоположения.

Рисунок 16. Создание параметров получения координат

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

Далее, осуществляются запросы координат долготы и широты.

Рисунок 17. Запуск получения координат

После этого, в методах onLocationChanged и onConnected получаем координаты и отправляем их на обработку в BackgroundService.

Рисунок 18. Метод onConnected

Рисунок 19. Метод onLocationChanged

Рисунок 20. Создание и запуск сервиса, работающего в фоновом режиме

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

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

2.7 Разработка модуля создания пользовательских настроек

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

·  Настройки громкости телефона:

o  Silent — сигналы отсутствуют полностью;

o  Vibrate — звуковые сигналы отсутствуют, включен вибровызов;

o  Loud — звуковые сигналы полностью включены.

·  Настройки беспроводных сетей. При необходимости, пользователь может задать выключение WiFi при применении настроек.

Затем, пользователь должен выбрать метод получения координат для создания профиля: от FusedLocationProviderAPI или через сервис геокодирования.

Далее, создается и сохраняется в память телефона структура JSON, включающая в себя:

·  Название профиля;

·  Массив координат;

·  Массив настроек.

Рисунок 21. Создание и сохранение файла с настройками

Рисунок 22. Создание массива профилей

Рисунок 23. Создание массива координат

Рисунок 24. Создание массива настроек

2.8 Разработка модуля автономной работы

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

2.9 Разработка окна настройки приложения

Класс SettingsActivity унаследован от родительского класса PreferenceActivity и описывает создание различных параметров, необходимых для работы приложения.

Настройки являются важной частью Android приложения. Со стороны разработчика очень важно — позволять пользователям изменять настройки приложения, в зависимости от их предпочтений.

Существует два способа создания настроек: через создание файла preference_settings. xml в директории res/xml, или задавать настройки из кода. В данной работе был использован первый метод.

Элементы настроек имеют следующие атрибуты:

·  android:key — ключ, по которому в дальнейшем можно получить значение настройки;

·  android:title — заголовок элемента настройки;

·  android:summary — описание элемента настройки;

·  android:defaultValue — значение настройки по умолчанию.

Доступные типы элементов настроек:

·  CheckBoxPreference — флаговая кнопка, возвращающая значение true или false;

·  ListPreference — группа переключателей, из которых быть выбран может только один;

·  EditTextPreference — поле ввода, возвращающее строку;

·  RingtonePreference — группа переключателей с выбором рингтона;

·  Preference — настройка, работающая как кнопка;

·  PreferenceScreen — экран с настройками. Один PreferenceScreen может вмещать в себя другой, тогда открывается новое окно с настройками;

·  PreferenceCategory — категория настроек.

Настройки приложения хранятся в структуре Preference. Приложение автоматически создает файл в своей папке и хранит простые данные в виде пары «ключ-значение».

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

2.10 Разработка пользовательского интерфейса. Прототипирование

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

Проектирование интерфейса производилось при помощи приложения для прототипирования пользовательских интерфейсов FluidUI.

FluidUI — мощный онлайн-конструктор, с помощью которого можно быстро создать макет интерфейса приложений для iPhone, iPad, Android, Windows Phone.

Основные достоинства FluidUI:

1.  Экономия времени. FluidUI позволяет за короткое время набросать эскиз интерфейса и сразу же протестировать его на мобильном устройстве.

2.  Оптимизация процесса проектирования. Сервис дает возможность разбить работу на несколько этапов, что позволяет сокращать сроки разработки приложения.

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

Также следует отметить плюсы данного сервиса как для клиента, так и для программиста.

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

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

Рисунок 25. Прототип пользовательского интерфейса

2.11 Разработка пользовательского интерфейса. Верстка

Для верстки приложений для Android существует пять стандартных типов:

1.  AbsoluteLayout. Каждый элемент верстки будет иметь абсолютную позицию относительно верхнего левого угла экрана.

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

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5