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