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

Оглавление

Введение

1.Теоритическая часть. Разбор основных терминов

2. Практическая часть. Создание приложения

Список используемой литературы

Введение

Мобильные приложения становятся популярнее с каждым днём, так как у большинства людей имеется мобильное устройство будь то смартфон или планшет. По статистике видно, что наличие смартфона преобладает наличие компьютера у обычных людей. Местами смартфоны даже вытесняют компьютеры – на телефоны давно уже выпускают не только игры, но и даже профессиональные программы, такие как редакторы видео и аудио, редакторы изображений, существуют даже IDE для смартфонов, в которых можно разрабатывать полноценное ПО. В связи с такой популярностью смартфонов, не малая доля разработчиков уходит в сферу мобильной разработки, так как это в первую очередь очень выгодная отрасль, так как охватывает большой круг потребителей. Зачастую приложения создаются не простыми, а сложными – то есть приложения имеют не одно окно приложения, а несколько, которые при этом активно передают данные между собой. Так как подавляющее большинство приложений содержит более одного окна, то очень важно понимать, как это работает и как устроены такие приложения.

1.Теоритическая часть. Разбор основных терминов.

Для разработки мобильных приложений используются собственные IDE:

1.Eclipse;

2.IntelliJ Idea;

3.Android Studio.

Данные IDE очень популярны, так как предлагают очень большой функционал разработки. Самая популярная IDE на сегодняшний день считается AndroidStudio. Главной отличительной чертой всех IDE можно считать функционал и скорость работы, а также ресурсоёмкость. О функционале – функционал всех IDE вполне достойный, но есть IDE, которые могут предоставлять более тонкие и глубокие инструменты и функции, чем другие. Скорость работы зависит от ресурсоёмкости IDE – чем выше потребление ресурсов IDE, тем медленнее оно будет работать на слабых и средних компьютерах.

Мобильные приложения создаются под конкретный API. API – это описание способов взаимодействия одной программы с другими.

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

Активность – это одна чётко определённая операция, которую может выполнять пользователь. Активность программируются на языке Java имеет расширение .java

Макет описывает внешний вид экрана. Макеты создаются в виде файла разметки .xml и сообщает андроид, где располагаются те или иные объекты экрана.

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

В проекте приложения есть следующие папки – manifests, java и res. В папке manifests хранится конфигурация нашего приложения – всякого рода правила и так далее. В папке java хранится java-код – код активностей и прочих классов. В папке res хранятся ресурсы приложения – изображения, строки, цвета и так далее.

Активности состоят по большей части из методов.
Методы в Java — это законченная последовательность действий (инструкций), направленных на решение отдельной задачи.
В методе часто используются переменные. Переменная в Java — это контейнер, в котором может храниться некоторое значение данных для дальнейшего использования в программе. Для описания объекта в программах и его свойств используются классы.

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

2. Практическая часть. Создание приложения.

Реализация приложения будет происходить в IDE Android Studio.

Создаём проект. Создадим две активности MainActivity.java и ScoreActivity.java. Автоматически создаются два макета activity_main.xml и activity_score.xml. Начнём реализацию приложения с настройки activity_main.xml. В макет добавляются и расставляем снизу четыре элемента TextView, на которых будут располагаться варианты ответов. Также зададим им цвет и размер через соответствующие параметры – color background и layout_width и layout_height. Добавляем ещё два TextView, которые будут отображать счётчик и таймер. Также добавляем ещё один TextView, который будет показывать вопрос. Отредактируем визуальную составляющую добавленных TextView (рис. 1).

Рис. 1. Внешний вид приложения

После работы с макетом нужно перейти в главную активность, создать переменные и проинициализировать их:

private TextView textViewQuestion;

private TextView textViewTimer;

private TextView textViewScore;

private TextView textViewOpinion0;

private TextView textViewOpinion1;

private TextView textViewOpinion2;

private TextView textViewOpinion3;

textViewTimer = findViewById(R.id.textViewTimer);

textViewOpinion0 = findViewById(R.id.textViewOpinion0);

textViewOpinion1 = findViewById(R.id.textViewOpinion1);

textViewOpinion2 = findViewById(R.id.textViewOpinion2);

textViewOpinion3 = findViewById(R.id.textViewOpinion3);

textViewQuestion = findViewById(R.id.textViewQuestion);

textViewScore = findViewById(R.id.textViewScore);

Добавим ещё переменные, которые будут использоваться в генерации вопросов – переменная вопроса, ответа и позиции правильного ответа, булевая переменная будет хранить знак выражения, переменные максимального значения и минимального, которые отвечают за диапазон генерации чисел:

private String question;

private int rightAnswer;

private int rightAnswerPosition;

private boolean isPositive;

private int min = 5;

private int max = 30;

