Flutter gallery app

Небольшое приложения галлереи на Flutter, написанное с использованием Riverpod. Архитектура частично основана на Clean architecture.

Приложение предоставляет возможность просмотра новых и популярных изображений из стороннего API. Оно также обладает функциональностью пагинации, обработкой ошибок и поддержкой кэширования.

Изначальные требования:

  • Имеет TapBar с двумя вкладками: New и Popular.
  • Имеет три экрана: New, Popular и экран подробной информации об изображении.
  • Обладает функциональностью загрузки изображений через сторонний API и вывод их на соответствующие экраны.
  • Поддерживает пагинацию: при прокрутке страницы до последнего видимого элемента подгружаются следующие изображения.
  • При отсутствии интернета выводит картинку об отсутствии соединения.
  • Имеет Pull-to-refresh на экранах New и Popular: при свайпе вниз очищаются предыдущие данные и делается новый запрос.
  • При нажатии на изображение открывается экран с подробной информацией, включая изображение, его название и описание.
  • Поддерживает просмотр контента в ландшафтном режиме.

Технологии и инструменты

  • Flutter версии 3.10.1
  • Dart версии 3.0.1
  • Riverpod для управления состоянием и внедрения зависимостей
  • Dio и Retrofit для выполнения запросов к API
  • Freezed для генерации моделей