Курс складається з 18 лекцій, 9 лабораторних робіт і курсового проекту, 2 МКР. Пропорції оцінювання:
- МКР-1: 10 балів, обов'язково для першої атестації
- МКР-2: 10 балів, обов'язково для другої атестації
- Лабораторні роботи: 80 балів
Завданням для лабораторних занять курсу і курсового проекту є створення концепції та розробка мобільного ПЗ для будь-якої сучасної мобільної платформи нативними або гібридними засобами. Завдання має бути зробленим командою не більше 3 студентів. У розробленому продукті бажана наявність наступних пунктів:
- Робота із мережею
- Робота із БД або файлами в internal/external storage застосунку
- Відповідність HIG для iOS-застосунків та Material Design для Android-застосунків
- Робота з сервісами телефону (камера, сервіси локації тощо)
- Робота з зовнішнім API (можна власним), використання SDK
- Використання кастомних анімацій
Курсовий проект і лабораторні роботи можна поєднати в у виконанні. Курсовий проект складається з етапів, кожен з яких є лабораторною роботою.
- Вибір ідеї, вибір інструментарію
- Створення інтерактивного прототипу застосунку
- Архітектура застосунку
- Імплементація UI застосунку
- Імплементація бізнес-логіки користувача
- Імплементація взаємодії з мережею
- Імплементація зберігання даних локально
- Імплементація взаємодії з hardware пристрою
- Імплементація тестів
Ви можете виконувати лабораторні роботи поетапно або захистити їх всі разом як цілісний проект. Ви можете зробити це протягом семестру на практичних заняттях або наприкінці семестру.
- Вибір ідеї, вибір інструментарію – більш детально у відкритому issue
- Створення інтерактивного прототипу застосунку
- Архітектура застосунку
- Імплементація UI застосунку
- Імплементація бізнес-логіки користувача
- Імплементація взаємодії з мережею
- Імплементація зберігання даних локально
- Імплементація взаємодії з hardware пристрою
- Імплементація тестів
Курсовий проект також має включати текстовий опис поетапного виконання роботи, обсяг пояснювальної записки ~ 20 сторінок.
- Лабораторні роботи / курсовий проект – середина травня
- МКР-1 – проводиться орієнтовно на лекції 8
- МКР-2 – проводиться орієнтовно на лекцїї 15
- Розподілитись на команди (до 3 людей в залежності від складності задачі)
- Cтворити ідею продукту, описати її.
- Cтворити репозиторій в GitHub для подальшої роботи над проектом. Файл readme має містити:
- Короткий опис ідеї
- Визначення технічних вимог до застосунку (версія платформи, permissions)
- Короткий опис потенційної аудиторії
Написати про склад команди розробників та надати посилання на репозиторій проекту сюди (без дублювання)
- Ознайомитись із загальними концепціями дизайну для iOS та Android
- Розробити дизайн для застосунку, концепцію якого було затверджено у результаті виконання ЛР №1
Рекомендоване ПЗ для створення/роботи із дизайном:
Матеріали для ознайомлення:
- Android
- iOS
- Sketch
Завданням ЛР є розробка архітектури програмного забезпечення. Потрібно обрати архітектурний підхід до розробки вашого застосунку серед відомих підходів MVC, MVP, MVVM, VIPER або розробити власну архітектуру, обрґрунтувати її доцільність для вашого проекту. Для демонстрації архітектури розробити схему взаємодії шарів застосунку і опублікувати цю схему в репозиторії.
Завданням ЛР є імплементація дизайн-прототипу засобами SDK, яке ви використовуєте в залежності від платформи. Загальною вимогою до розміток є відповідність дизайну та внесеним до нього рекомендаціям, стійкість до змін конфігурації телефону. Необхідно ознайомитися із документацією і ретельно продумати, які операції можна виокремити у вашому застосунку, яку архітектуру краще побудувати для реалізації необхідного функціоналу. У результаті ЛР має бути створено застосунок, який містить всі необхідні переходи між екранами, без реалізації сервісів безпоередньо.
Матеріали для ознайомлення:
- Android Basics Tutorial
- Android Jetpack
- Android Basics: User Interface (Udacity course)
- Android Basics: Multi-screen applications (Udacity course)
Завданням ЛР є розробка бізнес-логіки застосунку: обробка подій користувача, навігація, логіка застосунку окрім взаємодії з мережею і збереження даних локально.
Завданням ЛР є розробка частини застосунку, відповідну за взаємодію із мережею. Завдання ЛР включає:
- Робота із сторонніми API або SDK, необхідних для застосунку (наприклад, API/SDK соціальних мереж, засобів оплати, SDK Google Maps тощо)
- Робота із засобами аналітики застосунку або реклами (Firebase Analytics, AdMob)
Матеріали для ознайомлення:
Додаткову інформацію щодо конкретних API/SDK можна знайти на сайтах провайдерів API/SDK.
Завданням ЛР є розробка частини застосунку, відповідної за роботу із особливостями пристрою. Завдання ЛР включає роботу із:
- Камерою
- GPS
- Bluetooth
- Мікрофон
- Fingerprint
- NFC тощо
Завданням ЛР є розробка частини застосунку, відповідної за роботу із збереженням даних (БД, файлова система тощо). Можна використовувати будь-який доцільний засіб збереження даних, якщо необхідно.
Матеріали для ознайомлення:
Завданням є написання Unit-тестів для бізнес-логіки застосунку і написання UI-тестів для двох головних екранів вашого застосунку на ваш вибір.
Лекції:
- Лекція 1
- Лекція 2-3
- Лекція 4
- Лекція 5
- Лекція 6
- Лекція 7
- Лекція 8 (МКР-1)
- Лекція 9
- Лекція 10
- Лекція 11
- Лекція 12-13
- Лекція 14
- Лекція 15
- Лекція 16
- Лекція 17
До вивчення рекомендовано наступні ресурси:
- Android Developers: Tutorials and Reference
- Android Udacity courses list
- Kotlin language reference
- Android codelabs (from Google)
- Material Design Principles
- Developing Android Apps (for Java developers)
- Developing Android Apps (for Kotlin developers)
- Artem Chernenkiy in Telegram
- Lidiya Ivanova in Telegram