Skip to content
/ unsplash Public

Android Kotlin application with Unsplash API. Copy/silent fork of Team Project of myself and MrVSV: https://github.com/MrVSV/unsplash-homework for further improvements.

Notifications You must be signed in to change notification settings

maiow/unsplash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub last commit

Unsplash

Copy/silent fork of Team Project of myself and MrVSV: https://github.com/MrVSV/unsplash-homework for further improvements. Android Kotlin application with Unsplash API. Full support of Russian and English locales.

Onboarding:

onb

Authorization, search, like/unlike, user profile:

overview

Detailed photo screen. Show photo location on Google Maps. Download photo (made with Download Manager) and open it directly from the snackbar. Share link on photo.

detailed_overview

Unsplash users' collections screen:

collections_overview

Общая информация

Приложение для популярного сервиса с фотографиями Unsplash.
Позволяет смотреть фотографии, коллекции фотографий.
Позволяет лайкать и скачивать понравившиеся фотографии.

Обрабатываются состояния экранов («Ошибка»/«Лоадинг»/«Пусто»).
Добавлена иконка.
Приложение имеет минимум два языка: русский и английский.
Приложение может работать в любой ориентации: ландшафтной и портретной (отдельного дизайна для ландшафтной ориентации нет, использовать дизайн от портретной).
Приложение должно выглядеть похоже на экранах с различной плотностью и размерами.
Основная часть приложения доступна после авторизации с помощью аккаунта Unsplash (необходимо зарегистрироваться).
В основной части три раздела в bottom navigation menu: «Фотографии», «Коллекции», «Пользователь».
Общее описание API.
Target sdk = 30.
Min sdk = 21.
Подготовить приложение к релизу.

Сценарии использования
Хочу ознакомиться с основными функциями приложения на экране онбординга
Онбординг отображается сразу при первом запуске приложения.

Хочу авторизоваться
Экран авторизации отображается всегда следующим экраном после онбординга.
Пользоваться приложением без авторизации нельзя.
API

Аутентификация
Удостоверьтесь, что вы запрашиваете все требуемые scope во время авторизации.
Требуемые скоупы описаны в документации к методам API.

Хочу посмотреть список фотографий
Для каждой фотографии в списке отобразить картинку, лайк от текущего пользователя (или отсутствие лайка), общее количество лайков, создателя фотографии (имя/аватар).
Для списка есть пагинация.
Список кешируется в БД.
В случае отсутствия соединения с сетью отобразить закешированные фотографии из БД с оповещением пользователя.
API

Хочу посмотреть детальную информацию о фотографии
При нажатии на фотографию пользователь переходит на экран детальной информации фотографии.
Пользователь видит расширенную информацию:
Фотография.
Exif.
Локация (по нажатию на локацию открыть её в приложении с картами на устройстве).
Теги.
Информация об авторе.
Количество скачиваний.
Количество лайков.
Лайк от меня.
Кнопка «Скачать».
API

Хочу поделиться ссылкой на фотографию
На экране с детальной информацией по фото можно нажать на кнопку «Поделиться» в тулбаре.
В этот момент генерируется ссылка вида https://unsplash.com/photos/<photo_id>, которая может быть расшарена в другие приложения.
API не требуется, ссылка генерируется на клиенте.

Хочу открыть ссылку на фотографию в приложении
В приложении должна быть возможность поддержать открытие ссылок вида https://unsplash.com/photos/<photo_id>.
В этом случае должен открываться экран с детальной информацией по фото с указанным ID.
API не требуется.

Хочу скачать фотографию на устройство
По нажатию на кнопку «Скачать» на экране детальной информации о фотографии необходимо скачать фотографию в исходном качестве на устройство и сохранить в общедоступное место на диске.
В случае отсутствия сети отложить скачивание до момента появления сети и автоматически скачать фотографию позже.
По окончании загрузки показать snackbar, по нажатию на который откроется просмотр фотографии на устройстве с помощью внешнего приложения.
Если фотография загружалась в фоне, то показать оповещение после успешной загрузки.
По нажатию на оповещение открывается просмотр фотографии на устройстве с помощью внешнего приложения.
API
Скачать фотографию ― фотографию в исходном качестве можно получить из поля photo.urls.raw
Отслеживание загрузки фотографии

Хочу лайкнуть фотографию
На экране с детальной информацией и списке фото пользователь может поставить лайк фотографии и убрать лайк, если он уже стоит. В таком случае должны дополнительно обновиться счётчики лайков.
Операция производится только при наличии доступа в интернет.
API
Поставить лайк
Убрать лайк

Хочу найти фотографию
На списке фотографий есть элемент поиска в тулбаре. По нажатию на элемент поиска он превращается в поле для ввода.
Поиск реализовать либо на экране со списком, либо на отдельном экране, который будет открываться по нажатию на лупу поиска.
API

Хочу посмотреть список коллекций
По нажатию на таб с коллекциями фотографий открыть список коллекций фотографий.
Поведение списка аналогично списку фотографий.
По возможности ― кешировать информацию о полученных коллекциях.
API

Хочу посмотреть список фотографий в коллекции
По нажатию на коллекцию открыть экран с детальной информацией по коллекции и списком фотографий по коллекции.
По нажатию на фото можно открыть экран детальной информации.
По возможности ― кешировать информацию о полученных фотографиях в коллекции.
API
Фотографии коллекции
Коллекция

Хочу посмотреть свой профиль и понравившиеся мне фотографии
На вкладке с профилем вывести доступную информацию о текущем пользователе при наличии информации о местоположении.
Его можно посмотреть на карте во внешнем приложении.
API

Информация обо мне
Лайкнутые фотографии

Хочу выйти из профиля

При нажатии на кнопку выхода в профиле появляется диалог: «Вы уверены, что хотите выйти? Все локальные данные будут удалены.».
Если пользователь подтверждает, то происходит логаут и удаление всех локальных данных приложения.
Сразу после очистки и при последующих запусках приложения открывается экран авторизации.
API не требуется.

Материалы для работы
Прототип в Figma

Готовый проект проверяется по следующим критериям:
Пользователю доступны для использования основные функции Android-приложения.
Экраны отображается корректно, в соответствии с описанием функциональных возможностей.
В приложении корректно работает просмотр изображений.

Критерии оценки:
«Не зачтено» — требования к программе выполнены частично.
«Зачтено» — выполнены все требования к программе.

About

Android Kotlin application with Unsplash API. Copy/silent fork of Team Project of myself and MrVSV: https://github.com/MrVSV/unsplash-homework for further improvements.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages