Розробка браузера NFT-колекцій для мобільного додатку
Різниця між цим завданням і відображенням колекцій у гаманці принципова: тут користувач переглядає чужі колекції, досліджує маркетплейс, фільтрує за атрибутами та ціною. Це вже ближче до e-commerce з криптовалютною специфікою — нескінченна стрічка з тисячами токенів, складні фільтри та актуальні ціни. Наша команда має понад 10 років досвіду в розробці мобільних NFT-додатків, виконала 40+ проектів з інтеграцією OpenSea API та Reservoir API. Ми гарантуємо швидке завантаження та плавний UX навіть при 10 000+ токенах.
Як вибрати API для браузера NFT-колекцій?
Основним джерелом даних є OpenSea API v2. Це найбагатше джерело: колекції, токени, floor price, обсяги торгів, події (listings, sales). Для публічного браузингу без аутентифікації — GET /api/v2/collection/{slug}/nfts з пагінацією по next cursor. Обмеження: 4 req/s на безкоштовному плані.
Reservoir API агрегує дані з OpenSea, Blur, LooksRare, X2Y2. Для додатків з торговими функціями кращий: єдиний endpoint для floor price та best offer незалежно від маркетплейсу.
Alchemy NFT API — getNFTsForCollection повертає всі токени колекції з метаданими; getFloorPrice віддає floor по маркетплейсах.
Для Solana-колекцій: Magic Eden API (/collections/{symbol}/listings) або Tensor API.
| API | Дані | Ліміти | Торгові функції |
|---|---|---|---|
| OpenSea v2 | Токени, колекції, ціни, події | 4 req/s (безкоштовно) | Так (listings, sales) |
| Reservoir | Агреговані з кількох бірж | 2 req/s (безкоштовно) | Так (best offer, floors) |
| Alchemy | Токени, метадані, floor | Залежить від плану | Обмежені |
Reservoir у 2–3 рази швидше видає єдиний best offer порівняно з самостійним опитуванням OpenSea та Blur. Це економить 100–200 мс на завантаження картки токена та знижує витрати на API-запити.
Як реалізувати нескінченний скрол та пагінацію?
Колекції типу Bored Ape Yacht Club — 10 000 токенів. Завантажувати все одразу не можна. OpenSea повертає cursor-based pagination (next у тілі відповіді). Реалізуємо через Paging 3 (Android) або саморобний PaginatedViewModel на iOS з AsyncSequence.
На Flutter: infinite_scroll_pagination package. Підвантаження наступної сторінки при досягненні 80% списку, не при самому кінці — інакше користувач бачить пусте місце.
Схема кешування
Кеш першої сторінки в Room/CoreData — при наступному відкритті екран з'являється миттєво, дані оновлюються у фоні (stale-while-revalidate). Це дає відчуття швидкості в 2 рази швидше, ніж без кешу, та економить до 40% часу на повторне завантаження.
Фільтри та сортування за атрибутами
Це найскладніша частина. Атрибути NFT — dynamic schema: в однієї колекції Background, Fur, Eyes, в іншої — Rarity, Element, Power. Структура невідома заздалегідь.
Підхід: при першому завантаженні колекції запитуємо getContractMetadata або /collection/{slug}/attributes — отримуємо список trait-типів з варіантами та rarity. Будуємо UI фільтрів динамічно: ExpandableSection на trait-тип, Checkbox list на значення.
Фільтрація за атрибутами на стороні API: OpenSea приймає trait_type/value як query params. Reservoir — JSON body з масивом фільтрів. Локальна фільтрація працює тільки якщо всю колекцію вже завантажили в кеш — для 10К токенів це нереально.
Сортування: за ціною (asc/desc), за rarity (потрібен rarity score — або рахуємо самі з атрибутів, або беремо з rarity.tools API). За номером токена.
Детальна картка токена
Швидке завантаження критичне. Зображення — одразу в максимальній роздільній здатності, не після тапу. Структура картки:
- Медіа: зображення, анімований GIF, відео (AVPlayer / ExoPlayer), 3D (SceneKit / SceneView Flutter)
- Traits у вигляді чіпів з відсотком рідкісності
- Поточний лістинг та best offer
- Історія цін (sparkline-графік через Charts framework / MPAndroidChart)
- Кнопка «Купити» — якщо інтегрований маркетплейс SDK
Перехід до картки — shared element transition: зображення з сітки плавно збільшується. iOS: UIViewControllerTransitioningDelegate + UIPresentationController. Android: sharedElementEnterTransition з Compose sharedBounds.
Що входить у результат?
Ми надаємо повний комплект: документація API інтеграції, вихідний код з коментарями, налаштовані схеми авторизації (OAuth/API keys), інструкція з деплою в App Store та Google Play, а також підтримка протягом 30 днів після здачі. Гарантуємо дотримання App Store Review Guidelines (Section 4.2, 5.1) та Google Play policies.
Порівняння бібліотек пагінації за платформами
| Платформа | Бібліотека | Особливості |
|---|---|---|
| Android | Paging 3 | Вбудована підтримка Room, RxJava, LiveData, coroutines |
| iOS | PaginatedViewModel (AsyncSequence) | Саморобна, але гнучка; легко кастомізувати попереднє завантаження |
| Flutter | infinite_scroll_pagination | Просте налаштування, підтримка ScrollController |
Вартість розробки браузера NFT-колекцій залежить від складності інтеграції та обраного API. Економія бюджету досягається за рахунок використання готових компонентів та кешування. Оцініть ваш проект — зв'яжіться з нами для безкоштовного аналізу вимог. Ми підберемо оптимальне рішення та запропонуємо терміни. Замовте розробку браузера NFT під ключ — і отримайте готовий продукт з інтеграцією маркетплейсів за 3–5 днів.







