Skip to content

KazanExpress/android-test-task

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 

Repository files navigation

Тестовое задание на Android разработку

Тут находится описание тестового задания для кандидатов на Android-разработку в команду KazanExpress.

Задача

Нужно реализовать простое приложение, которое помогает пользователю найти интересующий его коктейль. Работать данное приложение должно с TheCocktailDb API.

Есть три уровня сложности: [Easy] - для претендующих на позицию Junior Android Dev [Medium] - для претендующих на позицию Middle Android Dev [Hard] - для претендующих на позицию Senior Android Dev

Требования к задаче

Ниже будут описаны требования для выполнения задачи к каждому из уровней сложности. Уровни Medium и Hard подразумевают собой выполнение предыдущего уровня сложности.

Easy

На начальном уровне сложности главной задачей приложения будет отрисовка экрана с информацией о коктейле. Для получения рандомного коктейля во время загрузки приложения можно использовать данный GET запрос.

Требования:

  • У приложения должны быть онбординги, на них можно отобразить любую информацию о приложении;
  • При запуске приложения на старте показываем индикатор прогресса на время ожидания ответа с сервера (по желанию можно добавить splash screen до экрана загрузки на свой вкус);
  • На странице коктейля должно быть отображено: фото коктейля, название, id, категория, тип коктейля, тип стакана для сервировки;
  • Статус бар должен быть прозрачным, а изображение коктейля "лежать" под статус баром;
  • Картинки коктейлей нужно подгружать асинхронно (на время загрузки показываьб индикатор прогресса);
  • Также дополнительно должен быть раздел "Ингридиенты", который появляется при скролле страницы товара;
  • Должна быть кнопка "Добавить в избранное" в виде иконки сердечка. При клике на иконку нужно менять ее состояние (полезная работа не выполняется, просто меняем состояние иконки - например, закрашиваем);
  • Через Pull-to-Refresh (Swipe-to-Refresh) отображать новый коктейль (повторно запросить рандомный и отрисовать);
  • Нужно уметь обрабатывать ошибки сети. При возникновении ошибки выводить кнопку Retry, при клике на которую приложение пытается загрузить новый коктейль и отобразить его.

Medium

Нужно реализовать все, что было перечислено в Easy, но помимо этого:

  • Сделать стартовый экран приложения с поисковой строкой и миниатюрными "карточками" уже посещённых коктейлей;
  • Позволить пользователю с помощью поисковой строки находить коктейли. В случае, если запрос на поиск по названию коктейля вернул результат, переходить на страницу первого элемента из списка. Если же запрос ничего не вернул - показывать соответствующий toast с информацией;
  • Добавить на страницу коктейля кнопку "Назад", которая возвращала бы на главный экран.

Hard

Нужно реализовать все, что было перечислено в Medium, но помимо этого:

  • Сделать навигационное меню с пунктами "Главная", "Категории" и "Избранное";
  • Функционал главной страницы оставить по аналогии с уровнем сложности Medium;
  • На странице "Категории" отобразить список категорий коктейлей;
  • При клике на любой элемент из списка категорий, отображать экран с каталогом миниатюрных "карточек" коктейлей из соответствующей категории;
  • Все картинки коктейлей на миниатюрах должны асинхронно подгружаться;
  • Каталог "карточек" должен появиться как только все данные по карточкам подгрузятся. Во время ожидания подгрузки нужно отображать скелетоны карточек;
  • Со страницы коктейля кнопка "Назад" должна отправлять пользователя на последний активный Activity.

Правила сдачи задания

Нужно будет создать Pull Request с ваши решением в данный репозиторий, а также отправить apk-файл на почту kevin@kazanexpress.ru.

Сроки - Easy и Medium - 7 дней, Hard - 14 дней.

P.S.

Приятный визуал приветствуется. Особое внимание будет уделено чистоте кода.

About

Simple test task for Android Dev candidates

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published