Skip to content

stdimensiy/GeekBrains_Course_Popular_libraries_HW_My_GIT_API_App

Repository files navigation

GeekBrains_Course_AndroidOnKotlin_HW_My_Movie


Домашнее задание к занятию №2-6

Студента GeekBrains Веремеенко Дмитрия
Факультет: Android-разработки
Курс: Android 5. Популярные библиотеки: RxJava 2, Dagger 2, Moxy

Комплексное задание: простое приложение "небольшой клиент, относящийся к API GitHub" реализующее архитектурный паттерн MVP


### Текущий результат (Экраны списка пользователей и информации о пользователе)


#### Экран конвертера файлов


Задачи

  • Задача №1.1. Создать новый проект, создать приложение на основе кода, приведенного в методичке".
  • Задача №1.2. Реализовать экран пользователя, на котором отобразить его логин. Переход на экран осуществите по клику на пользователя в списке через router.navigateTo.
  • Задача №1.3. На основе материала урока реализовать single-Activity-приложение, реализующее MVP через Moxy, а навигацию — с применением Cicerone, подготовить структуру для выполнения следующих ДЗ.
  • Задача №2.1. #5 Переделать взаимодействие модели и логики в коде из второго урока на Rx-паттерн.
  • Задача №2.2. #6 Самостоятельно изучить оператор switchMap. Разобраться, как он работает и чем отличается от flatMap. Сформулировать и написать ответ в комментарии к практическому заданию. Для экспериментов можно воспользоваться приведённым на уроке примером с flatMap, заменив его на switchMap, а остальное оставить без изменений (необязательное / повышенной сложности)
  • Задача №3.1. Соблюдая MVP, написать маленькое приложение, которое по нажатию кнопки читает файл-картинку формата jpg из файловой системы, а затем конвертирует её в png и записывает обратно в файловую систему. Чтение и запись должны производиться не в UI-потоке.
    //... В рамках начатой работы над приложением API GitHub принято решение выполнить данное задание просто в отдельном фрагменте...//
  • Задача №3.2. Добавить в предыдущем примере возможность отказаться от проведения операции, выведя после начала в UI-поток диалоговое окно с надписью: «Выполняется конвертация» и кнопкой «Отменить». Для наглядности замедлить процессы в фоновом потоке посредством метода sleep() (необязательное / повышенной сложности)
  • Задача №4.1. По клику на пользователя отобразите список его репозиториев, воспользовавшись полями repos_url в api и аннотациями @Url библиотеки retrofit.
  • Задача №4.2. По клику на репозиторий в списке отобразите экран с информацией о нём ( например, количество форков)
  • Задача №5.1. Вытащить кеширование в отдельные классы RoomGithubUsersCache и RoomGithubRepositoriesCache. Организовать их внедрение в репозиторий через интерфейсы.
  • Задача №5.2. Реализовать свой кеш картинок, используя listener() библиотеки Glide. Картинки хранить на диске, а в Room — CahedImage(url, localPath). (Задание предназначено, чтобы поупражняться с Room...) (необязательное / повышенной сложности)
  • Задача №6.1. Вынести в модули все остальные зависимости, чтобы DI полностью сформировался через Dagger. Уберать лишние @Inject там, где они станут не нужны.

Отчет о выполнении:


✔️ Задание №1.1. - Выполнено в полном объеме.-
✔️ Задание №1.2. - Выполнено выполнено в полном объеме, с небольшими дополнениями.-
✔️ Задание №1.3. - Выполнено.-
✔️ Задание №2.1. - Выполнено. (пока методы использовал в развернутом виде, без лямбд, подписку организовал в главном потоке) -
✔️ Задание №2.2. - Выполнено.-
✔️ Задание №3.1. - Выполнено.-
✔️ Задание №3.2. - Выполнено.-
✔️ Задание №4.1. - Выполнено. Находится на проверке.-
✔️ Задание №4.2. - Выполнено. Находится на проверке.-
✍️ Задание №5.1. - Выполняется.-
🕑 Задание №5.2. - Ожидает выполнения.-
🔒 Задание №6.1. - Заблокировано (пока).-


StDimensiy 02.08.2021

About

A small application for working with the Github API, made as a practical task. GeekBrains, course of study: Popular libraries: RxJava 2, Dagger 2, Moxie.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages