Skip to content

avito-tech/android-trainee-assignment-2024

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Тестовое задание для стажёра Android

Суть задания

Разработать фронтенд приложения для быстрого поиска информации по фильмам и сериалам с платформы «Кинопоиска».

Общие вводные

  • Тестовое необходимо реализовать с использованием API Кинопоиска. Токен для доступа API  предоставлен отдельно в письме с почты interships@avito.ru.
  • Важно: при работе над тестовым, убедитесь, что токен не расположен в вашем GitHub публично
  • Результат тестового должен соответствовать требованиям описанным ниже. 
  • В пунктах «Будет плюсом» обозначены требования, выполнять которые не обязательно, но даже частичное выполнение этих пунктов позволит лучше раскрыть ваши знания и навыки.

Функциональные требования

Приложение должно состоять из двух страниц:

  1. Страница со списком всех фильмов
  2. Страница отдельного фильма

На странице со списком всех фильмов:

  1. Отображается список фильмов и сериалов
  2. Реализована пагинация
  3. Можно отфильтровать выдачу по году, стране и возрастному рейтингу
  4. Реализован поиск по названию фильма
  5. Можно перейти на страницу фильма из выдачи

Будет плюсом:

  1. Если история поиска сохраняется (последние 20 результатов)
  2. Если поиск будет осуществляться не при каждом вводе символа, а в момент когда с ввода последнего символа прошла 1 секунда (debounce)

На странице с отдельным фильмом:

  1. Отображается информация о фильме или сериале, в том числе:
    • название фильма/сериала
    • описание
    • рейтинг
    • отзывы
    • постеры
  2. В случае, если какой-то из списков пустой (список отзывов, актёров, сезонов), реализовано отображение заглушки на подобие «нет информации о ...»
  3. В случае если изображение по URL не загружается убрать его из верстки/поставить заглушку
  4. Реализована кнопка «назад», которая ведет на выдачу. Фильтры и номер страницы при этом должны сохраняться.

Будет плюсом:

  1. Если реализована пагинация: 
    • для списка актеров (если их больше 10)
    • для списка сезонов и серий (если есть)
    • для отзывов пользователей
  2. Если постеры отображаются в виде «карусели»
  3. Если для пользователя есть возможность установить фильтры: по жанру, по стране производства, по типу контента (сериал/фильм), по году выхода, по рейтингу Кинопоиска (от конкретного значения), поиск по сети производства (HBO,  Netflix  и т.п.)
  4. Если есть кэширование запросов и реализована возможность работы приложения в офлайн-моде с поиском из уже закэшированных фильмов

Нефункциональные требования

  1. Язык: kotlin
  2. Работа с сетью: Retrofit, OkHttp
  3. Многопоточность: Kotlin Coroutines/Flow, RxJava 2/3
  4. View: XML, Jetpack Compose
  5. Сериализаторы: Kotlinx Serialization, Gson, Moshi
  6. Навигация: Activity, Fragment, Jetpack Navigation
  7. Архитектура: MVVM/MVI**

Напомним, важно: при работе над тестовым, убедитесь, что токен не расположен в вашем GitHub публично

Будет плюсом:

  1. Покрытие кода юнит-тестами
  2. Dagger
  3. Использование чистой архитектуры

Ход решения

Если у вас возникнут вопросы по заданию, ответы на которые вы не найдете в описанных требованиях, то вы вольны принимать решения самостоятельно.
В таком случае приложите к проекту README-файл, в котором будет список вопросов/проблем, с которыми вы столкнулись, и поясните как вы их решили и почему именно таким образом. 

Оформление решения

Необходимо предоставить публичный git-репозиторий на любом публичном хосте (GitHub / GitLab / etc), содержащий в master/main ветке:

  1. Код сервиса
  2. Описанная в README.md инструкция по запуску
  3. Описанные в README.md вопросы/проблемы, с которыми столкнулись,  и ваша логика их решений (если требуется)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published