## ЗАГАЛЬНА ІНФОРМАЦІЯ
**Назва курсу:** Розробка мобільних додатків
**Кількість кредитів:** 6 кредитів
**Загальна кількість годин:** 180 годин
- Лекції: 60 годин
- Практичні заняття: 60 годин
- Самостійна робота: 60 годин
**Попередні курси:** Цифровий дизайн для мобільних платформ
## МЕТА КУРСУ
Надати студентам комплексні знання та практичні навички для розробки мультиплатформенних мобільних додатків, використовуючи сучасні універсальні інструменти. Курс орієнтований на проектне навчання, де студенти створюють один великий проект протягом семестру, поступово додаючи функціональність та вивчаючи всі аспекти розробки мобільних додатків.
## ОЧІКУВАНІ РЕЗУЛЬТАТИ НАВЧАННЯ
Після завершення курсу студенти зможуть:
1. **Розуміти архітектуру мобільних додатків** та особливості різних платформ
2. **Володіти мовою програмування Dart** та фреймворком Flutter
3. **Створювати адаптивні користувацькі інтерфейси** для різних пристроїв
4. **Працювати з даними** (локальне збереження, API, бази даних)
5. **Інтегрувати нативні функції** пристрою (камера, геолокація, сенсори)
6. **Тестувати та оптимізувати** мобільні додатки
7. **Публікувати додатки** в App Store та Google Play
8. **Розуміти принципи безпеки** та продуктивності мобільних додатків
## СТРУКТУРА КУРСУ
### ТЕМА 1: ВСТУП ДО РОЗРОБКИ МОБІЛЬНИХ ДОДАТКІВ
**Лекції:** 6 годин | **Практика:** 6 годин | **Самостійна робота:** 6 годин
**Лекційний матеріал:**
- Огляд ринку мобільних додатків та актуальних тенденцій
- Статистика використання мобільних додатків
- Типи мобільних додатків (нативні, гібридні, веб-додатки)
- Життєвий цикл розробки мобільних додатків
- Команда розробки та ролі в проекті
**Практичні завдання:**
- Аналіз популярних мобільних додатків
- Створення технічного завдання для курсового проекту
- Планування архітектури майбутнього додатку
**Курсовий проект - Етап 1:**
- Вибір тематики додатку
- Створення детального технічного завдання
- Планування архітектури та структури додатку
### ТЕМА 2: ОГЛЯД ПЛАТФОРМ ТА ІНСТРУМЕНТІВ ДЛЯ РОЗРОБКИ МОБІЛЬНИХ ДОДАТКІВ
**Лекції:** 6 годин | **Практика:** 6 годин | **Самостійна робота:** 6 годин
**Лекційний матеріал:**
- Порівняння нативної та кросплатформенної розробки
- Огляд популярних фреймворків:
- React Native (Facebook/Meta)
- Flutter (Google)
- Xamarin (Microsoft)
- Ionic (Apache Cordova)
- NativeScript
- Критерії вибору технології
- Середовища розробки: Android Studio, Xcode, Visual Studio Code
- Інструменти для дизайну: Figma, Sketch, Adobe XD
**Практичні завдання:**
- Встановлення та налаштування Flutter SDK
- Створення першого "Hello World" додатку
- Порівняльний аналіз різних фреймворків
**Курсовий проект - Етап 2:**
- Обґрунтування вибору Flutter для проекту
- Налаштування середовища розробки
- Створення базової структури проекту
### ТЕМА 3: ОСНОВИ МОВИ ПРОГРАМУВАННЯ DART
**Лекції:** 6 годин | **Практика:** 6 годин | **Самостійна робота:** 6 годин
**Лекційний матеріал:**
- Синтаксис та особливості мови Dart
- Змінні, типи даних, оператори
- Функції та методи
- Об'єктно-орієнтоване програмування в Dart
- Асинхронне програмування (async/await, Future, Stream)
- Робота з колекціями та ітераторами
**Практичні завдання:**
- Написання базових програм на Dart
- Створення класів та об'єктів
- Робота з асинхронними операціями
- Використання пакетів та залежностей
**Курсовий проект - Етап 3:**
- Створення базових моделей даних для проекту
- Реалізація основних класів та структур даних
- Налаштування залежностей проекту
### ТЕМА 4: ВСТУП ДО FLUTTER ТА АРХІТЕКТУРА ДОДАТКІВ
**Лекції:** 6 годин | **Практика:** 6 годин | **Самостійна робота:** 6 годин
**Лекційний матеріал:**
- Архітектура Flutter та його компоненти
- Віджети як основа UI
- Дерево віджетів та їх життєвий цикл
- StatelessWidget vs StatefulWidget
- Патерни архітектури: MVC, MVVM, BLoC
- Управління станом додатку
**Практичні завдання:**
- Створення простих віджетів
- Робота з StatefulWidget
- Реалізація базової навігації
- Використання різних типів віджетів
**Курсовий проект - Етап 4:**
- Створення основної структури UI додатку
- Реалізація навігації між екранами
- Налаштування базової архітектури проекту
### ТЕМА 5: РОЗРОБКА КОРИСТУВАЦЬКОГО ІНТЕРФЕЙСУ (UI)
**Лекції:** 6 годин | **Практика:** 6 годин | **Самостійна робота:** 6 годин
**Лекційний матеріал:**
- Принципи Material Design та Cupertino Design
- Основні віджети для створення UI
- Layout віджети: Row, Column, Stack, Container
- Адаптивний дизайн для різних розмірів екранів
- Анімації та переходи
- Кастомізація віджетів
- Інтеграція з дизайном з попереднього курсу
**Практичні завдання:**
- Створення складних layout'ів
- Реалізація анімацій
- Адаптація UI для різних пристроїв
- Створення кастомних віджетів
**Курсовий проект - Етап 5:**
- Реалізація всіх екранів додатку
- Створення адаптивного дизайну
- Додавання анімацій та переходів
- Інтеграція дизайну з попереднього курсу
### ТЕМА 6: РОБОТА З ДАНИМИ ТА СТАНОМ ДОДАТКУ
**Лекції:** 6 годин | **Практика:** 6 годин | **Самостійна робота:** 6 годин
**Лекційний матеріал:**
- Управління станом: setState, Provider, Riverpod, BLoC
- Локальне збереження даних: SharedPreferences, SQLite, Hive
- Робота з JSON та серіалізація
- HTTP запити та робота з API
- Обробка помилок та винятків
- Кешування та оптимізація даних
**Практичні завдання:**
- Реалізація різних способів управління станом
- Створення локальної бази даних
- Робота з REST API
- Обробка асинхронних операцій
**Курсовий проект - Етап 6:**
- Інтеграція з backend API
- Реалізація локального збереження даних
- Налаштування управління станом додатку
- Обробка помилок та edge cases
### ТЕМА 7: ІНТЕГРАЦІЯ З НАТИВНИМИ ФУНКЦІЯМИ ПРИСТРОЮ
**Лекції:** 6 годин | **Практика:** 6 годин | **Самостійна робота:** 6 годин
**Лекційний матеріал:**
- Використання плагінів у Flutter
- Доступ до камери та галереї
- Геолокація та картографічні сервіси
- Push-нотифікації
- Доступ до файлової системи
- Робота з сенсорами пристрою
- Дозволи та безпека
**Практичні завдання:**
- Інтеграція камери для фото/відео
- Реалізація геолокації
- Налаштування push-нотифікацій
- Робота з файлами та документами
**Курсовий проект - Етап 7:**
- Додавання нативних функцій до проекту
- Реалізація роботи з камерою/геолокацією
- Налаштування дозволів та безпеки
- Тестування на реальних пристроях
### ТЕМА 8: ТЕСТУВАННЯ ТА ВІДЛАГОДЖЕННЯ МОБІЛЬНИХ ДОДАТКІВ
**Лекції:** 6 годин | **Практика:** 6 годин | **Самостійна робота:** 6 годин
**Лекційний матеріал:**
- Типи тестування: unit, widget, integration
- Написання unit тестів
- Widget тестування
- Integration тести
- Інструменти відлагодження: Flutter Inspector, DevTools
- Профілювання та оптимізація продуктивності
- Автоматизація тестування та CI/CD
**Практичні завдання:**
- Написання тестів для віджетів
- Створення integration тестів
- Використання інструментів відлагодження
- Оптимізація продуктивності додатку
**Курсовий проект - Етап 8:**
- Написання комплексних тестів для проекту
- Оптимізація продуктивності
- Фінальне тестування та відлагодження
- Підготовка до публікації
### ТЕМА 9: ОПТИМІЗАЦІЯ ПРОДУКТИВНОСТІ ТА БЕЗПЕКА
**Лекції:** 6 годин | **Практика:** 6 годин | **Самостійна робота:** 6 годин
**Лекційний матеріал:**
- Методи оптимізації продуктивності
- Оптимізація зображень та ресурсів
- Lazy loading та пагінація
- Кешування та офлайн режим
- Безпека даних користувачів
- Шифрування та захист API
- Практики безпечного кодування
- GDPR та захист персональних даних
**Практичні завдання:**
- Оптимізація завантаження додатку
- Реалізація офлайн функціональності
- Налаштування безпеки
- Тестування продуктивності
**Курсовий проект - Етап 9:**
- Фінальна оптимізація продуктивності
- Реалізація безпеки даних
- Тестування на різних пристроях
- Підготовка документації
### ТЕМА 10: РОЗГОРТАННЯ ТА ПУБЛІКАЦІЯ ДОДАТКІВ
**Лекції:** 6 годин | **Практика:** 6 годин | **Самостійна робота:** 6 годин
**Лекційний матеріал:**
- Підготовка додатку до публікації
- Створення іконок та splash screen
- Налаштування метаданих
- Процедури публікації в App Store
- Процедури публікації в Google Play
- Моніторинг та аналітика
- Оновлення додатків
- Маркетинг мобільних додатків
**Практичні завдання:**
- Створення release версії додатку
- Підготовка до публікації
- Налаштування аналітики
- Створення опису для магазинів
**Курсовий проект - Етап 10:**
- Фінальна підготовка проекту
- Створення презентації проекту
- Підготовка до захисту
- Публікація в тестовій зоні
## КУРСОВИЙ ПРОЕКТ
Протягом семестру студенти працюють над створенням одного великого мультиплатформенного мобільного додатку. Проект розділений на 10 етапів, кожен з яких відповідає темі курсу.
**Вимоги до проекту:**
- Мультиплатформенність (Android + iOS)
- Мінімум 5 екранів
- Робота з даними (API + локальне збереження)
- Використання нативних функцій пристрою
- Адаптивний дизайн
- Тести (unit + widget)
- Документація
**Приклади тем проектів:**
- Соціальна мережа
- E-commerce додаток
- Додаток для доставки їжі
- Фітнес трекер
- Додаток для навчання
- Додаток для подорожей
## МЕТОДИ ОЦІНЮВАННЯ
**Лекційні заняття (20%):**
- Активність на лекціях
- Виконання домашніх завдань
- Тести та контрольні роботи
**Практичні заняття (30%):**
- Виконання практичних завдань
- Участь в лабораторних роботах
- Презентації проміжних результатів
**Курсовий проект (50%):**
- Поетапне виконання проекту (40%)
- Фінальна презентація та захист (10%)
## ІНТЕРАКТИВНІ НАВЧАЛЬНІ МАТЕРІАЛИ
### 📚 ЛЕКЦІЙНІ МАТЕРІАЛИ (21 інтерактивна HTML-лекція)
**Основні лекції (10 тем):**
1. **Лекція 1:** Вступ до розробки мобільних додатків
2. **Лекція 2:** Огляд платформ та інструментів
3. **Лекція 3:** Мова Dart та фреймворк Flutter
4. **Лекція 4:** Вступ до Flutter та архітектура додатків
5. **Лекція 5:** Розробка користувацького інтерфейсу
6. **Лекція 6:** Робота з даними та станом додатку
7. **Лекція 7:** Інтеграція з нативними функціями пристрою
8. **Лекція 8:** Тестування та відлагодження
9. **Лекція 9:** Оптимізація продуктивності та безпека
10. **Лекція 10:** Розгортання та публікація додатків
**Додаткові лекції (11 підтем):**
- **Лекція 6.2:** Локальне збереження даних
- **Лекція 6.3:** HTTP запити та робота з API
- **Лекція 7.1:** Використання плагінів у Flutter
- **Лекція 7.2:** Доступ до апаратних ресурсів
- **Лекція 7.3:** Дозволи та безпека
- **Лекція 8.1:** Типи тестування у Flutter
- **Лекція 8.2:** Інструменти відлагодження
- **Лекція 8.3:** Автоматизація тестування та CI/CD
- **Лекція 9.1:** Методи оптимізації продуктивності
- **Лекція 9.2:** Безпека даних користувачів
- **Лекція 9.3:** Практики безпечного кодування
- **Лекція 10.1:** Підготовка додатку до публікації
- **Лекція 10.2:** Публікація в App Store та Google Play
- **Лекція 10.3:** Моніторинг та аналітика
**Особливості інтерактивних лекцій:**
- ✅ Плаваюча кнопка навігації
- ✅ Кнопка повернення наверх
- ✅ Індикатор прогресу збоку
- ✅ Адаптивний дизайн для всіх пристроїв
- ✅ Плавні анімації та hover-ефекти
- ✅ Підтримка клавіатури (стрілки, Space, Home, End)
- ✅ Повний контент з оригінальних матеріалів
### 📝 ПРАКТИЧНІ МАТЕРІАЛИ (10 інтерактивних HTML-практичних робіт)
**Практичні роботи:**
1. **Практична робота 1:** Аналіз ринку та планування проекту
2. **Практична робота 2:** Встановлення та налаштування Flutter
3. **Практична робота 3:** Основи мови Dart
4. **Практична робота 4:** Архітектура Flutter додатків
5. **Практична робота 5:** Розробка користувацького інтерфейсу
6. **Практична робота 6:** Робота з даними та станом
7. **Практична робота 7:** Інтеграція з нативними функціями
8. **Практична робота 8:** Тестування та відлагодження
9. **Практична робота 9:** Оптимізація та безпека
10. **Практична робота 10:** Публікація додатків
**Особливості інтерактивних практичних робіт:**
- ✅ **Інтерактивні чекбокси** для завдань
- ✅ **Збереження прогресу** в localStorage
- ✅ **Візуальні індикатори** завершених завдань
- ✅ Всі функції інтерактивних лекцій
- ✅ Автоматичне відстеження виконання
### 📋 ДОДАТКОВІ МАТЕРІАЛИ
**Планувальні документи:**
- **План лекцій (розширений)** - детальний план всіх лекцій
- **План практичних робіт (розширений)** - детальний план всіх практичних занять
**Допоміжні матеріали:**
- **FAQ** - часто задавані питання
- **Корисні ресурси** - посилання на документацію та інструменти
- **Критерії оцінювання** - детальні критерії оцінки робіт
- **Чек-лист студента** - перевірний список для студентів
## ТЕХНІЧНІ ОСОБЛИВОСТІ ІНТЕРАКТИВНИХ МАТЕРІАЛІВ
### 🎨 Дизайн та UX
- **Сучасний дизайн** з градієнтами та анімаціями
- **Адаптивність** для всіх пристроїв (мобільні, планшети, десктопи)
- **Плавні переходи** між секціями
- **Кольорове кодування** для різних типів контенту
- **Backdrop blur** ефекти для сучасного вигляду
### 🚀 Функціональність
- **Плаваюча навігація** - завжди доступні кнопки переходу
- **Прогрес-трекінг** - візуальне відстеження прогресу
- **Збереження стану** - автоматичне збереження прогресу
- **Клавіатурна підтримка** - швидка навігація
- **Мобільна оптимізація** - зручне використання на телефонах
### 📊 Аналітика та моніторинг
- **Відстеження прогресу** студентів
- **Статистика виконання** завдань
- **Автоматичне збереження** стану
- **Можливість додавання** аналітики
## РЕКОМЕНДОВАНІ РЕСУРСИ
**Офіційна документація:**
- [Flutter Documentation](https://flutter.dev/docs)
- [Dart Language Guide](https://dart.dev/guides)
- [Material Design Guidelines](https://material.io/design)
**Книги:**
- "Flutter in Action" - Eric Windmill
- "Beginning Flutter: A Hands-On Guide to App Development" - Marco Napoli
- "Dart in Action" - Manning Publications
**Онлайн курси:**
- Flutter & Dart - The Complete Guide (Udemy)
- Flutter Development Bootcamp (Udemy)
- Google's Flutter Course (Coursera)
**Інструменти:**
- Android Studio / Visual Studio Code
- Flutter Inspector
- Firebase Console
- Postman (для тестування API)
## ПЕРЕДУМОВИ
- Базові знання програмування
- Завершений курс "Цифровий дизайн для мобільних платформ"
- Розуміння основ веб-технологій
- Досвід роботи з Git
## ОСОБЛИВОСТІ КУРСУ
1. **Проектно-орієнтоване навчання** - весь курс побудований навколо створення одного великого проекту
2. **Мультиплатформенність** - фокус на створенні додатків для Android та iOS одночасно
3. **Сучасні технології** - використання найновіших версій Flutter та Dart
4. **Практичний підхід** - максимум практики та мінімум теорії
5. **Інтеграція з дизайном** - використання знань з попереднього курсу
6. **Готовність до роботи** - студенти отримують навички, необхідні для реальних проектів
7. **Інтерактивні матеріали** - сучасні HTML-лекції та практичні роботи з покращеним UX
8. **Автоматизація** - Python скрипти для швидкого оновлення матеріалів
## СТАТИСТИКА СТВОРЕНИХ МАТЕРІАЛІВ
- **32 HTML-файли** створено загалом
- **21 інтерактивна лекція** з повним контентом
- **10 інтерактивних практичних робіт** з чекбоксами
- **1 інтерактивний план** практичних робіт
- **3 Python скрипти** для генерації та оновлення
- **Повний контент** з оригінальних Markdown файлів
- **Сучасний UI/UX** з анімаціями та інтерактивністю
## КОНТАКТИ
**Викладач:** к.т.н, доц. кафедри КІЕ, Котик Михайло Васильович
**Email:** mykhailo.kotyk@cnu.edu.ua