Українська
Завдання
Відповідно до номера свого варіанта виконайте завдання обраного рівня складності.
Варіанти
Варіант 1. Список покупок
1. Початковий рівень. Створити застосунок .NET MAUI «Список покупок», у якому користувач вводить у Entry назву товару та кількість і натискає кнопку Add, а товар з’являється в CollectionView у форматі «Молоко × 2». Порожня назва не додається.
2. Базовий рівень. Створити застосунок .NET MAUI «Список покупок» з MVVM (CommunityToolkit.Mvvm), у якому товари мають назву, кількість (1–99) і ознаку «куплено» (CheckBox), видаляються змахуванням SwipeView, а напис показує «Куплено 3 з 7». Кнопка Add недоступна для некоректних даних, список зберігається у файлі JSON в AppDataDirectory.
3. Високий рівень. Створити застосунок .NET MAUI «Покупки» з вкладками Shell Lists і Settings. Користувач створює кілька списків покупок, відкриває список на окремій сторінці (маршрут з параметром ідентифікатора), додає товари з ціною та категорією, групує їх за категоріями (IsGrouped) і бачить загальну вартість. Дані зберігаються в SQLite (sqlite-net-pcl), сервіс даних і ViewModel реєструються в MauiProgram, а для ViewModel написано модульні тести з підміненим сервісом.
Варіант 2. Облік пробіжок
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач вводить дистанцію (км) і час пробіжки (хвилини) та натискає Calculate, а напис показує темп у форматі «5:30 хв/км» і середню швидкість у км/год. Для некоректних значень показується повідомлення DisplayAlertAsync.
2. Базовий рівень. Створити застосунок .NET MAUI «Пробіжка», який після натискання Start запитує дозвіл на геолокацію, кожні 5 секунд отримує координати (Geolocation), накопичує дистанцію методом Location.CalculateDistance і показує час, дистанцію та темп; Stop завершує тренування. На пристрої без геолокації або без дозволу показується пояснення.
3. Високий рівень. Створити застосунок .NET MAUI «Облік пробіжок» зі сторінками поточного тренування, історії та деталей тренування (навігація Shell з параметрами). Точки маршруту записуються за допомогою Geolocation, тренування (дата, дистанція, тривалість, темп) зберігаються в SQLite, історія показує найкраще тренування тижня й загальну дистанцію, а деталями можна поділитися текстом через Share. Розрахунки винесено в окремий клас з модульними тестами.
Варіант 3. Кишеньковий словник
1. Початковий рівень. Створити застосунок .NET MAUI, який містить у коді 20 англійських слів з перекладами й показує їх у CollectionView, а поле пошуку SearchBar фільтрує слова під час введення.
2. Базовий рівень. Створити застосунок .NET MAUI «Словник» з MVVM, у якому користувач додає пари «слово – переклад», шукає за будь-якою частиною слова, відкриває картку слова на окремій сторінці Shell і позначає вивчені слова. Налаштування напрямку перекладу та розміру шрифту зберігаються в Preferences.
3. Високий рівень. Створити застосунок .NET MAUI «Кишеньковий словник» з вкладками Words, Quiz і Settings. Слова з темами зберігаються в SQLite, початковий словник імпортується з файлу JSON у Resources/Raw, режим Quiz пропонує чотири варіанти перекладу й веде статистику правильних відповідей, а налаштування в Preferences задають тему оформлення (UserAppTheme) і кількість питань. ViewModel вікторини має модульні тести.
Варіант 4. Трекер води
1. Початковий рівень. Створити застосунок .NET MAUI, у якому кнопки +200 ml, +300 ml і +500 ml збільшують кількість випитої води, ProgressBar показує прогрес до мети 2000 мл, а напис змінює колір на досягнутій меті.
2. Базовий рівень. Створити застосунок .NET MAUI «Трекер води», у якому кнопки +200 ml, +300 ml і +500 ml додають прийоми води, ProgressBar показує прогрес до денної мети, яку користувач задає Slider (1000–4000 мл), журнал прийомів з часом показано в CollectionView, а кнопка скасовує останній запис. Дані поточного дня зберігаються в Preferences, кольори задано через AppThemeBinding для світлої й темної тем.
3. Високий рівень. Створити застосунок .NET MAUI «Трекер води» з вкладками Today, Week і Settings: на Today кнопки додають прийоми води (200, 300, 500 мл) з прогресом до мети. Записи зберігаються в SQLite, сторінка Week показує для кожного дня тижня суму та смугу прогресу й середнє значення, мета розраховується з маси тіла (30 мл на 1 кг), а «нагадування» відображаються написом з часом наступного прийому (заглушка без сповіщень). Компонування сторінки Today змінюється для телефону й комп’ютера (OnIdiom).
Варіант 5. Галерея рецептів
1. Початковий рівень. Створити застосунок .NET MAUI, який показує в CollectionView шість рецептів, заданих у коді (назва, час приготування, складність), а виділення рецепта показує його опис у написі під списком.
2. Базовий рівень. Створити застосунок .NET MAUI «Рецепти» (назва, категорія, час приготування, інгредієнти, кроки; задано в коді) зі сторінкою списку, згрупованого за категоріями (IsGrouped), і сторінкою деталей, на яку передається об’єкт рецепта через ShellNavigationQueryParameters. Сторінка деталей показує інгредієнти й кроки та має кнопку Share, яка ділиться текстом рецепта.
3. Високий рівень. Створити застосунок .NET MAUI «Галерея рецептів» (назва, час приготування, складність, інгредієнти, кроки, фото) з пошуком, фільтром за часом приготування, обраними рецептами (окрема вкладка) і сторінкою додавання рецепта з фото з MediaPicker. Рецепти зберігаються в SQLite, фото – у AppDataDirectory, а список використовує GridItemsLayout з двома стовпцями на телефоні та чотирма на комп’ютері.
Варіант 6. Витрати в поїздці
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач вводить суму, обирає валюту в Picker (UAH, EUR, PLN з курсами в коді) і категорію, натискає Add і бачить витрату в списку та загальну суму в гривнях.
2. Базовий рівень. Створити застосунок .NET MAUI «Витрати в поїздці» з MVVM, у якому витрати (дата DatePicker, сума, валюта, категорія) перевіряються перед додаванням, видаляються змахуванням і зберігаються у файлі JSON. Підсумкова сторінка показує суми за категоріями в гривнях.
3. Високий рівень. Створити застосунок .NET MAUI «Бюджет поїздки» з кількома поїздками й витратами (дата, сума, валюта, категорія), сторінкою витрат поїздки (маршрут з ідентифікатором) і сумою в гривнях, курсами валют, які користувач редагує на сторінці налаштувань, і експортом витрат у файл CSV у CacheDirectory з передаванням файлу через Share (ShareFileRequest). Дані зберігаються в SQLite, перерахунок валют має модульні тести.
Варіант 7. Каталог музеїв міста
1. Початковий рівень. Створити застосунок .NET MAUI, який показує в CollectionView список з восьми музеїв (назва, адреса, години роботи), заданих у коді, і напис «Відкрито зараз» для музеїв, що працюють у поточний час.
2. Базовий рівень. Створити простий вебсервіс ASP.NET Core Minimal API GET /api/museums (назва, адреса, години роботи) і застосунок .NET MAUI «Музеї», який завантажує список музеїв через HttpClient (адреса 10.0.2.2 для емулятора Android), показує його в CollectionView, показує ActivityIndicator під час завантаження, оновлюється жестом RefreshView і повідомляє про недоступність сервера.
3. Високий рівень. Створити застосунок .NET MAUI «Каталог музеїв» (назва, адреса, години роботи, координати) з вкладками All, Favorites і Nearby. Дані отримуються з локального вебсервісу ASP.NET Core Minimal API (створити) й кешуються у файлі JSON для роботи без мережі (стан мережі відстежує Connectivity), обрані музеї зберігаються в Preferences, вкладка Nearby сортує музеї за відстанню від поточного місця (Geolocation), а кнопка на сторінці деталей відкриває адресу на карті через Launcher.
Варіант 8. Щоденник настрою
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач обирає настрій однією з п’яти кнопок (від «дуже погано» до «чудово»), вводить коментар і бачить запис з датою в списку.
2. Базовий рівень. Створити застосунок .NET MAUI «Щоденник настрою» з MVVM, у якому запис дня (оцінка 1–5, коментар) можна створити один раз на дату і змінити на сторінці редагування, список показує останні 30 днів, а напис – середню оцінку тижня. Записи зберігаються у файлі JSON.
3. Високий рівень. Створити застосунок .NET MAUI «Щоденник настрою» із записами дня (дата, оцінка 1–5, коментар), доступ до якого захищено PIN-кодом з чотирьох цифр, що зберігається в SecureStorage (у вигляді хеша). Записи зберігаються в SQLite, сторінка статистики будує стовпчикову діаграму настрою за тиждень з елементів BoxView, а три невдалі спроби введення PIN блокують вхід на 30 секунд.
Варіант 9. Нотатник студента
1. Початковий рівень. Створити застосунок .NET MAUI зі сторінкою розкладу на день: користувач додає пару (час TimePicker, назва дисципліни, аудиторія), а список сортується за часом.
2. Базовий рівень. Створити застосунок .NET MAUI «Нотатник студента» з вкладками Shell Schedule і Tasks. Вкладка розкладу показує пари (день тижня, час, дисципліна, аудиторія) обраного дня, вкладка завдань – завдання (назва, дисципліна, дедлайн); натискання на завдання відкриває сторінку деталей з рядковим параметром id. Дані додаються користувачем і зберігаються у файлах JSON.
3. Високий рівень. Створити застосунок .NET MAUI «Нотатник студента» з розкладом на два тижні (чисельник і знаменник), завданнями, прив’язаними до дисциплін, і сторінкою дисципліни з переліком її пар і завдань. Дані зберігаються в SQLite, ViewModel і сервіси реєструються в DI, поточна пара підсвічується, а для визначення тижня й наступної пари написано модульні тести.
Варіант 10. Сканер чеків
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач вводить назву магазину, суму та дату покупки, а список чеків показує загальну суму за поточний місяць.
2. Базовий рівень. Створити застосунок .NET MAUI «Чеки» (магазин, сума, дата), у якому до чека додається фото, вибране або зняте через MediaPicker (з перевіркою IsCaptureSupported), фото копіюється в AppDataDirectory, список показує чеки й суму за місяць, а сторінка деталей показує зображення, суму й магазин.
3. Високий рівень. Створити застосунок .NET MAUI «Сканер чеків» (магазин, сума, дата, категорія, фото з MediaPicker) з категоріями витрат, сторінкою звіту за обраний період (суми за категоріями та магазинами) і видаленням чека разом із фото. Чеки зберігаються в SQLite, звіт експортується в текстовий файл і передається через Share, а стиснення фото задається параметрами MaximumWidth і MaximumHeight.
Варіант 11. Таймер тренувань HIIT
1. Початковий рівень. Створити застосунок .NET MAUI з таймером інтервалів: користувач задає час роботи й відпочинку в секундах і кількість раундів, а напис показує фазу й залишок часу.
2. Базовий рівень. Створити застосунок .NET MAUI «HIIT-таймер», у якому користувач задає час роботи й відпочинку в секундах і кількість раундів, з кнопками Start, Pause і Reset, написом фази й залишку часу, смугою прогресу раунду й зміною кольору фази; наприкінці кожної фази викликається HapticFeedback (якщо IsSupported). Останні налаштування зберігаються в Preferences.
3. Високий рівень. Створити застосунок .NET MAUI «Тренування HIIT» зі збереженими програмами тренувань (розминка, серії вправ з назвами, заминка) у SQLite, сторінкою редагування програми та сторінкою виконання, що веде по вправах і не збивається під час перемикання вкладок. Логіку таймера винесено в клас з інтерфейсом часу, для якого написано модульні тести.
Варіант 12. Трекер рослин
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач додає рослину (назва, інтервал поливу в днях, дата останнього поливу), а список показує дату наступного поливу.
2. Базовий рівень. Створити застосунок .NET MAUI «Рослини» з MVVM, у якому рослина має назву, інтервал поливу в днях і дату останнього поливу, список показує дату наступного поливу, кнопка Watered оновлює дату поливу, прострочені рослини виділяються стилем з DataTrigger, а до рослини можна додати фото з MediaPicker. Дані зберігаються у файлі JSON.
3. Високий рівень. Створити застосунок .NET MAUI «Трекер рослин» (назва, інтервал поливу, дата останнього поливу) з вкладками Today (рослини, які треба полити), All і Settings, історією поливу кожної рослини на сторінці деталей і налаштуваннями в Preferences (одиниці, тема). Дані зберігаються в SQLite, а розрахунок графіка поливу з урахуванням сезону має модульні тести.
Варіант 13. Конвертер одиниць
1. Початковий рівень. Створити застосунок .NET MAUI, який перетворює довжину між метрами, футами й дюймами: користувач вводить число й обирає одиниці в двох Picker, а результат оновлюється одразу.
2. Базовий рівень. Створити застосунок .NET MAUI «Конвертер» для довжини, маси й температури з вибором категорії, перевіркою введення, кнопкою обміну одиниць та історією останніх десяти перетворень у CollectionView, яка зберігається в Preferences.
3. Високий рівень. Створити застосунок .NET MAUI «Конвертер одиниць» з адаптивним компонуванням: на телефоні категорії відкриваються окремою сторінкою Shell, на комп’ютері й планшеті вони показуються поруч зі сторінкою конвертера (OnIdiom). Одиниці й коефіцієнти завантажуються з файлу JSON у Resources/Raw, історія зберігається в SQLite, перетворення мають модульні тести.
Варіант 14. Книги для читання
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач додає книгу (назва, автор, статус «планую», «читаю», «прочитано» в Picker), а список показує книги з їхнім статусом.
2. Базовий рівень. Створити застосунок .NET MAUI «Моя бібліотека» з MVVM для книг (назва, автор, статус «планую», «читаю», «прочитано»), фільтром за статусом, рейтингом прочитаних книг (1–5, Stepper) і сторінкою редагування книги, на яку передається об’єкт через навігацію Shell. Книги зберігаються в SQLite.
3. Високий рівень. Створити застосунок .NET MAUI «Облік книг для читання» (назва, автор, статус, сторінки, рейтинг) з вкладками Library, Stats і Settings, сортуванням і пошуком, прогресом читання в сторінках, статистикою книг за роками й фото обкладинки з MediaPicker. Дані зберігаються в SQLite, сервіси реєструються в DI, а ViewModel бібліотеки має модульні тести.
Варіант 15. Розклад дзвінків
1. Початковий рівень. Створити застосунок .NET MAUI, який показує розклад дзвінків (8 пар, задано в коді) і виділяє поточну пару за системним часом.
2. Базовий рівень. Створити застосунок .NET MAUI «Дзвінки» з розкладом дзвінків (8 пар, задано в коді), який щосекунди оновлює напис «До кінця пари: 23:15» або «Перерва: 07:40» (таймер IDispatcherTimer), показує смугу прогресу пари та підтримує світлу й темну теми через AppThemeBinding.
3. Високий рівень. Створити застосунок .NET MAUI «Шкільний розклад дзвінків» з кількома розкладами (звичайний, скорочений), які користувач редагує на окремій сторінці з перевіркою перетину інтервалів. Розклади зберігаються у файлі JSON, активний розклад – у Preferences, а розрахунок поточного стану має модульні тести.
Варіант 16. Показники здоров’я
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач вводить тиск (систолічний і діастолічний) та пульс, а застосунок додає вимір з часом до списку й показує категорію тиску.
2. Базовий рівень. Створити застосунок .NET MAUI «Здоров’я» з MVVM для вимірів (час, тиск систолічний і діастолічний, пульс), перевіркою діапазонів значень, списком вимірів за 30 днів, середніми значеннями тижня та виділенням виходу за норму. Виміри зберігаються у файлі JSON.
3. Високий рівень. Створити застосунок .NET MAUI «Облік показників здоров’я» з вимірами тиску, пульсу та маси, графіком за тиждень з елементів BoxView, експортом у CSV і передаванням файлу через Share. Дані зберігаються в SQLite, а розрахунок статистики має модульні тести.
Варіант 17. Гід по кампусу
1. Початковий рівень. Створити застосунок .NET MAUI, який показує в CollectionView корпуси університету (назва, адреса, опис), задані в коді, а натискання на корпус відкриває сторінку деталей.
2. Базовий рівень. Створити застосунок .NET MAUI «Кампус» зі списком корпусів (назва, адреса, координати; задано в коді), який запитує дозвіл на геолокацію, визначає поточне місце і показує відстань до кожного корпусу (Location.CalculateDistance), сортуючи список від найближчого. Відмова в дозволі пояснюється користувачу.
3. Високий рівень. Створити застосунок .NET MAUI «Гід по кампусу» з корпусами (назва, адреса, опис, координати) на вкладках Buildings, Nearby і Favorites, пошуком аудиторії за номером (відповідність аудиторій корпусам у файлі JSON з Resources/Raw) і відкриттям корпусу на карті через Launcher. Обрані корпуси зберігаються в Preferences, розрахунок найближчого корпусу має модульні тести.
Варіант 18. Контроль мережі
1. Початковий рівень. Створити застосунок .NET MAUI, який показує поточний стан мережі (NetworkAccess) і типи з’єднань (ConnectionProfiles) та оновлює напис після натискання Refresh.
2. Базовий рівень. Створити застосунок .NET MAUI «Мережа», який підписується на подію ConnectivityChanged, оновлює інтерфейс у головному потоці і додає кожну зміну стану з часом у журнал CollectionView. Підписка знімається, коли сторінка зникає.
3. Високий рівень. Створити застосунок .NET MAUI «Контроль мережі», який веде журнал змін з’єднання в SQLite, показує тривалість сеансів без мережі за день, періодично перевіряє доступність заданої адреси через HttpClient і експортує журнал у файл через Share. Сервіс мережі описано інтерфейсом і замінено в модульних тестах.
Варіант 19. Трекер парковки
1. Початковий рівень. Створити застосунок .NET MAUI, у якому кнопка Park here зберігає поточний час і текстову примітку (поверх, місце) в Preferences, а після перезапуску застосунок показує збережені дані.
2. Базовий рівень. Створити застосунок .NET MAUI «Парковка», який зберігає координати місця паркування (Geolocation) з дозволом, фото місця з MediaPicker і показує відстань від поточного місця до автомобіля та час, що минув.
3. Високий рівень. Створити застосунок .NET MAUI «Трекер парковки», який зберігає паркування (час, координати, примітка) з історією в SQLite, вартістю паркування за погодинним тарифом, нагадуванням-заглушкою про кінець оплаченого часу та відкриттям місця на карті через Launcher. Розрахунок вартості має модульні тести.
Варіант 20. Флеш-картки для іспиту
1. Початковий рівень. Створити застосунок .NET MAUI, який показує десять карток «питання – відповідь» (задано в коді) у CarouselView, а натискання на картку перевертає її.
2. Базовий рівень. Створити застосунок .NET MAUI «Флеш-картки» (питання – відповідь) з CarouselView і IndicatorView, перевертанням картки натисканням, кнопками Know і Don’t know та підсумком сесії. Користувач додає власні картки на окремій сторінці, картки зберігаються у файлі JSON.
3. Високий рівень. Створити застосунок .NET MAUI «Картки для іспиту» з колодами за дисциплінами, повторенням складних карток частіше (інтервальне повторення), статистикою правильних відповідей та імпортом колоди з файлу через FilePicker. Дані зберігаються в SQLite, алгоритм вибору наступної картки має модульні тести.
Варіант 21. Домашні завдання
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач додає завдання з дедлайном (DatePicker), а список сортується за дедлайном і показує кількість днів до нього.
2. Базовий рівень. Створити застосунок .NET MAUI «Домашні завдання» з MVVM для завдань (назва, дедлайн DatePicker) зі списком, відсортованим за дедлайном, позначкою виконання, видаленням змахуванням, фільтром «усі / активні / прострочені» та збереженням у файлі JSON. Прострочені завдання виділяються стилем.
3. Високий рівень. Створити застосунок .NET MAUI «Облік домашніх завдань» з дисциплінами, пріоритетами, сторінкою деталей з вкладеними підзавданнями й прогресом, «сповіщеннями-заглушками» у вигляді списку найближчих дедлайнів на головній сторінці та збереженням у SQLite. ViewModel списку має модульні тести.
Варіант 22. Калькулятор чайових
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач вводить суму рахунку й відсоток чайових (Slider 0–25 %), а написи одразу показують суму чайових і разом до сплати.
2. Базовий рівень. Створити застосунок .NET MAUI «Чайові» з MVVM, у якому користувач вводить суму рахунку, відсоток чайових (Slider 0–25 %) і кількість людей (Stepper), а застосунок показує чайові, загальну суму й суму на кожного з округленням до гривні вгору та перевіркою введення. Останній відсоток зберігається в Preferences, компонування використовує Grid і працює в світлій і темній темах.
3. Високий рівень. Створити застосунок .NET MAUI «Розподіл рахунку», у якому страви рахунку розподіляються між учасниками (кожна страва на одного або кількох), чайові й знижка діляться пропорційно, а підсумок для кожного учасника передається через Share. Історія рахунків зберігається в SQLite, розрахунки мають модульні тести.
Варіант 23. Клієнт погодного сервісу
1. Початковий рівень. Створити застосунок .NET MAUI, який після натискання Load отримує JSON з прогнозом від локального вебсервісу ASP.NET Core через HttpClient і показує температуру та опис погоди для заданого міста.
2. Базовий рівень. Створити простий вебсервіс ASP.NET Core Minimal API з прогнозом погоди міста на п’ять днів (дата, температура, опис) і застосунок .NET MAUI «Погода» з MVVM, який отримує прогноз через HttpClient (адреса 10.0.2.2 для емулятора Android), показує його в CollectionView, оновлюється через RefreshView і повідомляє про помилку мережі.
3. Високий рівень. Створити застосунок .NET MAUI «Клієнт погодного сервісу», який отримує прогноз від локального вебсервісу ASP.NET Core Minimal API (створити) через HttpClient, з кількома містами (вкладка Cities), кешем останнього прогнозу у файлі JSON для роботи без мережі (Connectivity), визначенням найближчого міста за геолокацією та налаштуванням одиниць температури в Preferences. Сервіс HTTP описано інтерфейсом і замінено в модульних тестах.
Варіант 24. Контакти волонтерів
1. Початковий рівень. Створити застосунок .NET MAUI, який показує список волонтерів (ім’я, телефон, напрям), заданий у коді, а поле SearchBar фільтрує список за ім’ям.
2. Базовий рівень. Створити застосунок .NET MAUI «Волонтери» зі списком волонтерів (ім’я, телефон, email, напрям), сторінкою деталей волонтера, кнопками Call (PhoneDialer) і Email (Email.ComposeAsync) з обробкою FeatureNotSupportedException та додаванням волонтера з перевіркою телефону й пошти.
3. Високий рівень. Створити застосунок .NET MAUI «Контакти волонтерів» (ім’я, телефон, email, напрям, доступність) з групуванням за напрямами, позначкою доступності, розсилкою листа кільком вибраним волонтерам (SelectionMode Multiple) та імпортом контактів з файлу CSV через FilePicker. Дані зберігаються в SQLite, розбір CSV має модульні тести.
Варіант 25. Рівень будівельника
1. Початковий рівень. Створити застосунок .NET MAUI, який запускає Accelerometer і показує складові прискорення X, Y, Z з двома знаками після коми, а на пристрої без датчика – повідомлення «Accelerometer is not supported».
2. Базовий рівень. Створити застосунок .NET MAUI «Рівень», який за даними Accelerometer обчислює кути нахилу пристрою, рухає «бульбашку» в круглій рамці і показує «Level», коли обидва кути менші за 1°. Датчик запускається під час появи сторінки й зупиняється під час її зникнення, а на пристрої без датчика показується повідомлення.
3. Високий рівень. Створити застосунок .NET MAUI «Рівень будівельника», який за даними Accelerometer показує кути нахилу пристрою й «бульбашку», з калібруванням нуля (зсув зберігається в Preferences), згладжуванням показань ковзним середнім, збереженням вимірів з примітками в SQLite і тактильним сигналом (HapticFeedback) на рівні. Обчислення кутів і фільтр мають модульні тести.
Варіант 26. Трекер сну
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач вводить час засинання й пробудження (TimePicker), а застосунок показує тривалість сну з урахуванням переходу через північ.
2. Базовий рівень. Створити застосунок .NET MAUI «Сон» з MVVM і журналом ночей за два тижні (дата, час засинання й пробудження TimePicker, тривалість з урахуванням переходу через північ, оцінка якості 1–5), середньою тривалістю тижня й збереженням у файлі JSON; кольори інтерфейсу підтримують світлу й темну теми.
3. Високий рівень. Створити застосунок .NET MAUI «Трекер сну» з кнопками Go to bed і Wake up, що фіксують поточний час, статистикою за тиждень і місяць (найкоротша, найдовша, середня ніч), метою сну в налаштуваннях і збереженням у SQLite. Розрахунок статистики має модульні тести.
Варіант 27. Колекція вінілу
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач додає платівку (виконавець, альбом, рік), а список сортується за виконавцем.
2. Базовий рівень. Створити застосунок .NET MAUI «Вініл» для колекції платівок (виконавець, альбом, рік, фото обкладинки з MediaPicker) зі списком, сторінкою деталей, пошуком за виконавцем і альбомом та збереженням платівок у SQLite.
3. Високий рівень. Створити застосунок .NET MAUI «Облік колекції вінілу» (виконавець, альбом, рік, жанр, стан, вартість, обкладинка) з сіткою обкладинок (GridItemsLayout), вартістю колекції, списком бажаних платівок на окремій вкладці та експортом колекції в CSV через Share. Дані зберігаються в SQLite, сервіси реєструються в DI, ViewModel має модульні тести.
Варіант 28. Квест-екскурсія
1. Початковий рівень. Створити застосунок .NET MAUI, який показує список з п’яти точок квесту (назва, підказка, координати), заданих у коді, і позначає пройдені точки після натискання кнопки.
2. Базовий рівень. Створити застосунок .NET MAUI «Квест» зі списком точок квесту (назва, підказка, координати; задано в коді), який за кнопкою Check in отримує поточне місце (Geolocation) і зараховує точку, якщо до неї не більше 50 м, а інакше показує відстань до точки. Прогрес зберігається в Preferences.
3. Високий рівень. Створити застосунок .NET MAUI «Квест-екскурсія» з кількома квестами, які завантажуються з файлу JSON, послідовним відкриттям точок, питаннями на кожній точці, таблицею результатів з часом проходження в SQLite і перевіркою прибуття з урахуванням точності Location.Accuracy. Логіка перевірки прибуття має модульні тести.
Варіант 29. Журнал рибалки
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач записує улов (вид риби, маса, дата), а список показує загальну масу улову за сезон.
2. Базовий рівень. Створити застосунок .NET MAUI «Рибалка» зі списком записів улову (вид риби, маса, дата), сторінкою запису, яка зберігає також координати місця (Geolocation), фото улову з MediaPicker і погодні нотатки, та сторінкою деталей запису. Записи зберігаються у файлі JSON.
3. Високий рівень. Створити застосунок .NET MAUI «Журнал рибалки» із записами улову (вид риби, маса, дата, місце) з улюбленими місцями, статистикою улову за місцями й видами риби, фільтром за періодом, збереженням у SQLite та передаванням запису з посиланням на карту через Share. Статистика має модульні тести.
Варіант 30. Облік донорства крові
1. Початковий рівень. Створити застосунок .NET MAUI, у якому користувач вводить дату останньої донації, а застосунок показує дату наступної можливої донації через 60 днів і кількість днів до неї.
2. Базовий рівень. Створити застосунок .NET MAUI «Донорство» з MVVM, журналом донацій (дата, тип: цільна кров або плазма; мінімальні інтервали між донаціями задано в коді), перевіркою дат і збереженням у файлі JSON. Напис показує найближчу можливу дату для кожного типу.
3. Високий рівень. Створити застосунок .NET MAUI «Облік донорства крові» з профілем донора (група крові, стать) у SecureStorage, журналом донацій у SQLite, обмеженням кількості донацій на рік, нагадуванням-заглушкою на головній сторінці та сторінкою статистики. Правила розрахунку дат винесено в клас з модульними тестами.
Порядок виконання та захисту роботи
- Опрацювати теоретичні відомості та приклади розв’язання завдань; перевірити, що встановлено робоче навантаження .NET Multi-platform App UI development.
- Створити проєкт .NET MAUI App (.NET 10), спланувати сторінки, маршрути Shell, моделі, ViewModel і сервіси; зареєструвати їх у
MauiProgram. - Створити сторінки XAML з компонуванням, стилями й скомпільованими прив’язками (
x:DataType), реалізувати ViewModel з CommunityToolkit.Mvvm і збереження даних. - Зібрати проєкт без попереджень і перевірити застосунок на Windows Machine з коректними, некоректними й граничними даними та зі зміною розміру вікна.
- Запустити застосунок в емуляторі Android або на власному телефоні, перевірити дозволи й сервіси пристрою (для відсутніх у Windows датчиків і камери – повідомлення про непідтримувану можливість).
- Продемонструвати роботу застосунку викладачеві, пояснити програмний код і відповісти на контрольні питання.