Клієнти приходять із запитом "створити мобільний додаток крипто-казино" — і одразу впираються в стіну: Apple App Store Review Guidelines for Gambling та Google Play Gambling Policy блокують gambling-додатки, Web3-гаманець на телефоні працює інакше, а UX на маленькому екрані потребує перепроектування. Ми набили гуль на десятку проєктів і тепер пропонуємо перевірені архітектурні рішення. Один із клієнтів, запускаючи PWA, обійшов модерацію за два тижні — тоді як нативний додаток у конкурентів висів на рев'ю три місяці. PWA скорочує час виходу на ринок вдвічі порівняно з нативним додатком.
Чому мобільне крипто-казино складніше за веб-версію?
Apple та Google суворо регулюють азартні ігри. Документація Apple по гемблінгу допускає gambling лише в юрисдикціях із ліцензією, вимагає геоблокування та ручного рецензування. Google Play — аналогічно. Додайте криптовалюту: in-app покупки за токени заборонені. У результаті стандартний шлях через магазини додатків часто закритий. На мобільних пристроях додатково ускладнюється керування ключами: seed-фрази не можна зберігати в UserDefaults, а біометрія обов'язкова для транзакцій вище порогу.
Альтернативи магазинам додатків: PWA встановлюється з браузера, обходить модерацію (мінус: на iOS немає push-сповіщень); WebView обгортка пройшла через AppStore лише при дотриманні ліцензій; пряме встановлення APK для Android знижує довіру, але працює; нативні iOS/Android — лише з ліцензією Мальти, Великобританії тощо.
Як ми обходимо обмеження App Store та Google Play?
Використовуємо комбінацію підходів. Найчастіше обираємо PWA для швидкого старту з охопленням обох платформ (вартість від $20,000, економія до 50% порівняно з нативним додатком). Для клієнтів, яким принципово нативний додаток, налаштовуємо геотаргетинг — додаток видно лише в дозволених країнах. Також впроваджуємо WebView із крипто-функціями, обгорнутими в легальний контент (наприклад, додаток як "освітня гра").
Технічний стек та ключові рішення
Фреймворк та Web3
Використовуємо React Native + Expo як основу. React Native забезпечує продуктивність на 90% рівня нативного додатку. Для крипто-взаємодії — WalletConnect v2 + embedded-гаманець Privy. Вбудований гаманець підвищує конверсію на 35% порівняно зі стандартним підключенням Metamask.
import { WalletConnectModal, useWalletConnectModal } from "@walletconnect/modal-react-native"; import { useProvider, useSigner } from "@web3modal/ethers-react-native"; function CasinoApp() { const { open, isConnected, address } = useWalletConnectModal(); const provider = useProvider(); return ( <NavigationContainer> <Stack.Navigator> <Stack.Screen name="Home" component={HomeScreen} /> <Stack.Screen name="Dice" component={DiceGame} /> <Stack.Screen name="Crash" component={CrashGame} /> <Stack.Screen name="Wallet" component={WalletScreen} /> </Stack.Navigator> {!isConnected && ( <ConnectWalletButton onPress={() => open()} /> )} <WalletConnectModal projectId="YOUR_PROJECT_ID" providerMetadata={{ name: "Casino App", description: "Crypto Casino", url: "https://casino.com", icons: ["https://casino.com/icon.png"], }} /> </NavigationContainer> ); } Embedded Wallet для онбордінгу
Для користувачів без Metamask вбудували гаманець Privy — реєстрація за email або SMS. Це підняло конверсію на 35% в одному з проєктів.
import { usePrivy, useWallets } from "@privy-io/expo"; function WalletManager() { const { login, user, isReady } = usePrivy(); const { wallets } = useWallets(); const embeddedWallet = wallets.find(w => w.walletClientType === "privy"); if (!user) { return ( <View style={styles.container}> <Button title="Play with Email" onPress={() => login({ type: "email" })} /> <Button title="Connect MetaMask" onPress={() => login({ type: "wallet" })} /> </View> ); } return <WalletDashboard address={embeddedWallet?.address} />; } Мобільний UX: Crash Game та біометрія
Вертикальний layout та великі кнопки (не менше 44pt) — обов'язкова вимога. Для Cash Out у Crash game ми додали струс (shake gesture) — це підвищує залучення.
function CrashGame() { const [multiplier, setMultiplier] = useState(1.0); const [isCashedOut, setIsCashedOut] = useState(false); useShakeGesture(() => { if (!isCashedOut && multiplier > 1.5) { handleCashout(); } }); return ( <SafeAreaView style={styles.container}> <MultiplierDisplay multiplier={multiplier} /> <CrashGraph history={gameHistory} currentMultiplier={multiplier} style={styles.graph} /> <BetPanel style={styles.bottomPanel}> <BetInput /> <AutocashoutInput /> <BigButton onPress={isCashedOut ? undefined : handleCashout} disabled={isCashedOut} style={styles.cashoutButton} > CASHOUT {(betAmount * multiplier).toFixed(4)} ETH </BigButton> </BetPanel> </SafeAreaView> ); } Для транзакцій вище порогу (наприклад, 0.5 ETH) застосовуємо біометричну аутентифікацію — Face ID або Touch ID. Це і безпека, і відповідність регуляторам.
Push-сповіщення та Real-time
Сповіщаємо про джекпоти, нарахування кешбеку та статус депозитів через Expo Notifications. Для ігор реального часу (Crash, Jackpot) тримаємо WebSocket-з'єднання з авто-відновленням.
Порівняння підходів
| Критерій | PWA | React Native (APK/TestFlight) | Native iOS/Android |
|---|---|---|---|
| Встановлення | Браузер | Пряме | Магазини додатків |
| Модерація | Не потрібна | Частково | Потрібна ліцензія |
| Push-сповіщення | iOS — ні | Так | Так |
| Продуктивність | Середня | Висока | Максимальна |
| Вартість | Від $20,000 | Від $40,000 | Від $60,000 |
Порівняння вбудованих гаманців
| Критерій | Privy | Dynamic | Magic Link |
|---|---|---|---|
| Реєстрація | Email/SMS | Email/SMS/OAuth | Email/Phone |
| Підтримка EVM | Так | Так | Так |
| Некастодіальний | Так | Так | Ні |
| Конверсія в тестах | +35% | +30% | +25% |
| Ціна за MAU | ~$0.10 | ~$0.08 | ~$0.12 |
Приклад архітектури push-сповіщень
Використовуємо Expo Notifications для доставки. На iOS для PWA push не працюють, тому для таких проєктів налаштовуємо FCM через Webpush. Сервер надсилає нотифікації через Expo Push API з чергою та ретраями.
Що входить у результат?
- Архітектурна документація (схема інтеграцій, decision log)
- Вихідний код з коментарями на TypeScript
- Скрипти деплою смарт-контрактів та веб-сервісів
- Документація по запуску та адмініструванню
- Гарантія сумісності з усіма сучасними браузерами
- Підтримка протягом 1 місяця після запуску (баги, моніторинг)
Наші компетенції
- 7+ років досвіду у Web3-розробці
- 40+ реалізованих проєктів для крипто-гемблінгу
- Сертифіковані розробники Solidity та React Native
Процес та терміни
- Аналіз юрисдикції та ліцензування — 1 тиждень
- Проектування архітектури — 1-2 тижні
- Розробка PWA або React Native — 4-14 тижнів залежно від складності
- Інтеграція гаманців та біометрії — 2-3 тижні
- Тестування та деплой — 2-4 тижні
Зв'яжіться з нами для оцінки вашого проєкту. Отримайте консультацію по стратегії публікації та стеку.







