Программирование мобильных устройств. Ч.1. Учебно-методическое пособие
.pdfМинистерство цифрового развития, связи и массовых коммуникаций Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Сибирский государственный университет телекоммуникаций и информатики» (СибГУТИ)
У. В. Осипова, И. В. Нечта
Программирование мобильных устройств
Учебно-методическое пособие Часть 1
Новосибирск
2024
1
УДК 004.4(075.8)
Утверждено редакционно-издательским советом СибГУТИ
Рецензент Т.В. Храмова
Осипова, У. В. Программирование мобильных устройств : учебно-методи- ческое пособие. Часть 1 / У. В. Осипова, И. В. Нечта / Сибирский государственный университет телекоммуникаций и информатики, кафедра прикладной математики и кибернетики. – Новосибирск, 2024. – 53 с.
Данное учебно-методическое пособие включает в себя необходимые теоретические материалы по 6 лабораторным работам для изучения дисциплины «Программирование мобильных устройств» для направления подготовки 09.03.01 «Информатика и вычислительная техника» Института информатики и вычислительной техники. В пособии рассматривается краткая теория языка программирования Kotlin от азов до уровня, необходимого для выполнения предложенных заданий. Приводятся пояснения к предложенным способам реализации, приведены конкретные примеры использования тех или иных конструкций языка. Кроме того, описаны рекомендации и указания по выполнению лабораторных работ, связанных с данными темами.
Методические указания рекомендованы для студентов технических специальностей, изучающих программирование мобильных устройств на 4-м курсе бакалавриата.
©Осипова У.В., Нечта И.В., 2024
©Сибирский государственный университет телекоммуникаций и информатики, 2024
2
Содержание |
|
|
Введение............................................................................................................. |
4 |
|
1.Установка и Настройка Android Studio и Kotlin ......................................... |
5 |
|
2. |
Теория программирования на языке Kotlin ................................................ |
6 |
3. |
Создание Калькулятора .............................................................................. |
10 |
|
3.1. Дополнительные теоретические сведения ......................................... |
11 |
4. |
Создание приложения «Вкладки» ............................................................. |
16 |
|
4.1. Дополнительные теоретические сведения ......................................... |
18 |
5. |
Создание Игры «Жуки».............................................................................. |
25 |
|
5.1. Дополнительные теоретические сведения ......................................... |
27 |
6. |
Создание приложения «Компас»............................................................... |
32 |
7. |
Создание Базы данных................................................................................ |
38 |
8. |
Создание приложения Живые обои/Виджет ............................................ |
44 |
|
8.1. Живые обои «Аквариум» ..................................................................... |
44 |
|
8.1.1. Дополнительные теоретические сведения ................................... |
45 |
|
8.2. Виджет для Рабочего Стола ................................................................. |
45 |
|
8.2.1. Дополнительные теоретические сведения ................................... |
46 |
Заключение ...................................................................................................... |
50 |
|
Вопросы для самоконтроля ............................................................................ |
51 |
|
3
Введение
В наше время мобильные устройства стали неотъемлемой частью повседневной жизни, и программирование для них становится все более востребованным навыком. Курс «Программирование мобильных устройств» расскажет о разработке мобильных приложений с использованием языка программирования Kotlin в среде Android Studio.
Kotlin – язык, разработанный специально для платформы Android, предоставляет удобные и современные инструменты для создания мощных и эффективных мобильных приложений. В ходе курса будут получены навыки по изучению основных принципов языка Kotlin, созданию пользовательских интерфейсов, обработке событий и взаимодействию с различными компонентами Android.
4
1.Установка и Настройка Android Studio и Kotlin
Для начала работы с курсом "Программирование мобильных устройств" необходимо установить и настроить Android Studio с Kotlin.
1.Вам потребуется скачать Android Studio (https://developer.android.com/studio). При установке следуйте указаниям мастера, выбирая компоненты и указывая путь установки. Если вы используете Windows, убедитесь, что установили флаг "Add Android Studio to PATH".
2.После установки Android Studio, откройте его и перейдите в раздел
"Settings" (или "Preferences" на macOS). В разделе "Plugins" найдите и установите плагин Kotlin из раздела "Marketplace". После установки плагина перезапустите Android Studio.
3.Для создания проекта на Kotlin воспользуйтесь мастером создания нового проекта, выберите тип проекта (например, "Empty Activity" или "Basic Activity") и укажите необходимые параметры, такие как имя приложения и пакет. Обязательно выберите язык программирования Kotlin.
4.После завершения создания проекта Android Studio автоматически
настроит структуру проекта на Kotlin.
Примечание. В разделе "SDK Manager" Android Studio, убедитесь, что установлены необходимые компоненты, такие как платформы Android и инструменты сборки.
5
2.Теория программирования на языке Kotlin
1.Переменные и типы данных:
В Kotlin существует несколько базовых типов данных, таких как "Int", "Double", "Boolean", "String" и другие. Они могут быть использованы для объявления переменных. Дадим краткое описание некоторых из них.
•Byte: 8-битное целое число со знаком, диапазон значений от -128 до 127;
•Short: 16-битное целое число со знаком, диапазон значений от -32768 до
32767;
•Int: 32-битное целое число со знаком, диапазон значений от -2147483648
до 2147483647;
•Long: 64-битное целое число со знаком, диапазон значений от -
9223372036854775808 до 9223372036854775807;
•Float: 32-битное число с плавающей запятой одинарной точности;
•Double: 64-битное число с плавающей запятой двойной точности;
•Boolean: логический тип данных, который может принимать значения true
или false;
•Char: символьный тип данных, представляющий отдельный символ
Unicode;
•String: последовательность символов;
•Any: тип, который является корневым для всех остальных типов в Kotlin. Объявление переменных происходит с использованием ключевых слов `val`
(для неизменяемых переменных) и `var` (для изменяемых переменных):
var число: Int = 42
val текст: String = "Привет, мир!"
2. Операции:
Кotlin поддерживает стандартные арифметические операции: val результат = 5 + 3 * 2
Также есть операции сравнения:
val равно = (результат == 10)
3. Условные операторы:
В Kotlin условный оператор "if" может возвращать значение, что делает его более выразительным:
val результат = if (условие) "истина" else "ложь"
Дополнительно доступны различные варианты условных операторов, включая операторы с множественным ветвлением (when), эквиваленты тернарного оператора и проверку на принадлежность к классу.
// Эквивалент тернарного оператора
6
val res = if (b != null) { b.length } else { -1 }
//Множественное ветвление с оператором when val res = when (x) {
0 -> "a" 1, 2 -> "b"
x.isOdd() -> "f" is Cat -> "m"
in 100..1000 -> "m" else -> "error"
}
//Проверка на равенство
if (a == b) {
// ссылочное равенство
}
if (a === b) {
// структурное равенство
}
4. Циклы:
Цикл "for" используется для итерации по коллекциям или диапазонам: for (элемент in 1..5) {
println(элемент)
}
Цикл "while" выполняется, пока условие истинно:
var i = 0 while (i < 5) {
println(i)
i++
}
5. Функции:
Функции в Kotlin могут иметь параметры и возвращаемое значение: fun сложение(a: Int, b: Int): Int {
return a + b
}
В Kotlin реализована поддержка лямбда-выражений, которая позволяет создавать анонимные функции прямо на месте их использования. Это делает код более кратким и выразительным:
val сложить = { a: Int, b: Int -> a + b }
7
Функции высшего порядка позволяют передавать функции как параметры или возвращать их из других функций. Например:
fun convert(x: Double, converter: (Double) -> Double): Double { val result = converter(x)
println("$x is converted to $result") return result
}
val fahrenheit = convert(20.0) { c: Double -> c * 1.8 + 32 }
Переменные-функции позволяют присваивать функции переменным, что делает их более гибкими и удобными для использования:
val operation: (Int, Int) -> Int = ::sum val result = operation(3, 5) println(result) // Выведет: 8
fun sum(a: Int, b: Int): Int { return a + b
}
6. Работа с коллекциями:
Kotlin предоставляет разнообразные типы коллекций, обеспечивая удобные методы для работы с данными.
Список (List) – представляет собой упорядоченную коллекцию элементов, где каждый элемент имеет свой порядковый номер (индекс). Индексы начинаются с 0.
val список = listOf("яблоко", "груша", "апельсин")
println(список[0]) // выводит "яблоко"
Массив (Array) – представляет собой изменяемую упорядоченную коллекцию фиксированного размера. Элементы массива имеют индексы, начинающиеся с 0.
val массив = arrayOf(1, 2, 3, 4, 5)
Множество (Set) – представляет собой коллекцию уникальных элементов без порядка. Дубликаты автоматически удаляются.
val множество = setOf("яблоко", "груша", "апельсин")
Карта (Map) – представляет собой коллекцию пар "ключ-значение", где каждый ключ уникален. Ключ используется для доступа к соответствующему значению.
8
val карта = mapOf("ключ1" to "значение1", "ключ2" to "значение2")
Все вышеописанные коллекции могут быть "immutable" (неизменяемыми), что означает, что их размер и содержимое нельзя изменить после создания. Однако существуют их изменяемые аналоги, такие как "MutableList", "MutableSet", и "MutableMap", которые позволяют добавлять, удалять и изменять элементы.
val изменяемыйСписок = mutableListOf("яблоко", "груша", "апельсин")
изменяемыйСписок.add("банан")
Kotlin предоставляет множество стандартных функций высшего порядка для обработки коллекций, таких как "map", "filter", "reduce" и другие. Эти функции упрощают манипуляции с данными и улучшают читаемость кода.
val числа = listOf(1, 2, 3, 4, 5)
val удвоенные = числа.map { it * 2 }
6.1. Интерфейсы коллекций
Collection<T> — это интерфейс, который предоставляет основные операции для работы с коллекциями, такие как итерация, доступ к элементам, проверка наличия элементов и другие.
MutableCollection<T> — это интерфейс, который расширяет Collection<T> и добавляет методы для изменения содержимого коллекции, такие как добавление и удаление элементов.
Существуют удобные функции и операторы для работы с коллекциями:
•Для списков доступны функции `add`, `removeAt`, `get`, `set` и другие.
•Для множеств можно использовать функции `add`, `remove`, `contains`, а также оператор `in` для проверки наличия элемента.
•Для карт доступны функции `put`, `get`, `remove`, а также возможность использовать индексацию по ключу.
По умолчанию в Kotlin используются следующие реализации:
•ArrayList – для списков.
•LinkedHashSet – для множеств.
•LinkedHashMap – для карт.
Они обеспечивают эффективное хранение и быстрый доступ к элементам
коллекций. При необходимости можно использовать и другие реализации, такие как `HashSet` или `HashMap`.
9
3. Создание Калькулятора
Целью занятия является реализация простейшего Калькулятора. Имеется набор кнопок: цифры, арифметические операции и циферблат. Калькулятор позволяет вычислять (+, -, *, /). Также нужно предусмотреть обработку деления на ноль. Библиотеки, в которых реализован калькулятор, не использовать.
Создайте новый проект в Android Studio с использованием Kotlin. Откройте макет (layout) для вашей активности и добавьте элементы интерфейса для кнопок, отображения ввода и результата. В Android Studio макет интерфейса задается в XML. Определите элементы интерфейса, их расположение и стиль в файле макета.
<Button
android:id="@+id/btnSeven"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7"/>
Кнопки вашего калькулятора должны быть связаны с обработчиками событий, которые реагируют на нажатия. Это можно сделать, например, с использованием интерфейса "View.OnClickListener".
btnSeven.setOnClickListener {
// Обработка нажатия на кнопку "7"
}
Создайте класс, который будет выполнять операции калькулятора.
class Calculator {
fun add(a: Double, b: Double): Double {
return a + b
}
// Другие методы для вычитания, умножения, деления
}
Обработайте ввод пользователя и используйте созданный класс для выполнения операций. Отобразите результат на экране.
val введенное = editText.text.toString()
val результат = calculator.add(первое число, второе число)
10
