/MobileDev

Mobile development course for beginners

Технології створення програмних продуктів для мобільних платформ

Опис курсу

Курс складається з 18 лекцій, 9 лабораторних робіт і курсового проекту, 2 МКР. Пропорції оцінювання:

Дисципліна
  • МКР-1: 10 балів, обов'язково для першої атестації
  • МКР-2: 10 балів, обов'язково для другої атестації
  • Лабораторні роботи: 80 балів
Курсова – 100 балів відповідно реалізованому проекту

Завданням для лабораторних занять курсу і курсового проекту є створення концепції та розробка мобільного ПЗ для будь-якої сучасної мобільної платформи нативними або гібридними засобами. Завдання має бути зробленим командою не більше 3 студентів. У розробленому продукті бажана наявність наступних пунктів:

  • Робота із мережею
  • Робота із БД або файлами в internal/external storage застосунку
  • Відповідність HIG для iOS-застосунків та Material Design для Android-застосунків
  • Робота з сервісами телефону (камера, сервіси локації тощо)
  • Робота з зовнішнім API (можна власним), використання SDK
  • Використання кастомних анімацій

Лабораторні роботи і курсовий проект

Курсовий проект і лабораторні роботи можна поєднати в у виконанні. Курсовий проект складається з етапів, кожен з яких є лабораторною роботою.

  • Вибір ідеї, вибір інструментарію
  • Створення інтерактивного прототипу застосунку
  • Архітектура застосунку
  • Імплементація UI застосунку
  • Імплементація бізнес-логіки користувача
  • Імплементація взаємодії з мережею
  • Імплементація зберігання даних локально
  • Імплементація взаємодії з hardware пристрою
  • Імплементація тестів

Ви можете виконувати лабораторні роботи поетапно або захистити їх всі разом як цілісний проект. Ви можете зробити це протягом семестру на практичних заняттях або наприкінці семестру.

Обов'язкові компоненти проекту (оцінка E-D)
  • Вибір ідеї, вибір інструментарію – більш детально у відкритому issue
  • Створення інтерактивного прототипу застосунку
  • Архітектура застосунку
  • Імплементація UI застосунку
  • Імплементація бізнес-логіки користувача
Додаткові компоненти проекту, хоча б 1, більше – краще (оцінка C-А)
  • Імплементація взаємодії з мережею
  • Імплементація зберігання даних локально
  • Імплементація взаємодії з hardware пристрою
Для перфекціоністів (А100)
  • Імплементація тестів

Курсовий проект також має включати текстовий опис поетапного виконання роботи, обсяг пояснювальної записки ~ 20 сторінок.

Дедлайни і вимоги

  1. Лабораторні роботи / курсовий проект – середина травня
  2. МКР-1 – проводиться орієнтовно на лекції 8
  3. МКР-2 – проводиться орієнтовно на лекцїї 15

Детальніше про етапи курсового проекту / лабораторні

1. Вибір ідеї, вибір інструментарію
  • Розподілитись на команди (до 3 людей в залежності від складності задачі)
  • Cтворити ідею продукту, описати її.
  • Cтворити репозиторій в GitHub для подальшої роботи над проектом. Файл readme має містити:
    • Короткий опис ідеї
    • Визначення технічних вимог до застосунку (версія платформи, permissions)
    • Короткий опис потенційної аудиторії

Написати про склад команди розробників та надати посилання на репозиторій проекту сюди (без дублювання)

2. Створення дизайн-прототипу застосунку
  • Ознайомитись із загальними концепціями дизайну для iOS та Android
  • Розробити дизайн для застосунку, концепцію якого було затверджено у результаті виконання ЛР №1

Рекомендоване ПЗ для створення/роботи із дизайном:

Матеріали для ознайомлення:

3. Архітектура застосунку

Завданням ЛР є розробка архітектури програмного забезпечення. Потрібно обрати архітектурний підхід до розробки вашого застосунку серед відомих підходів MVC, MVP, MVVM, VIPER або розробити власну архітектуру, обрґрунтувати її доцільність для вашого проекту. Для демонстрації архітектури розробити схему взаємодії шарів застосунку і опублікувати цю схему в репозиторії.

4. Перенесення дизайну у застосунок. Створення прототипу.

Завданням ЛР є імплементація дизайн-прототипу засобами SDK, яке ви використовуєте в залежності від платформи. Загальною вимогою до розміток є відповідність дизайну та внесеним до нього рекомендаціям, стійкість до змін конфігурації телефону. Необхідно ознайомитися із документацією і ретельно продумати, які операції можна виокремити у вашому застосунку, яку архітектуру краще побудувати для реалізації необхідного функціоналу. У результаті ЛР має бути створено застосунок, який містить всі необхідні переходи між екранами, без реалізації сервісів безпоередньо.

Матеріали для ознайомлення:

5. Реалізація бізнес-логіки.

Завданням ЛР є розробка бізнес-логіки застосунку: обробка подій користувача, навігація, логіка застосунку окрім взаємодії з мережею і збереження даних локально.

6. Реалізація взаємодії із мережею.

Завданням ЛР є розробка частини застосунку, відповідну за взаємодію із мережею. Завдання ЛР включає:

  • Робота із сторонніми API або SDK, необхідних для застосунку (наприклад, API/SDK соціальних мереж, засобів оплати, SDK Google Maps тощо)
  • Робота із засобами аналітики застосунку або реклами (Firebase Analytics, AdMob)

Матеріали для ознайомлення:

Додаткову інформацію щодо конкретних API/SDK можна знайти на сайтах провайдерів API/SDK.

7. Робота із особливостями пристрою

Завданням ЛР є розробка частини застосунку, відповідної за роботу із особливостями пристрою. Завдання ЛР включає роботу із:

  • Камерою
  • GPS
  • Bluetooth
  • Мікрофон
  • Fingerprint
  • NFC тощо
8. Збереження даних.

Завданням ЛР є розробка частини застосунку, відповідної за роботу із збереженням даних (БД, файлова система тощо). Можна використовувати будь-який доцільний засіб збереження даних, якщо необхідно.

Матеріали для ознайомлення:

9. Розробка тестів для застосунку

Завданням є написання Unit-тестів для бізнес-логіки застосунку і написання UI-тестів для двох головних екранів вашого застосунку на ваш вибір.

Матеріали курсу

Лекції:

До вивчення рекомендовано наступні ресурси:

Android

Intermediate

Advanced

iOS

Beginner

Intermediate

Advanced

Зворотній зв'язок