Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Варіанти
Варіант 1. Калькулятор
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Калькулятор»: класичний калькулятор із сіткою кнопок і історією. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Калькулятор»: класичний калькулятор із сіткою кнопок і історією. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Калькулятор»: класичний калькулятор із сіткою кнопок і історією. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 2. Конвертер одиниць
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Конвертер одиниць»: перетворення з вибором категорії та одиниць. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Конвертер одиниць»: перетворення з вибором категорії та одиниць. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Конвертер одиниць»: перетворення з вибором категорії та одиниць. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 3. Список покупок
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Список покупок»: додавання, позначення, фільтри, підсумок. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Список покупок»: додавання, позначення, фільтри, підсумок. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Список покупок»: додавання, позначення, фільтри, підсумок. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 4. Таймер Pomodoro
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Таймер Pomodoro»: кругова індикація прогресу й налаштування. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Таймер Pomodoro»: кругова індикація прогресу й налаштування. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Таймер Pomodoro»: кругова індикація прогресу й налаштування. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 5. Калькулятор ІМТ
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Калькулятор ІМТ»: форма з валідацією полів і шкалою. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Калькулятор ІМТ»: форма з валідацією полів і шкалою. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Калькулятор ІМТ»: форма з валідацією полів і шкалою. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 6. Хрестики-нулики
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Хрестики-нулики»: поле 3×3, визначення переможця, рахунок. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Хрестики-нулики»: поле 3×3, визначення переможця, рахунок. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Хрестики-нулики»: поле 3×3, визначення переможця, рахунок. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 7. Змішувач кольорів
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Змішувач кольорів»: слайдери RGB і попередній перегляд. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Змішувач кольорів»: слайдери RGB і попередній перегляд. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Змішувач кольорів»: слайдери RGB і попередній перегляд. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 8. Картки слів
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Картки слів»: перевертання карток і прогрес вивчення. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Картки слів»: перевертання карток і прогрес вивчення. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Картки слів»: перевертання карток і прогрес вивчення. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 9. Меню кафе
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Меню кафе»: картки страв і кошик замовлення. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Меню кафе»: картки страв і кошик замовлення. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Меню кафе»: картки страв і кошик замовлення. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 10. Лічильник калорій
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Лічильник калорій»: додавання продуктів і денний підсумок. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Лічильник калорій»: додавання продуктів і денний підсумок. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Лічильник калорій»: додавання продуктів і денний підсумок. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 11. Реєстраційна форма
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Реєстраційна форма»: перемикачі, прапорці, діалог підтвердження. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Реєстраційна форма»: перемикачі, прапорці, діалог підтвердження. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Реєстраційна форма»: перемикачі, прапорці, діалог підтвердження. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 12. Гра «Пам’ять»
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Гра „Пам’ять“»: пари карток у сітці, лічильник ходів. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Гра „Пам’ять“»: пари карток у сітці, лічильник ходів. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Гра „Пам’ять“»: пари карток у сітці, лічильник ходів. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 13. Конвертер валют
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Конвертер валют»: поля введення, вибір валют, обмін місцями. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Конвертер валют»: поля введення, вибір валют, обмін місцями. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Конвертер валют»: поля введення, вибір валют, обмін місцями. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 14. Прогноз погоди
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Прогноз погоди»: картки днів у LazyRow зі статичних даних. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Прогноз погоди»: картки днів у LazyRow зі статичних даних. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Прогноз погоди»: картки днів у LazyRow зі статичних даних. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 15. Музичний плеєр (макет)
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Музичний плеєр (макет)»: плейлист і кнопки керування. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Музичний плеєр (макет)»: плейлист і кнопки керування. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Музичний плеєр (макет)»: плейлист і кнопки керування. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 16. Вікторина
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Вікторина»: питання, варіанти відповідей, результат. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Вікторина»: питання, варіанти відповідей, результат. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Вікторина»: питання, варіанти відповідей, результат. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 17. Кредитний калькулятор
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Кредитний калькулятор»: слайдери та таблиця платежів. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Кредитний калькулятор»: слайдери та таблиця платежів. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Кредитний калькулятор»: слайдери та таблиця платежів. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 18. Сапер
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Сапер»: поле клітинок, відкриття, прапорці. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Сапер»: поле клітинок, відкриття, прапорці. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Сапер»: поле клітинок, відкриття, прапорці. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 19. Трекер звичок
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Трекер звичок»: сітка днів тижня й відмітки. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Трекер звичок»: сітка днів тижня й відмітки. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Трекер звичок»: сітка днів тижня й відмітки. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 20. Світовий годинник
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Світовий годинник»: часові пояси з оновленням щосекунди. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Світовий годинник»: часові пояси з оновленням щосекунди. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Світовий годинник»: часові пояси з оновленням щосекунди. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 21. Генератор паролів
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Генератор паролів»: параметри перемикачами, оцінка надійності. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Генератор паролів»: параметри перемикачами, оцінка надійності. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Генератор паролів»: параметри перемикачами, оцінка надійності. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 22. Малювалка
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Малювалка»: Canvas, малювання мишею, вибір кольору. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Малювалка»: Canvas, малювання мишею, вибір кольору. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Малювалка»: Canvas, малювання мишею, вибір кольору. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 23. Каталог книг
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Каталог книг»: пошук і фільтри в LazyColumn. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Каталог книг»: пошук і фільтри в LazyColumn. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Каталог книг»: пошук і фільтри в LazyColumn. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 24. Гра «П’ятнашки»
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Гра „П’ятнашки“»: пересування плиток, перевірка перемоги. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Гра „П’ятнашки“»: пересування плиток, перевірка перемоги. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Гра „П’ятнашки“»: пересування плиток, перевірка перемоги. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 25. Журнал балів
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Журнал балів»: введення балів і кольорові індикатори оцінок. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Журнал балів»: введення балів і кольорові індикатори оцінок. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Журнал балів»: введення балів і кольорові індикатори оцінок. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 26. Розклад занять
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Розклад занять»: вкладки днів тижня й картки пар. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Розклад занять»: вкладки днів тижня й картки пар. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Розклад занять»: вкладки днів тижня й картки пар. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 27. Метроном
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Метроном»: вибір темпу й анімація такту. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Метроном»: вибір темпу й анімація такту. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Метроном»: вибір темпу й анімація такту. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 28. Контакти
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Контакти»: список із пошуком і деталями в діалозі. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Контакти»: список із пошуком і деталями в діалозі. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Контакти»: список із пошуком і деталями в діалозі. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 29. Галерея фігур
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Галерея фігур»: Canvas з параметрами фігур і площами. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Галерея фігур»: Canvas з параметрами фігур і площами. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Галерея фігур»: Canvas з параметрами фігур і площами. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Варіант 30. Планувальник бюджету
1. Початковий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Планувальник бюджету»: категорії, прогрес-бари витрат. Реалізувати одну основну дію через форму з підписаними полями й кнопкою, показувати результат на тому самому екрані. Стан зберігати через remember, неправильне або порожнє введення позначати текстовою помилкою, надати скидання.
2. Базовий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Планувальник бюджету»: категорії, прогрес-бари витрат. Реалізувати повний сценарій теми, історію щонайменше п’яти дій у LazyColumn або сітці зі стабільними ключами, вибір режиму та діалог підтвердження очищення. Підняти спільний стан, відділити предметні обчислення від UI; Cancel не змінює історію. Перевірити вузьке вікно та клавіатурне введення.
3. Високий рівень. Створити самостійний desktop-застосунок Kotlin/Compose «Планувальник бюджету»: категорії, прогрес-бари витрат. Реалізувати сценарій теми, редагування параметрів, адаптивне компонування, доступні підписи та збереження налаштувань у файл. Передбачити режими --help, --config=path, --check=key:value,...: останній перевіряє предметну логіку без GUI і виводить вирівняний звіт із підсумком. Помилки до stderr, коди 0/2/1 для успіху, введення та збою. За звичайного запуску працює GUI; додати тести валідації, скасування діалогу та відновлення стану.
Порядок виконання та захисту роботи
- Намалювати форму та визначити власника кожного стану.
- Виділити чисті функції обчислення й валідації.
- Реалізувати компонування для вузького та широкого вікна.
- Перевірити порожнє введення, межі чисел, скасування діалогу.
- Перевірити клавіатурний фокус і поведінку ефектів після закриття.
- Показати тести предметної логіки та повторюваний UI-сценарій.