Тестовое приложение для просмотра покемонов :)
Используя серверное API https://pokeapi.co/, написать Android-приложение в котором:
- Отобразить список из 30 покемонов на главном экране. Каждый элемент списка должен как минимум содержать название покемона и его изображение.
- Добавить возможность просмотра детальной информации о покемоне. Для этого сделать отдельный экран, на который можно попасть, кликнув по любому элементу списка покемонов. Детальная информация как минимум должна включать следующие поля: рост (height), вес (weight), род покемона (type, например: птица, насекомое, ядовитый и т. д.), информация (stats; включить поля attack, defense, hp).
- Реализовать постраничную подгрузку элементов списка покемонов следующим образом: во время скроллинга списка при достижении его конца загрузить следующие 30 элементов и отобразить в списке.
- Добавить кнопку на главный экран, при нажатии на которую список покемонов будет заново проинициализирован с началом на произвольном элементе из базы данных покемонов на сервере. При этом минимальная длина списка всегда должна быть не меньше 30 элементов.
- Добавить 3 флажка (CheckBox) на главный экран с надписями attack, defense и hp, реализующих следующее поведение. При активации флажка attack/defense/hp, осуществить поиск покемона с самым большим показателем в поле attack/defense/hp среди покемонов из текущего списка. Переместить найденного покемона в начало списка, проскроллить список вверх, если это необходимо, визуально выделить данный элемент списка. Если выделены два или три флажка, осуществить поиск покемона, у которого выбранные показатели больше остальных. Если невозможно однозначно определить самого сильного покемона по выбранным показателям, поступить на своё усмотрение.
ДОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ:
- Дополнение к пункту 5: выполнить поиск самого сильного покемона по одному выбранному показателю наиболее оптимальным способом.
- Вместо поиска (пункт 5) можно сделать сортировку текущего списка покемонов по выбранным показателям.
- Реализовать кеширование уже загруженных с сервера элементов списка таким образом, чтобы в случае отсутствия интернет-соединения при открытии приложения была доступна вся его функциональность.
● Google Jetpack
● Room
● Google paging library
● Retrofit
● Picasso
В приложениии реализованы постраничная подгрузка элементов, кэширование данных, сортировка списка по выбранным полям, а так же остальные поставленные задачи.