Do: Бирюков Aлександр
Contact: Telegram
Main:
[+] 1. На главном экране необходимо отображать список популярных фильмов.
[+] 2. В каждой карточке фильма на главной странице должны содержаться следующие элементы:
- 2.1 Наименование фильма.
- 2.2 Изображение-постер фильма.
- 2.3 Год выпуска.
[+] 3. При клике на карточку открывается экран с постером фильма, описанием, жанром, страной производства.
[+] 4. Если сеть недоступна или в процессе загрузки произошла ошибка, необходимо предусмотреть уведомление пользователя об этом.
Option:
[-] 1. При смене ориентации устройства, список фильмов занимает только 50% экрана, во второй половине будет отображаться описание фильма.
[+] 2. На главном экране присутствуют разделы «Популярное» и «Избранное». При длительном клике на карточку, фильм помещается в избранное и хранится в базе данных. Карточки фильмов из избранного доступны в оффлайн-режиме.
[+] 3. При просмотре популярных, выделяются фильмы, находящиеся в избранном.
[+] 4. В разделах доступен поиск фильмов по наименованию (в соответствии с выбранным разделом).
[+] 5. Обеспечена общая плавность и стабильность приложения.
[+] 6. Во время длительных загрузок, отображаются шиммеры/прогресс бары.
[-] 7. Ответы от API должны быть закешированы хотя бы на время сессии.
[-] 8. Приложение покрыто UNIT тестами.
Screeen Popolar | Screeen Popolar Dark | Screeen Favorite | Screeen Details |
---|---|---|---|
Screen Search | Screen Not Found | Screen Error Network | Screen Alert Add Film |
---|---|---|---|
- app
- core
- db
- designsystem
- navigation
- network
- utils
- widget
- feature
- details
- api
- impl
- favorites
- api
- impl
- popular
- api
- impl
- search
- api
- impl
- details
- core
2) API: Неофициальный API кинопоиска
- JetpackCompose
- MVI
- Navigation: Voyager
- Coil
Koin
Cach: Realm Network: Ktor + Kotlin Serialization