Przegląd sekcji
-
Метою викладання навчальної дисципліни «Мови програмування мобільних пристроїв» є вивчення основних мов програмування мобільних пристроїв. Протягом курсу будуть розглянуті особливості програмування інтерфейсів користувача, роботи з різними джерелами даних, обміну даними з підсистемами мобільних пристроїв.
Основними завданнями вивчення дисципліни «Мови програмування мобільних пристроїв» є: вивчення теоретичних особливостей і формування практичних навичок програмування мобільних пристроїв
Згідно з вимогами освітньої програми студенти повинні досягти таких результатів навчання (компетентностей): СК-1 – Здатність аналізувати предметні області (домени), формулювати вимоги, ідентифікувати, класифікувати та описувати завдання, знаходити методи й підходи до їх розв’язання; СК-2 – Здатність брати участь у проектуванні програмного забезпечення, включаючи проведення моделювання (формальний опис) його структури, поведінки та процесів функціювання; СК-3 – Здатність розробляти архітектури, модулі та компоненти програмних систем.
Міждисциплінарні зв’язки. Дисципліна пов’язана з теоретичними знаннями та практичними уміннями з дисциплін «Алгоритми та структури даних», «Архітектура комп’ютера», «Комп’ютерна дискретна математика», «Об’єктно-орієнтоване програмування», «Основи програмної інженерії», «Бази даних».
-
-
За прикладом з лекції виконати такі завдання.
- Створити Empty Activity проєкт
- Створити декілька Activity:
- Використовувати різні типи Layout
- Використовувати різні типи UI компонентів
-
-
Лабораторна робота: Робота з кількома Activity та передачею даних
Мета
-
Ознайомитися з принципами створення та використання кількох Activity в Android.
-
Навчитися передавати інформацію між Activity через
IntentіExtras. -
Використати Jetpack Compose для побудови інтерфейсу.
Завдання
Розробити Android-застосунок з такими Activity:
-
LoginActivity
-
Поле вводу імені користувача.
-
Кнопка Login.
-
При натисканні відкривається MainActivity і передається
username.
-
-
SettingsActivity
-
Елементи інтерфейсу:
-
SwitchабоCheckbox(наприклад, "Dark mode"). -
RadioButton-група (наприклад, "Рівень доступу": Student / Teacher). -
DropdownабоExposedDropdownMenuBox(наприклад, вибір мови). -
Кнопки Save та Cancel.
-
-
При натисканні Save значення повертаються у MainActivity через
setResult. -
При Cancel Activity закривається без змін.
-
-
MainActivity
-
Приймає
usernameіз Login. -
Відображає повідомлення типу: "Hello, {username}".
-
Має кнопку Settings → відкриває SettingsActivity.
-
При поверненні з Settings відображає оновлені параметри (наприклад: “Dark mode: ON, Role: Student, Language: EN”).
-
-
ResultActivity
-
Приймає довільний текст із MainActivity (наприклад, підсумкові параметри користувача).
-
Відображає отриману інформацію.
-
Має кнопку Back, щоб повернутися до MainActivity.
-
Теоретичні відомості
-
Activity – базовий компонент Android, що представляє один екран.
-
Intent – механізм для запуску іншої Activity та передачі даних:
-
startActivity(Intent)– запуск без очікування результату. -
startActivityForResult(або новий APIActivityResultContracts) – запуск з очікуванням результату.
-
-
Extras – набір додаткових даних у
Intent:
-
-
-
Створення першого проекту на Jetpack Compose
Крок 1: Створення нового Android проєкту
- Відкрийте Android Studio.
- Виберіть New Project.
- У вікні Create New Project оберіть шаблон Empty Compose Activity.
- Натисніть Next.
- Заповніть наступні поля:
- Name: Вкажіть ім'я проєкту, наприклад,
MyFirstComposeApp. - Package Name: Дайте відповідну назву пакету (наприклад,
com.example.myfirstcomposeapp). - Save location: Оберіть місце збереження проєкту.
- Language: Виберіть Kotlin.
- Minimum SDK: Оберіть API 21: Android 5.0 (Lollipop) або вище.
- Name: Вкажіть ім'я проєкту, наприклад,
- Натисніть Finish.
Крок 2: Ознайомлення з шаблоном Jetpack Compose
Після створення проєкту, відкрийте файл
MainActivity.kt. Ви побачите заготовку коду з основною функцією, яка використовує Jetpack Compose для побудови інтерфейсу:package com.example.myfirstcomposeapp
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.ui.Modifier
import com.example.myfirstcomposeapp.ui.theme.MyFirstComposeAppTheme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyFirstComposeAppTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Greeting("Android")
}
}
}
}
}
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}setContent { ... }Це функція, яка використовується для відображення компонентів Jetpack Compose в активності.
Greeting("Android")Це виклик функції, яка відображає текст. Функція
Greetingприймає параметрnameі виводить привітання.Text(...)Компонент для виведення тексту на екрані.
Крок 3: Зміна привітання
- Змініть текст привітання на інший. Наприклад, змініть функцію
Greetingтак:
@Composable
fun Greeting(name: String) {
Text(text = "Привіт, $name!")
}ВMainActivityзмініть викликGreeting, щоб передати інше ім’я:Greeting("Світ")Тепер текст на екрані відображатиме: Привіт, Світ!Додайте стилізацію до вашого тексту, щоб зробити його більшим і центрувати на екрані.@Composable fun Greeting(name: String) { Text( text = "Привіт, $name!", modifier = Modifier .fillMaxSize() .wrapContentSize(), style = MaterialTheme.typography.h4 ) }Тут ми додали такі модифікатори:
fillMaxSize(): Заповнює весь доступний простір.wrapContentSize(): Центрує текст всередині контейнера.style: Використовуємо стандартний стиль заголовка (h4).
Крок 4: Запуск проєкту
- Підключіть свій пристрій або використайте емулятор.
- Натисніть кнопку Run в Android Studio, щоб запустити додаток.
Крок 5: Завдання для самостійної роботи
- Додайте ще один компонент
Text, який відображає вашу улюблену цитату. - Використайте різні стилі тексту для кожного з компонентів.
- Спробуйте додати кнопку (компонент
Button), яка при натисканні змінює текст на екрані.
-