/PokeApp

Test application for watching of pokemons

Primary LanguageJava

PokeApp

Тестовое приложение для просмотра покемонов :)

Суть задачи

Используя серверное API https://pokeapi.co/, написать Android-приложение в котором:

  1. Отобразить список из 30 покемонов на главном экране. Каждый элемент списка должен как минимум содержать название покемона и его изображение.
  2. Добавить возможность просмотра детальной информации о покемоне. Для этого сделать отдельный экран, на который можно попасть, кликнув по любому элементу списка покемонов. Детальная информация как минимум должна включать следующие поля: рост (height), вес (weight), род покемона (type, например: птица, насекомое, ядовитый и т. д.), информация (stats; включить поля attack, defense, hp).
  3. Реализовать постраничную подгрузку элементов списка покемонов следующим образом: во время скроллинга списка при достижении его конца загрузить следующие 30 элементов и отобразить в списке.
  4. Добавить кнопку на главный экран, при нажатии на которую список покемонов будет заново проинициализирован с началом на произвольном элементе из базы данных покемонов на сервере. При этом минимальная длина списка всегда должна быть не меньше 30 элементов.
  5. Добавить 3 флажка (CheckBox) на главный экран с надписями attack, defense и hp, реализующих следующее поведение. При активации флажка attack/defense/hp, осуществить поиск покемона с самым большим показателем в поле attack/defense/hp среди покемонов из текущего списка. Переместить найденного покемона в начало списка, проскроллить список вверх, если это необходимо, визуально выделить данный элемент списка. Если выделены два или три флажка, осуществить поиск покемона, у которого выбранные показатели больше остальных. Если невозможно однозначно определить самого сильного покемона по выбранным показателям, поступить на своё усмотрение.

ДОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ:

  1. Дополнение к пункту 5: выполнить поиск самого сильного покемона по одному выбранному показателю наиболее оптимальным способом.
  2. Вместо поиска (пункт 5) можно сделать сортировку текущего списка покемонов по выбранным показателям.
  3. Реализовать кеширование уже загруженных с сервера элементов списка таким образом, чтобы в случае отсутствия интернет-соединения при открытии приложения была доступна вся его функциональность.

Стек технологий

● Google Jetpack
● Room
● Google paging library
● Retrofit
● Picasso

Summary

В приложениии реализованы постраничная подгрузка элементов, кэширование данных, сортировка списка по выбранным полям, а так же остальные поставленные задачи.

Скриншоты

скриншот
скриншот
скриншот
скриншот