Skip to content

Native Streams, Shipped

MiniVod Mobile is the native client for ViewMini's licensed VOD catalog — films and series aimed at Greek, English, and Arabic audiences across 170+ App Store and Play regions. Built in React Native against the same Django REST backend as the web product, it delivers native subscriptions, multi-provider sign-in, and the compliance bar both stores demand.

Context

MiniVod Mobile is the native client for ViewMini's licensed VOD catalog — films and series aimed at Greek, English, and Arabic audiences across 170+ App Store and Play regions. Built in React Native against the same Django REST backend as the web product, it delivers native subscriptions, multi-provider sign-in, and the compliance bar both stores demand.

Goals

  • Production streaming client targeting App Store and Google Play with episodic playback and entitlement gating.
  • Native monetization — auto-renewable subscriptions and one-time access passes via App Store and Play Billing.
  • Flexible sign-in — email/password, Sign in with Apple, and Google Sign-In on both platforms.
  • Trilingual, RTL-aware UX — English, Greek, and Arabic with device-locale detection.
  • Store compliance end-to-end — privacy disclosures, subscription terms, account deletion, and content-rights metadata.
  • Resilient subscriptions UI — plan cards that never dead-end when the store is slow or unavailable.
  • Secure sessions — Keychain-backed tokens, refresh rotation with blacklist, and in-app account deletion.

Constraints

  • Independent App Store and Play review gates — account deletion, IAP handling, and subscription disclosures each block launch on their own.
  • Native IAP only resolves under correct commercial agreements — banking, tax, and Paid Applications setup must be reflected in resilient UI.
  • Regulatory overhead — EU Digital Services Act trader verification and cross-border legal-entity setup (UAE/Greece).
  • Shipping without a local native toolchain — signing, versioning, and store uploads must be reproducible through CI/CD.
  • Arabic RTL plus correct pluralization and locale formatting across navigation, billing, and playback flows.

Approach

  • React Native (new architecture) with typed React Navigation, Zustand state, and a normalized Axios service layer.
  • Billing facade abstracting native store, mock, and Stripe modes — unified catalog with backend receipt validation.
  • Subscriptions screen hardened for review — fetch timeouts, inline retry, and always-visible Privacy/EULA links.
  • Platform OAuth pipeline for Apple and Google; Keychain token storage with tested account-deletion flow.
  • i18next with RTL support; Codemagic builds for TestFlight and Google Play closed testing, plus local StoreKit harness.

Results

  • Feature-complete, store-compliant streaming app for iOS and Android built from the ground up.
  • Full subscription lifecycle — product discovery, purchase, receipt validation, restore, and episode gating.
  • App Store compliance resolved across account deletion, subscription disclosures, and resilient IAP handling.
  • Trilingual RTL-capable UX with email, Apple, and Google auth working on both platforms.
  • Repeatable release pipeline — Codemagic to TestFlight and Play closed testing, plus local StoreKit test harness.
Approx. metrics
2 platforms (iOS + Android)170+ store regions3 languages (EN / EL / AR)

Stack

Frontend
React NativeTypeScriptReact NavigationZustandreact-native-iap
Backend
Django REST FrameworkJWTHerokuReceipt validation
Security
KeychainSign in with AppleGoogle Sign-InAccount deletionToken blacklist
Ops
CodemagicTestFlightGoogle Play ConsoleStoreKit configuration

Project Gallery

Native Streams, Shipped - 1
Native Streams, Shipped - 2
Native Streams, Shipped - 3
Native Streams, Shipped - 4
Native Streams, Shipped - 5