Приложение помогает пользователям просматривать и покупать NFT (Non-Fungible Token). Функционал покупки иммитируется с помощью мокового сервера. Цели приложения:
- просмотр коллекций NFT;
- просмотр и покупка NFT (иммитируется);
- просмотр и редактирование профиля;
- просмотр рейтинга пользователей.
Ссылка на скринкаст эпика "Профиль"
Ссылка на скринкаст эпика "Корзина"
Ссылка на скринкаст эпика "Статистика"
- Приложение демонстрирует каталог NFT, структурированных в виде коллекций
- Пользователь может посмотреть информацию о каталоге коллекций, выбранной коллекции и выбранном NFT.
- Пользователь может добавлять понравившиеся NFT в избранное.
- Пользователь может удалять и добавлять товары в корзину, а также оплачивать заказ (покупка иммитируется).
- Пользователь может посмотреть рейтинг пользователей и информацию о пользователях.
- Пользователь может смотреть информацию и своем профиле, включая информацию об избранных и принадлежащих ему NFT.
- Swift
- UIKit
- MVVM
- SPM
- Kingfisher
- ProgressHUD
- WebKit
- REST API
- UserDefaults
- AutoLayout programmatically
- Localization
- Dark Mode
Экран каталога
-
На экране каталога отображается таблица, показывающая доступные коллекции NFT.
-
Также на экране есть кнопка сортировки. Содержимое таблицы упорядочивается согласно выбранному способу.
-
При нажатии на одну из ячеек таблицы пользователь попадает на экран выбранной коллекции NFT.
Экран коллекции NFT
-
Экран отображает информацию о выбранной коллекции NFT.
-
При нажатии на имя автора коллекции открывается его сайт в вебвью.
-
При нажатии на сердечко производится добавление NFT в избранное / удаление NFT из избранного.
-
При нажатии на кнопку добавления NFT в корзину / удаления NFT из корзины производится добавление или удаление NFT из заказа (корзины). Изображение кнопки при этом меняется.
-
При нажатии на ячейку открывается экран NFT.
Экран NFT
Экран заказа
-
На экране таблицы отображается таблица со списком добавленных в заказ NFT.
-
При нажатии на кнопку удаления из корзины показывается экран подтверждения удаления.
-
Сверху на экране есть кнопка сортировки. Содержимое таблицы упорядочивается согласно выбранному способу.
-
Внизу экрана расположена панель с количеством NFT в заказе, общей ценой и кнопкой оплаты. При нажатии на кнопку оплаты происходит переход на экран выбора валюты.
Экран выбора валюты
-
Экран позволяет выбрать валюту для оплаты заказа.
-
Сверху экрана находится заголовок и кнопка возврата на предыдущий экран. Под ним - коллекция с доступными способами оплаты.
-
Внизу находится текст со ссылкой на пользовательское соглашение (открывается вебвью).
-
Под текстом - кнопка оплаты, при ее нажатии посылается запрос на сервер. Если сервер ответил, что оплата прошла успешно, то показывается экран с информацией об этом и кнопкой возврата в корзину. В случае неуспешной оплаты показывается соответствующий экран с кнопками повтора запроса и возврата в корзину.
Экран профиля
-
Экран показывает информацию о пользователе.
-
В правом верхнем углу экрана находится кнопка редактирования профиля. Нажав на нее, пользователь видит всплывающий экран, на котором может отредактировать имя пользователя, описание, сайт и ссылку на изображение.
Экран Мои NFT
-
Представляет собой таблицу c NFT.
-
Сверху на экране есть кнопка сортировки. Содержимое таблицы упорядочивается согласно выбранному способу.
-
В случае отсутствия NFT показывается соответствующая надпись.
Экран Избранные NFT
-
Содержит коллекцию c NFT, добавленными в избранное (лайкнутыми).
-
Нажатие на сердечко удаляет NFT из избранного, содержимое коллекции при этом обновляется.
-
В случае отсутствия избранных NFT показывается соответствующая надпись.
Экран рейтинга
-
Экран отображает список пользователей. Он представляет собой таблицу.
-
Сверху на экране есть кнопка сортировки. Содержимое таблицы упорядочивается согласно выбранному способу.
-
При нажатии на одну из ячеек происходит переход на экран информации о пользователе.
Экран информации о пользователе
-
Экран отображает информацию о пользователе.
-
Также он содержит кнопку перехода на сайт пользователя (открывается в вебвью) и возможность перехода на экран Коллекции пользователя.
Экран коллекции пользователя
- Содержит коллекцию c NFT пользователя.
На экранах «Каталог», «Корзина», «Мои NFT», «Статистика» есть настройка сортировки. Выбранный пользователем порядок сортировки должен сохраняться локально на устройстве. После перезапуска приложения восстанавливается предыдущее значение.