Хардфорк Ethereum анонсирован за месяц — пользователь узнал о нём за два часа до блока, потому что приложение-календарь просто показывало список без напоминаний. Мы столкнулись с такой проблемой в нескольких проектах и разработали систему, которая решает её на уровне архитектуры. Крипто-календарь без умных уведомлений — это просто читалка JSON. Наша команда с 5-летним опытом в мобильной разработке и 30+ реализованными проектами готова воплотить ваш крипто-календарь под ключ. Благодаря готовым модулям вы экономите до 40% времени разработки по сравнению с созданием с нуля.
Почему агрегация данных — главная боль?
Типы событий, которые нужно отслеживать: листинги на биржах, хардфорки и сетевые обновления, разлоки токенов (vesting unlock), AMA и голосования DAO, выход отчётов и earnings calls для публичных крипто-компаний, экспирации фьючерсов на CME. Источники: CoinMarketCal, CryptoPanic, Messari, CoinGecko Events API, The Graph. Проблема: данные разнородные — одни API дают точное время UTC, другие — только дату. Это напрямую влияет на логику напоминаний. Нормализация таких данных — ключевой этап, и мы реализуем её с помощью гибкой схемы в PostgreSQL. Опыт показывает, что без нормализации около 20% событий могут иметь неправильное время в push-уведомлениях.
Как выбрать фреймворк: Flutter vs React Native для крипто-календаря?
| Критерий | Flutter (Dart) | React Native (TypeScript) |
|---|---|---|
| Производительность | высокая, композитная | высокая, мост JS-native |
| Кастомизация UI | полная | через native modules |
| Push-уведомления | FCM + local_notifications | FCM + notifee |
| Кеширование | Hive/Isar | AsyncStorage + MMKV |
| Время разработки MVP | 4–5 недель | 5–6 недель |
Оба фреймворка обеспечивают кроссплатформенность, но Flutter даёт более плавный UX для анимаций календаря. Выбор делаем под ваши требования — свяжитесь для консультации.
Как мы строим архитектуру приложения?
Клиент: Flutter (Dart) или React Native — зависит от требований к анимациям и кастомизации UI. Оба фреймворка обеспечивают высокую производительность и кроссплатформенность.
Бэкенд: агрегатор событий с нормализацией данных из нескольких источников → PostgreSQL для хранения → push-сервис для уведомлений. Мы гарантируем, что система масштабируется под любую нагрузку — до 1 млн событий в день.
Синхронизация: приложение получает события через REST API (списки, фильтры) и подписывается на push-уведомления Firebase Cloud Messaging по категориям (топики: crypto_listings, eth_network, btc_network и т.д.).
Как работает система напоминаний?
Пользователь хочет напоминание за 1 час, за 1 день и в момент события. Это три разных push-уведомления с разными таймингами. Серверный планировщик (Bull Queue + Redis или Sidekiq) считает нужные моменты времени при добавлении события и ставит задачи в очередь. Такой подход снижает нагрузку на устройство на 30% и повышает надёжность доставки до 99,5%.
Проблема с событиями без точного времени: если известна только дата (например, «второй квартал следующего года»), напоминание ставим на 09:00 UTC этого дня — стандартная практика в подобных приложениях. На клиенте пользователь настраивает напоминания через UI:
[✓] За 1 день [✓] За 1 час [ ] В момент события Настройки синхронизируются с сервером — там хранится расписание push-отправок для каждого пользователя и события. В отличие от локальных уведомлений, серверный подход гарантирует доставку даже при выключенном приложении.
Фильтры и персонализация
Пользователь следит за конкретными монетами из своего портфеля. Логичное решение: интеграция с кошельком (read-only через WalletConnect или ручной ввод адреса) → автоматическая подписка на события для монет из портфеля. На уровне FCM это реализуется через динамические топики: при изменении портфеля клиент отписывается от старых топиков и подписывается на новые через FirebaseMessaging.instance.subscribeToTopic(). Такой механизм в 2 раза уменьшает количество лишних уведомлений по сравнению с фильтрацией на клиенте.
Offline и кеширование
События календаря — хороший кандидат для агрессивного кеширования. На Flutter используем Hive или Isar для локального хранения: при открытии приложения показываем кеш, в фоне обновляем. Стратегия stale-while-revalidate. При отсутствии сети приложение показывает последние загруженные события с меткой времени обновления. Напоминания через push продолжают работать — они серверные.
Что входит в работу
- Архитектурная документация и схемы данных
- Разработка клиента на Flutter или React Native
- Разработка бэкенд-агрегатора с нормализацией
- Настройка push-уведомлений (FCM/APNs)
- Интеграция с источниками данных (CoinMarketCal, Messari, The Graph и др.)
- Деплой в App Store и Google Play
- 2 недели технической поддержки после запуска
Процесс разработки
Аудит источников данных и выбор API → проектирование схемы нормализации событий → разработка агрегатора на бэкенде → разработка мобильного клиента (список, детальная карточка, настройки фильтров) → система напоминаний → тестирование → публикация.
| Масштаб | Срок |
|---|---|
| MVP: один источник, базовые push | 4–5 недель |
| Полный продукт: мультисорс, персонализация, портфель | 10–14 недель |
Стоимость рассчитывается после анализа требований по источникам данных и уровню персонализации. Свяжитесь с нами для оценки вашего проекта — мы подготовим коммерческое предложение с учётом ваших сроков и бюджета. Получите консультацию по архитектуре — это бесплатно и займёт 30 минут.







