Skip to content

Latest commit

 

History

History
35 lines (25 loc) · 3.97 KB

File metadata and controls

35 lines (25 loc) · 3.97 KB

Выпускной проект

Требования к выпускному проекту

Функциональность

  • Вы можете выбрать тему приложения самостоятельно, это может быть клон Кинопоиска, трекер курса валют, todo-лист и т.п.
  • Ограничений по темам нет, но есть обязательные требования по функциональности:
  • В приложении должно быть минимум 3-4 экрана.
  • Добавьте в приложение сетевое взаимодействие. Вы можете использовать открытые API, например, из этого списка: Public APIs, использовать BaaS-сервисы или реализовать собственный бэкенд.
  • Большое внимание уделите дизайну приложения — он должен быть консистентным и аккуратным.

Архитектура и стек технологий

  • Проект должен быть реализован по Single Activity Application паттерну, то есть в приложении должна использоваться только одна активити, а остальные экраны реализуются через фрагменты или Compose.
  • Навигацию можно организовать с использованием библиотеки Navigation Component или другой популярной библиотеки.
  • Для презентационного слоя используйте архитектуру MVVM/MVI. Если будете использовать MVI, можете сделать самописный вариант или взять популярную библиотеку (при использовании сторонней библиотеки согласуйте это предварительно с руководителем курса).
  • Сделайте разбивку на слои. Слоистая или Чистая архитектура — выбирайте сами.
  • Желательно использовать Jetpack Compose, а не фрагменты, но это не обязательно.
  • Приложение должно быть многомодульным — декомпозируйте фичи по модулям.
  • Обязательно используйте DI для организации архитектуры. Желательно Dagger2 или Hilt; можно использовать Koin, если будете делать KMP-проект.
  • Для асинхронных операций используйте Kotlin Coroutines.
  • Для сетевого взаимодействия используйте Retrofit/Ktor. Для сериализации/десериализации JSON — Gson, Moshi или Kotlin Serialization.
  • Вы можете сделать проект с поддержкой KMP. Это будет плюсом, но не обязательно.
  • Покройте unit тестами 5 классов. Обязательно должна быть покрыта ViewModel (или её аналог, если используете MVI). Напишите UI тесты для одного пользовательского сценария.
  • Подключите к проекту статический анализатор Detekt.

Презентация

  • В репозиторий проекта добавьте описание приложения: что оно делает, какая используется архитектура (можно нарисовать схему) и добавьте скриншоты.

Вернуться на главную