MovieUnderBeer


three weeks later…


movie list screen

Use case:

  • Просмотр вертикального/горизонтального ячеек списка
  • Сортировка ячеек фильмов по жанру
  • Переход с ячейки фильмов на экран с деталями о фильме

movie details screen

Use case:

  • Просмотр вертикального/горизонтального деталей о фильме
  • Кнопка перехода назад

error alert dialog screen

Use case:

  • Просмотр вертикального/горизонтального информации об ошибке
  • Кнопка закрывающая окно

Использованные технологии:

  • kotlin
  • moxy
  • cicerone
  • dagger2
  • retrofit
  • croutines
  • gson

Дизайн сделан на основе:

  • material design
  • xml

Архитектура:

  • app
    • App
    • Constants – содержащий api url и base url images
  • di
    • modules
    • AppComponent
  • domain
    • entities – бизнес сущности и вспомогательные сущности для listAdapter
    • model – api retrofit, кастомный CallAdapterFactory и repositories
  • presentation
    • adapter – реализованный listAdapter общий для все
    • mvp – реализованный через moxy
    • navigation – навигация реализованная через cicerone
    • ui – fragments и составляющие адаптеры к фрагментам
    • single activity

Анализ выполненной работы

не реализованно:

  • снятие с выбранного жанра для возвращения к сортировках по всем фильмам
  • тёмная тема
  • анимация перехода на новый экран
  • возможность прогрузить данные в случае изначального включения приложения без интернета
  • toolbar по material design

Иная реализация:

  • single select нажатие по жанрам
    • при повороте экрана пропадает выделение с выбранного перед этим жанра(но выбранные фильмы в отсортированном списке по этому жанру остаются)

Категория- не баг, а фича:

  • доступно открытие нескольких подряд окон с фильмами которые пользователь подряд все просматривает

Реализация заданого по заданию функционала:

  • выполненно

Реализация дополнительного функционала:

  • приложение обрабатывает отсутствие интернета
  • есть обработка api ответа и сообщения в случае получения неправильного ответа с сервера

GitHub

View Github