Skip to content

holdbetter/FintechContest

Repository files navigation

Fintech Contest

Что делает?

Приложение загружает мемы с сайта developerslife.ru.

Категория: random

Стек

RxJava3 + Retrofit2 + Glide + ViewModel

Особенности

  • Исключено повторение мемов, загружаются только уникальные (в рамках сессии);
  • Только gif, другие формат исключены (фильтрация на клиентской стороне, публичного api не увидел, искать не стал);
  • Результаты кэшируются во ViewModel;
  • Различные состояния загрузки данных получают отклик в UI;
  • Исключительные ситуации обработаны по-разному. Типы исключений можно найти в package model, UI обработку в CardFragment.handleError(Throwable error);
  • UI различает загрузку JSON и .gif и предоставляет к каждому типу свой ProgressBar;
  • При отсутствии сети можно листать уже скачанные мемы;
  • Адресная строка сверху - ну это просто топ.

Если вдруг станет интересно...

Отвечаю на нереализованные дополнительные пункты:

Q: Почему не на Kotlin?

A: Пока неуверенно, заняло бы больше времени. Не знаком с корутинами вообще, а более гибкий ООП со всякими companion object того не стоил, хоть местами и очень хотелось.

Q: Где тесты?

A: Тесты были бы сложными, без DI тут никак, а опыта немного - вопрос времени.

Q: Где секции?

A: Начал делать, но не успел. В этом случае пришлось бы переписывать ViewModel часть + переносить всё в репозиторий, еще и поведение UI бы изменилось. Если бы API выдавало также по 1 записи, то вероятно, что успел бы к дедлайну.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages