Разработать фронтенд приложения для быстрого поиска информации по фильмам и сериалам с платформы «Кинопоиска».
- Тестовое необходимо реализовать с использованием API Кинопоиска. Токен для доступа API предоставлен отдельно в письме с почты interships@avito.ru.
- Важно: при работе над тестовым, убедитесь, что токен не расположен в вашем GitHub публично
- Результат тестового должен соответствовать требованиям описанным ниже.
- В пунктах «Будет плюсом» обозначены требования, выполнять которые не обязательно, но даже частичное выполнение этих пунктов позволит лучше раскрыть ваши знания и навыки.
Приложение должно состоять из двух страниц:
- Страница со списком всех фильмов
- Страница отдельного фильма
- Отображается список фильмов и сериалов
- Реализована пагинация
- Можно отфильтровать выдачу по году, стране и возрастному рейтингу
- Реализован поиск по названию фильма
- Можно перейти на страницу фильма из выдачи
- Если история поиска сохраняется (последние 20 результатов)
- Если поиск будет осуществляться не при каждом вводе символа, а в момент когда с ввода последнего символа прошла 1 секунда (debounce)
- Отображается информация о фильме или сериале, в том числе:
- название фильма/сериала
- описание
- рейтинг
- отзывы
- постеры
- В случае, если какой-то из списков пустой (список отзывов, актёров, сезонов), реализовано отображение заглушки на подобие «нет информации о ...»
- В случае если изображение по URL не загружается убрать его из верстки/поставить заглушку
- Реализована кнопка «назад», которая ведет на выдачу. Фильтры и номер страницы при этом должны сохраняться.
- Если реализована пагинация:
- для списка актеров (если их больше 10)
- для списка сезонов и серий (если есть)
- для отзывов пользователей
- Если постеры отображаются в виде «карусели»
- Если для пользователя есть возможность установить фильтры: по жанру, по стране производства, по типу контента (сериал/фильм), по году выхода, по рейтингу Кинопоиска (от конкретного значения), поиск по сети производства (HBO, Netflix и т.п.)
- Если есть кэширование запросов и реализована возможность работы приложения в офлайн-моде с поиском из уже закэшированных фильмов
- Язык: kotlin
- Работа с сетью: Retrofit, OkHttp
- Многопоточность: Kotlin Coroutines/Flow, RxJava 2/3
- View: XML, Jetpack Compose
- Сериализаторы: Kotlinx Serialization, Gson, Moshi
- Навигация: Activity, Fragment, Jetpack Navigation
- Архитектура: MVVM/MVI**
Напомним, важно: при работе над тестовым, убедитесь, что токен не расположен в вашем GitHub публично
- Покрытие кода юнит-тестами
- Dagger
- Использование чистой архитектуры
Если у вас возникнут вопросы по заданию, ответы на которые вы не найдете в описанных требованиях, то вы вольны принимать решения самостоятельно.
В таком случае приложите к проекту README-файл, в котором будет список вопросов/проблем, с которыми вы столкнулись, и поясните как вы их решили и почему именно таким образом.
Необходимо предоставить публичный git-репозиторий на любом публичном хосте (GitHub / GitLab / etc), содержащий в master/main ветке:
- Код сервиса
- Описанная в README.md инструкция по запуску
- Описанные в README.md вопросы/проблемы, с которыми столкнулись, и ваша логика их решений (если требуется)