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
В данном проекте использованы следующие принципы, паттерны и технологии (список обновляется по мере разработки приложения):
- "Чистая" архитектура. Каждый слой в отдельном модуле
- Паттерн MVVM для слоя presentation
- Single-Activity приложение
- Dagger2: для внедрения зависимостей
- OkHttpClient + Retrofit: для работы с network
- Room: для хранения кеша и списков фильмов "Избранное" и "Смотреть позже"
- Jetpack Paging3: для отображения данных от API
- Glide: для загрузки изображений по сети
- RxJava: реактивность/многопоточность
- Flow: реактивность/многопоточность Примечание: применение в проекте и RxJava, и Flow - чисто в демонстрационных целях
Кроме того, применены:
- SharedPreferences для хранения настроек приложения
- наиболее часто используемые стандартные view
- custom view (анимированный)
- анимированные переходы между фрагментами, в т.ч. c shared elements
COPYRIGHT:
- Источники данных о фильмах: https://imdb-api.com/ и https://api.themoviedb.org/
- Логотип приложения: Буква f иконки от Freepik - Flaticon