Далее создадим метод, который будет генерировать вопрос (рис. 2). В данном методе используются методы Match.random для создание случайных величин. Условие if () отвечает за вывод на экран вопроса. Вопрос может содержать как знак сложения, так и знак вычитания. Для того, чтобы выводился верный знак выражения, условие проверяет. Если переменные a и b складываются, то в вопросе для пользователя будет выводиться два числа со знаком сложение. Если же переменные a и b вычитаются, то в вопросе будет указан знак вычитания. После условия следует метод setText(), с помощью которого в элемент TextView будет передаваться строка с вопросом. После следует непосредственная случайная генерация позиции правильного ответа с помощью метода Math.random.

Рис. 2. Метод генерации вопросов

Второй метод будет генерировать неправильные ответы и возвращать их в варианты выбора ответа (рис. 3).

Рис. 3. Метод генерации неправильных ответов

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

Создаём метод нажатия на кнопки ответов и добавляем его ко всем кнопкам в файле activity_main.xml:

android:onClick=»Answer»

Далее создадим метод playNext, который будет отвечать за генерацию вопросов и набора очков (рис. 4). В данном методе идёт проверка – если был выбран элемент с правильным ответом , то он передаётся в виде строки в строку с очками. В строке String score идёт прибавление очков, если был выбран правильный ответ, а также ведётся счётчик пройденных вопросов. Очки отображаются с помощью метода setText() в соответствующем textViewScore.

Рис. 4. Метод playNext

Распишем метод нажатия на кнопку (рис. 5). Данный метод представлен получением и передачей вопроса в элемент TextView, проверкой полученного ответа от пользователя (нажатия на ответ), вывод всплывающей подсказки – верно или не верно, а также повторный запуск метода playNext.

Рис. 5. Метод нажатия на вариант ответа.

Создадим новую активность, в которой будет показываться результат текущий и лучший, а также повторный запуск приложения. В данной активности нужно добавить два элемента – TextView и Button. В первый будет выводиться результат, а второй позволит запустить приложение заново. Код новой активности представляет из себя получение Intent от предыдущей активности, из которого он принимает результаты (рис. 6). В методе onCreate осуществляется инициализация элемента TextView. Далее идёт работа с Intent — с помощью метода get получается Intent главной активности. Далее идёт получение данных очков. Получаются текущие очки пользователя. Далее идёт проверка – если текущий ответ больше, максимального, то максимальный оновляется. Если же текущий результат меньше или равен максимальному, то изменения максимального не происходят. Через метод setText TextView получает данные результата и выводит его. Также создаётся метод кнопки, который позволяет перейти снова к главной активности:

public void onClickStartNewGame(View view) {

Intent intent = new Intent(this, MainActivity.class);

startActivity(intent);

}

Рис. 6. Вывод статистики игры в отдельной активности

В первой активности создадим метод перехода между активностями по истечению таймера (рис. 7). Тут просто – если значение таймера равно нулю, то через Intent идёт переход в следующую активность, а именно в активность с результатом.

Рис. 7. Метод onFinish

Далее создаём методы для работы таймера (рис. 8 и 9). В методе onTick получаются данные значения таймера. Если у таймера остаётся значение меньше 10 секунд, то цвет элемента, в котором находится таймер, меняется на красный. В методе getTimer принимаются значения таймера в наносекундах, далее переводятся в секунды и выводятся в виде строки формата минуты-секунды.

Рис.8. Метод onTick

Рис. 9. Метод getTimer

Приложение готово. Можно проверить результат (рис. 10).

Рис. 10. Результат работы приложения

Список используемой литературы

  1. Семченко Р.В., Еровлев П.А. Создание приложения для смартфона на основе сайта с помощью AndroidStudio // Постулат. 2019. № 6 (44). С. 10.
  2. Попова М.В., Лысак Т.Р. Использование среды разработки Androidstudio для разработки android-приложений // В сборнике: СОЦИАЛЬНО-ЭКОНОМИЧЕСКИЕ И ИНФОРМАЦИОННЫЕ ПРОБЛЕМЫ УСТОЙЧИВОГО РАЗВИТИЯ РЕГИОНА. Международная научно-практическая конференция. 2015. С. 158-160.
  3. Михайлов С.Ю., Иванов С.О. разработка мобильного приложения «Фитнес-дневник» под ОС ANDROID // В сборнике: Информатика и вычислительная техника. Сборник научных трудов. Чебоксары, 2018. С. 152-155.
  4. Наумов Р.В. Android программирование. Начало программирования // Academy. 2016. № 1 (4). С. 46-48.
  5. Макаров В.И. Программное обращение к службам android с использованием компонента telephony manager // Мировая наука. 2018. № 7 (16). С. 67-69.
  6. Тухватуллин И.Д. Популяризация android – приложений // в сборнике: научные исследования и разработки. Сборник статей Международной научно-практической конференции. Ответственный редактор: Сукиасян Асатур Альбертович. 2015. С. 65-66.
  7. Кобзев О.В., Забелин Л.Ю. Разработка приложения для android на java // В сборнике: Современные проблемы телекоммуникаций. Материалы Российской научно-технической конференции. 2018. С. 445-449.

Leave a Comment

+ 59 = 68