Mobile · iOS + Android

Bebblo — aplicație de parenting cu rating 4.8 în App Store, construită în React Native

Bebblo ajută proaspeții părinți să track-uieze alăptări, somn, scutece, creștere și primele realizări ale bebelușului. Aplicația are rating 4.8 în App Store și e disponibilă în 5 limbi. Provocarea tehnică: experiență fluidă offline-first, sincronizare pe mai multe device-uri, și monetizare IAP care funcționează pe ambele platforme.

IndustrieMobile / Parenting
Durată5 luni
StatusLive · App Store + Play Store
Echipă2 dezvoltatori + 1 designer
ȚarăRomânia

Contextul de business

Piața de aplicații baby tracker e saturată: peste 200 de aplicații concurente, majoritatea cu UX din 2018 și modele de monetizare agresive (paywall după 3 zile de trial, reclame full-screen între acțiuni). Bebblo trebuia să diferențieze prin: (1) UX modern, curat, fără reclame intruzive, (2) funcționare offline-first — o mamă la 3 dimineața nu așteaptă încărcare, (3) sincronizare între telefonul mamei și al tatălui, (4) tracking vizual al creșterii cu curbe OMS standard.

Stack-ul ales: React Native (bare workflow, fără Expo) pentru code-sharing între iOS și Android cu peste 90% reutilizare. Backend: Supabase self-hosted pentru auth, DB și storage. Monetizare: RevenueCat pentru gestionarea unified a IAP pe ambele platforme.

Bebblo — Dashboard Astăzi 6 alăptări · 4 somn 3h somn total Alăptat acum Somn nou Curba de creștere Lună 1-6 · P50 OMS 4.8★ App Store 1.240 rating-uri 5 limbi EN · RO · DE · ES · FR
Dashboard Bebblo + curba creștere OMS — design ilustrativ

Decizii tehnice cheie

1. React Native bare workflow pentru control nativ

Am ales React Native bare workflow (fără Expo managed) pentru control nativ asupra modulelor native: HealthKit (iOS) și Health Connect (Android) pentru import automat al datelor de sănătate, notificări locale programate, și cameră pentru primele fotografii. Code-sharing între platforme: 92%. Module native custom: 8 module.

2. Offline-first cu SQLite local + Supabase sync

Toate acțiunile (alăptare, somn, scutec) se salvează instant în SQLite local — zero latență, funcționează offline. Sincronizarea cu Supabase rulează în background când există conexiune. Conflict resolution: last-write-wins pe timestamp client. Utilizatorul nu vede niciodată un loading spinner la acțiuni de tracking.

3. RevenueCat pentru IAP unified

StoreKit (iOS) și Google Play Billing (Android) au API-uri complet diferite. RevenueCat abstractizează ambele: un singur SDK, un singur dashboard, sincronizare entități pe platforme (un utilizator care plătește pe iOS are premium și pe Android dacă folosește același cont). Modelul: freemium cu tracking nelimitat gratuit, premium €4.99/lună pentru sincronizare multi-device și rapoarte PDF.

React Native TypeScript Swift (HealthKit) Kotlin (Health Connect) SQLite Supabase RevenueCat Firebase Analytics Sentry

Provocări întâlnite

Provocarea 1: Notificări locale pe iOS cu permisiuni granulare

iOS 16+ necesită permisiune explicită pentru notificări programate. Utilizatorii de Bebblo sunt adesea somnoroși — UX-ul de permisiune trebuie să explice clar de ce. Soluție: pre-permission dialog custom (înainte de dialogul nativ iOS) care explică: «Bebblo te va notifica când e timpul pentru următoarea alăptare. Zero notificări marketing.» Rata acceptare: 78% (vs 52% înainte).

Provocarea 2: Sincronizare multi-device fără cont obligatoriu

Mulți utilizatori nu vor crea cont. Soluție: modul guest cu stocare locală doar (SQLite, fără sync). Pentru sync multi-device: cont opțional cu email magic link (fără parolă). Upgrade de la guest la cont păstrează toate datele locale prin migrare automată la prima sincronizare.

Provocarea 3: Revizuire App Store cu HealthKit

Apple rejectă aplicațiile care folosesc HealthKit fără justificare clară a utilizării datelor. Soluție: descriere precisă în App Review Notes, afișare disclosure în-app înainte de activare, și garantarea că datele HealthKit nu părăsc device-ul (nu se trimit la server). Approvare din prima încercare.

Rezultate măsurate

4.8★Rating App Store (1.240 review-uri)
92%Code-sharing iOS/Android (React Native)
5Limbi suportate (EN/RO/DE/ES/FR)
<100msLatență acțiune tracking (SQLite local)
78%Rată acceptare notificări (vs 52% baseline)
€4.99Preț premium/lună (freemium model)

Lecții pentru proiecte similare

  1. Offline-first cu SQLite local e singurul mod de a livra o experiență fără latență pentru aplicații de tracking. Nicio sincronizare cloud nu bate un query SQLite local sub 50ms.
  2. Pre-permission dialog înainte de dialogul nativ dublează rata de acceptare a notificărilor pe iOS. Contextul contează mai mult ca design-ul.
  3. RevenueCat elimină 90% din complexitatea IAP cross-platform. Nu construi propriul layer de billing — Apple și Google îl vor schimba.
  4. Guest mode fără cont obligatoriu crește retenția D1 cu aproximativ 35%. Conversion la cont vine natural când utilizatorul vrea sync.
  5. HealthKit/Health Connect necesită App Review documentation detaliată. Pregătește disclosure în-app și note de review clare din prima zi.

«Bebblo a ajuns la 4.8 stele în App Store cu peste 1.000 de rating-uri. Părinții folosesc aplicația la 3 dimineața — fără latență, fără reclame, fără fricțiune. Faintech a înțeles exact ce înseamnă UX pentru un utilizator epuizat.» — Eduard Gridan, founder Bebblo

Ai un proiect similar?

Discovery scris în 48h cu specificație tehnică detaliată. Plus calcul ROI pe stack alternativ.

Discută proiectul

Citește în continuare