Skip to content

andreikslpv/FilmFinder

Repository files navigation

FilmFinder - это Android-приложение - демонстратор используемых мною технологий со следующими функциями:

  • поиск фильмов по базам данных сайтов https://imdb-api.com/ и https://api.themoviedb.org/
  • выбор и просмотр подборок фильмов, доступных на сайтах https://imdb-api.com/ и https://api.themoviedb.org/
  • кеширование в локальную базу данных подборок фильмов. Показ подборок из кеша и поиск по кешированным фильмам при работе "оффлайн"
  • переключение между источниками данных о фильмах - сайтами https://imdb-api.com/ и https://api.themoviedb.org/
  • просмотр детальной информации о выбранном фильме
  • сохранение выбранного фильма в списки "Избранное" и "Смотреть позже", а также просмотр содержимого данных списков Примечание: при использовании источника данных https://api.themoviedb.org/ на территории РФ необходим VPN

В данном проекте использованы следующие принципы, паттерны и технологии (список обновляется по мере разработки приложения):

  1. "Чистая" архитектура. Каждый слой в отдельном модуле
  2. Паттерн MVVM для слоя presentation
  3. Single-Activity приложение
  4. Dagger2: для внедрения зависимостей
  5. OkHttpClient + Retrofit: для работы с network
  6. Room: для хранения кеша и списков фильмов "Избранное" и "Смотреть позже"
  7. Jetpack Paging3: для отображения данных от API
  8. Glide: для загрузки изображений по сети
  9. RxJava: реактивность/многопоточность
  10. Flow: реактивность/многопоточность Примечание: применение в проекте и RxJava, и Flow - чисто в демонстрационных целях

Кроме того, применены:

  • SharedPreferences для хранения настроек приложения
  • наиболее часто используемые стандартные view
  • custom view (анимированный)
  • анимированные переходы между фрагментами, в т.ч. c shared elements

COPYRIGHT:

  1. Источники данных о фильмах: https://imdb-api.com/ и https://api.themoviedb.org/
  2. Логотип приложения: Буква f иконки от Freepik - Flaticon

About

Устаревший стек

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages