ПЗ (1194855), страница 5
Текст из файла (страница 5)
Рисунок 15 – Настройка значка приложения в окне Asset Studio
2.3.3 Графическая оболочка интерфейса
Пользовательский интерфейс (User Interface Design) включает в себя определенный набор графически оформленных технических элементов (кнопки, флажок, селекторы и другие поля) [19, 20]. Его задача – помочь пользователю организовать взаимодействие с программой/сайтом. На сегодняшний момент существуют некоторые правила UI дизайна:
– организованность элементов интерфейса;
– группировка элементов интерфейса (объединение в группы логически связанных элементов);
– выравнивание элементов интерфейса;
– единый стиль элементов интерфейса;
– наличие свободного пространства (позволяет разграничивать информационные блоки, сосредотачивая внимание на чем-то одном).
Разработанный по всем правилам пользовательский интерфейс значительно повышает эффективность ресурса и дает ему конкурентные преимущества [23].
За основу дизайна окон приложения было взято самое распространённое соотношение сторон Android устройства – 16:9. Практически каждое окно приложения содержит панель инструментов. В соответствии с выбранной цветовой палитрой и сеткой материального дизайна, был разработан дизайн набора панелей инструментов и строки состояния (рисунок 16).
Рисунок 16 – Набор панелей инструментов
Используя такие компоненты как панель инструментов, вкладки, список, флажок, разделители, подзаголовки, иконки информации, кнопки было разработано главное окно (рисунок 17).
а) б)
Рисунок 17 – Главный экран приложения: а) раздел «стены»; б) раздел «полы»
Для того чтобы информация, размещенная на экране устройства, воспринималась максимально эффективно следует применять отступы, которые прописаны в руководстве материального дизайна. Также при разработке следует учитывать, что потенциальный пользователь будет воспринимать информацию слева на право и в соответствии с этим размещать компоненты интерфейса страницы. Так как маркеры списков принято располагать слева от элемента списка, то и флажок выбора был размещен аналогично. Дополнительную же информацию следует размещать по правой стороне от элемента.
Также были разработаны окна с всплывающими элементами, такие как меню (рисунок 18, а) и диалоговое окно (рисунок 18, б). Одним из ключевых принципов материального дизайна является глубина, для отображения глубины необходимо добавляет соответствующие эффекты, такие как тень и затемнение «нижнего» экрана.
а) б)
Рисунок 18 – Всплывающие элементы: а) меню; б) диалоговое окно
При разработке дизайна интерфейса пользователя применялся графический редактор Adobe Photoshop [21]. Все макеты окон разрабатываемого приложения представлены в приложении Б.
-
РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ В ANDROID STUDIO
Для реализации мобильного приложения выбрана среда разработки Android Studio. Разработка приложений для Android ведется на языке Java. Для компиляции приложения необходимо установить дополнительное программное обеспечение – Java Development Kit (JDK). JDK – комплект разработчика приложения на языке Java, включающий компилятор, стандартные библитеки классов, примеры, документацию и исполнительную систему Java Runtime Environment (JRE – минимальная реализация виртуальной машины, в которой запускается и выполняется программный код на Java) [22, 23].
-
Обзор среды разработки Android Studio
Android Studio является официальной интегрированной средой разработки (IDE) для разработки приложений для Android, основанной на IntelliJ IDEA [24]. В дополнение к мощным редакторам и инструментам разработчика IntelliJ, Android Studio предлагает еще больше возможностей, которые повышают производительность при создании приложений для Android, таких как:
– гибкая система сборки на основе Gradle;
– быстрый и многофункциональный эмулятор;
– единая среда, в которой вы можете разрабатывать для всех Android-устройств;
– мгновенный запуск для изменения изменений в рабочем приложении без создания нового APK;
– шаблоны кода и интеграция GitHub, чтобы помочь вам создавать общие функции приложения и импортировать пример кода;
– обширные инструменты и средства тестирования;
– инструменты Lint для отслеживания производительности, удобства использования, совместимости версий и других проблем;
– поддержка C ++ и NDK;
– встроенная поддержка облачной платформы Google, что позволяет легко интегрировать Google Cloud Messaging и App Engine.
-
Структура проекта
Каждый проект в Android Studio содержит один или несколько модулей с файлами исходного кода и файлами ресурсов. Типы модулей включают:
– модули приложений для Android;
– библиотечные модули;
– модули Google App Engine
По умолчанию Android Studio отображает ваши файлы проектов в представлении проекта Android, как показано на рисунке 19. Это представление организовано модулями для быстрого доступа к исходным файлам вашего проекта [28].
Рисунок 19. Файлы проекта в режиме Android
Все файлы сборки отображены на верхнем уровне под Gradle Scripts, и каждый модуль приложения содержит следующие папки:
– manifestests: содержит файл AndroidManifest.xml;
– java: содержит файлы исходного кода Java, включая тестовый код JUnit;
– res: Содержит все ресурсы без кода, такие как XML-макеты, строки пользовательского интерфейса и растровые изображения.
Основные особенности - реализована возможность вёрстки в реальном времени, доступно множество вариантов размеров и разрешений экранов. Присутствует раздел справки. Встроены инструменты улучшения качества приложений и монетизации. Имеются инструменты для отслеживания эффективности рекламных объявлений. Добавлено средство взаимодействия с бета-тестерами. И многое другое.
-
Создание экранов мобильного приложения
В соответствии с созданным прототипом (приложение Б) необходимо разработать интерфейс мобильного приложения. Интерфейс включает в себя несколько экранов. Для их реализации необходимо несколько классов Activity.
Класс представляет Activity собой визуальную активность приложения. Класс отвечает за создание окна, с которым взаимодействует с пользователем, например, он может набрать номер телефона, сделать фото, отправить письмо и т.д. Каждому классу присваивается окно для прорисовки соответствующего пользовательского интерфейса. Интерфейсы именно этих окон создаются на основе прототипа, разработанного ранее.
Интерфейс класса называется layout и имеет расширение .xml. Разработчику доступно два режима работы с настройкой интерфейса: design и text. Режим работы design (рисунок 20) позволяет разработчику настроить внешний вид мобильного приложения интерактивно, то есть используя существующие примитивы, доступные в Android Studio: виджеты, текстовые блоки, контейнеры и другие элементы дизайна. При добавлении или изменении элементов интерфейса произойдет автоматическая запись в текстовом представлении интерфейса класса.
Рисунок 20 – Режим работы «design»
Режим текстового изменения интерфейса (рисунок 21) даёт разработчику возможность создавать интерфейс приложения привычным ему способом – непосредственным изменением кода [34].
Рисунок 21 – Режим работы «text»
Такой способ работы позволяет настроить мелкие детали интерфейса или задать какие-либо параметры элементам интерфейса [33, 32].
-
Жизненный цикл приложения
В операционной системе Android все мобильные приложения имеют строго определенный системой жизненный цикл. Каждый раз при запуске какого-либо мобильного приложения система дает ему наивысший приоритет. Это возможно благодаря тому, что каждое приложение запускается в виде отдельного процесса. Например, благодаря этому, при работе с приложениями система не блокирует входящие звонки. После прекращения работы работы с приложением система, система освобождает ресурсы, переводит приложение в разряд низкоприоритетного и закрывает его.
Все объекты Activity, которые есть в приложении, управляются системой в виде стека Activity, который называется back stack. При запуске новой Activity она помещается поверх стека и выводится на экран устройства, пока не появится новая Activity. Когда текущая Activity заканчивает свою работу (например, пользователь уходит из приложения), то она удаляется из стека, и возобновляет работу та Activity, которая ранее была второй в стеке [32].
После запуска Activity проходит через ряд событий, которые обрабатываются системой и для обработки которых существует ряд обратных вызовов.
Рисунок 22 – Взаимосвязь обратных вызовов
Взаимосвязь между всеми обратными вызовами можно представить схематично (рисунок 22).
3.4.1 Метод onCreate()
Данный метод вызывается при создании или перезапуске Activity. Этот метод является обязательным элементом. В нем производится первоначальная настройка Activity. В частности, создаются объекты визуального интерфейса. Метод onCreate() принимает объект Bundle, который содержит прежнее состояние Activity, если оно было сохранено. В случае, если Activity была создана заново, то данный объект имеет значение null.
3.4.2 Метод onStart()
В методе onStart() осуществляется подготовка Activity на экран устройства. Как правило, этот метод не требует переопределения, а всю работу производит встроенный код. Сопровождается вызовом метода onResume(), если активность получает передний план, или вызовом метода onStop(), если становится скрытой.
3.4.3 Метод onResume()
При вызове метода onResume Activity переходит в состояние Resumed, а пользователь может с ней взаимодействовать. Activity остается в этом состоянии, пока она не потеряет фокус, например, вследствие переключения на другую Activity или просто из-за выключения экрана устройства.
3.4.4 Метод onPause()
Данный метод может быть вызван системой в том случае, если пользователь переходит к работе с другой Activity. Происходит свертывание активности. Сохраняются незафиксированные данные. Для увеличения производительности системы останавливается воспроизведение видео, аудио, анимации. Если пользователь решит вернутся к данной Activity, то система вызовет метод onResume() и Activity снова появится на экране. Однако если для работы активных приложений потребуется больше памяти, система может вызвать метод onStop().
3.4.5 Метод onStop()














