Приложение написано на Kotlin и Java (детали персонажей, локаций и эпизодов, а также их ViewModels)
При запуске приложения отображается Splash Screen. Эта активность отображается в качестве фона для системного окна, изображения основных персонажей, символизирующих приложение.
Приложение содержит нижнюю навигацию (BottomNavigationView) с 3 вкладками: персонажи, локации, эпизоды. Каждая вкладка имеет доступ к фильтрации и поиску для этой вкладки. При нажатии на элемент из списка открывается экран с детальной информацией.
Приложение поддерживает кеширование и имеет возможность работать без интернета. Функционал фильтрации также поддерживает работу без интернета. Все вкладки поддерживают Pull-to-Refresh. Во время загрузки данных отображается индикатор выполнения. Для работы с картинками использовалась библиотека Glide. Для фрагментов, содержащих RecyclerView, созданы адаптеры, отображающие списки. Также для каждого фрагмента создана своя ViewModel, которая получает данные и обрабатывает изменения.
- Kotlin
- Java
- Glide
- Coroutines
- RxJava
- Retrofit
- Pagging3
- Room
- Dagger2
- MVVM, Clean architecture
При запуске приложения запускается Splash Screen (gif animation), который символизирует название приложение по мультсериалу Rick and Morty.
После загрузки Splash Screen, мы увидим главный экран с персонажами, а так же есть навигация между 3 вкладками: персонажи, локации и эпизоды. Списки были созданы спомощи RecyclerView. А данные были взяты с официальнного сайта API. Получаем данные с помощь библиотеки Retrofit. Данные списка загружаются постранично с помощью библиотеки Pagging3, и сохраняются в нашу базу данных с помощью библиотеки Room.
При нажатии на персонажа мы переходим в детальную информацию о персонаже
В деталях персонажа мы можем увидеть детальную информацию о персонаже(п.2,3,4,5,6,7). На экране реализована кнопка назад (п.1), которая возвращает нас на главный экран. При нажатии на TextView "Происхождение" (п.6) мы переходим на детальнный экран локации. Аналогично если мы нажмем на "Местоположение" (п7) мы перейдем на детальную информацию локации. Также мы можем увидеть информацию в каких эпизодах присутсовал данный персонаж (п.8). При нажатии на элемент эпизода мы увидем детальную информацию эпизода.
Перейдя в детальную информацию эпизода мы увидим информацию: название эпизода (п.2), номер эпизода и его сезон(п.3) и дату выпуска (п.4). Также присутствует кнопка назад(п.1), которая при нажатии вернет нас назад в детали персонажа (откуда мы "пришли). В пункте 5 мы видим список персонажей, которые присутствует в данном эпизоде. При выборе персонажа мы перейдем на детальный экран конкретного персонажа.
Списки с локациями и эпизодами имеют аналогичный функционал приложения.
Во всех вкладках со списками (персонажи, локации, эпизоды) мы можем использовать поиск и фильтрацию.
Пример поиска по фильтрации для каждого списка.
При отсутствии интернет соединение приложение функционирует (не полностью).