Тестовое задание Gallery.
Разработать мобильное приложение, которое соответствует следующим требованиям:
- Имеет splash screen с лого компании.
- Имеет экран приветствия.
- Имеет экран Входа.
- Имеет экран регистрации.
- Имеет табы с нижней навигацией.
- Первый таб содержит две вкладки New & Popular:
- Второй таб содержит создание фото и выгрузку его на бэк (теги делать не нужно). Нужно выводить сразу этот дизайн https://www.figma.com/file/U0oHcjTijoYRdTNJpI1blY/Тестовое-Gallery?node-id=761%3A886
- Третий таб содержит профиль(общее кол-во просмотров можно не делать, общее кол-во загруженных фото можно взять с поля “totalItems”, подгружать все загруженные фото с бэка для текущего юзера).
- Создать подробный экран просмотра фотографии.
- Сделать экран настройки профиля.
- Сделать экран профиля.
- Сделать поиск.
- Вывод кэшированных данных при отсутствии интернета (если есть, иначе плейсхолдер).
- Сделать смену пароля.
- Сделать диалог загрузки при действиях (например, при нажатии на выгрузку файла на бэк или изменении настроек профиля)
По коду:
- Придерживаться чистой архитектуры.
- Разбить модули по чистой архитектуре.
- Придерживаться принципам SOLID.
- Использовать паттерн проектирования bloc (от Феликса (https://pub.dev/packages/flutter_bloc)).
- Использовать di.
- Создать базовую обработку ошибок с бэка и вывод их в ui.
-
- к 6 пункту выводить ошибки с бэка через диалоги (например создание фото, редактирование профиля).
- Сделать базовые блоки получения фотографий.
- Сделать базовую работу получения фотографий (абстракцию) .
- Кэшировать данные фотографий, которые получили с бэка (можно без фото, но остальные данные обязательно (название, описание и тд)), и юзера.
- Добавить локализацию.
- Валидаци инпутов через bloc.
- Сделать базовую обработку инпутов.
- Сделать базовую модель для пагинации.
- Использовать интерсептор.
- Создать и выносить ресурсы (например, строки, стили для текстов, ассеты).
P.S.
- Загрузка фотографий имеет пагинацию. Приложение должно подгружать не сразу все изображения, а по 10 за один запрос. При прокрутке страницы до последнего видимого элемента должен отображаться ProgressBar и делаться новый запрос на получение следующей партии изображений.
- При отсутствии интернета должна выводиться картинка об отсутствии интернет соединения (Пример имеется в дизайне).
- Профиль и первый таб имеет PullRefresh: приложение очищает предыдущие данные и заново делает запрос.
- При нажатии на изображение открывается экран подробной информации об изображении, где содержится само изображение, его название и описание. http://gallery.dev.webant.ru/api - апи для изображений https://www.figma.com/file/U0oHcjTijoYRdTNJpI1blY/Тестовое-Gallery?node-id=761%3A886 %D0%BE%D0%B2%D0%BE%D0%B5-Gallery?node-id=761%3A886 - figma Будут плюсом:
- добавить теги (локально или через firebase)
- добавить кол-во просмотров на фотографии (локально или через firebase)