Разработка мобильных приложений. Язык Kotlin. Учебное пособие для СПО
.pdfСРЕДНЕЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАНИЕ
_________________________________________________________________
Сибирский государственный университет телекоммуникаций и информатики (СибГУТИ)
У.В. Осипова, И.В. Нечта
РАЗРАБОТКА МОБИЛЬНЫХ ПРИЛОЖЕНИЙ. ЯЗЫК KOTLIN
Учебное пособие для СПО
Саратов
Профобразование
2025
УДК 004.42 ББК 32.973.46
О-74
Рецензент:
Храмова Т.В. — канд. техн. наук, доц., доц. кафедры высшей математики Сибирского государственного университета
телекоммуникаций и информатики
Осипова, Ульяна Владимировна.
О-74 Разработка мобильных приложений. Язык Kotlin : учебное пособие для СПО / У.В. Осипова, И.В. Нечта ; Сибирский государственный университет телекоммуникаций и информатики. — Саратов : Профобразование, 2025. — 52 с. — (Среднее профессиональное образование). — Текст : электронный.
ISBN 978-5-4488-2488-3
В учебном пособии приведен базовый теоретически материал по языку программирования Kotlin, который необходим для успешного выполнения предложенных заданий. К каждому заданию даны пояснения и конкретные примеры использования тех или иных конструкций языка.
Учебное пособие предназначено для студентов, обучающихся по специальности среднего профессионального образования «Информационные системы и программирование», изучающих дисциплину «Разработка мобильных приложений».
Учебное электронное издание
Обложка Я.А. Кирсанов, С.С. Сизиумова, фотобанк Freepik
ISBN 978-5-4488-2488-3 |
© Осипова У.В., Нечта И.В., 2024 |
|
© Сибирский государственный университет |
|
телекоммуникаций и информатики, 2024 |
|
© Оформление. ООО «Профобразование», 2025 |
Содержание |
|
|
Введение............................................................................................................. |
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 |
|
8.2.2. Изображения................................................................................... |
46 |
|
8.2.3. Работа с JSON.................................................................................. |
48 |
Заключение ...................................................................................................... |
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
