Domov/ delo/GetThrivin Mobile App
Vodilni mobilni razvijalec · 2024 · Afriški trgi

GetThrivin Mobile App

Nativna mobilna učna izkušnja — učne poti, video lekcije, dnevni check-in, sledenje dosežkom in push obvestila — zgrajena za razvoj delovne sile na afriških trgih.

Vloga Lead Mobile Developer
Trajanje 2024
Trgi Afriški rollout · iOS + Android
Platforme ios · android
Področje LMS · HR · Mobilno učenje
Spletna stran getthrivin.com ↗
Izdane platforme
iOS + Android
ena sama koda
Build pipeline
EAS
avtomatiziran OTA + trgovina
Offline podpora
Da
trgi s slabo povezljivostjo
Push kanali
FCM + APNs
preko Expo Notifications
GetThrivin Mobile App screenshot

Pregled

Mobilna aplikacija je svoj lasten produkt. Medtem ko case GetThrivin platforme pokriva celoten stack — API, splet, SAML, Coursera — ta case govori o nativni plati: o tem, kaj je bilo potrebno, da smo zgradili učno izkušnjo, ki se je počutila pravilno na telefonu, v roki, na slabi LTE povezavi nekje v podsaharski Afriki. Zgradil sem jo od začetka z uporabo React Native in Expo managed workflowa, izdaja pa se tako za iOS kot Android iz ene same TypeScript kode.

State model temelji na Zustand — namerno lahek in serializabilen, kar je naredilo offline zgodbo mogočo brez posega po težkih rešitvah. Napredek lekcij, oznake za dokončanje tečaja in stanje dnevnih check-inov živijo v lokalnem store-u, ki se sinhronizira z API-jem, ko je povezljivost na voljo. Video lekcije so obravnavane s strategijo progressive-load: nizko-resolucijske sličice se naložijo takoj, video stream se buffra vnaprej pred uporabnikom, dokončani segmenti pa so cache-ani, tako da drugo gledanje ne potrebuje ponovnega prenosa. Za učence na trgih, kjer so podatki merjeni in omrežja nezanesljiva, to ni nice-to-have — to je osnova.

Push obvestila tečejo tako na FCM za Android kot APNs za iOS preko Expo Notifications sloja, sprožena s strani BullMQ job sistema na strani API-ja. Dnevni check-in nudgi, opomniki streakov in mejniki dokončanja učnih poti — vse to teče skozi ta pipeline. EAS Build upravlja build in distribucijski pipeline: OTA posodobitve za popravke JS sloja pridejo na naprave brez cikla submitanja v trgovino, medtem ko gredo spremembe nativnega sloja skozi EAS-vodene store builde. Ta razdelitev je ohranila visoko hitrost iteracij skozi celoten projekt.

Arhitektura

~/getthrivin-mobile/architecture/mobile-map.svg
01 — NAPRAVA (iOS · Android)▶ lekcijacheck-inznačkeZustand store (local-first)napredek · streaki · offline cacheReact Native · Expo · TypeScript02 — EAS BUILD PIPELINEEAS BuildiOS + Androidstore buildiEAS UpdateOTA · JS slojbrez review trgovine03 — GETTHRIVIN APIAPI jedroExpress · TypeScript · RESTučne poti · napredek · auth04 — DOSTAVA PUSHFCMAndroidpush prehodAPNsiOSpush prehodExpo managed workflow · BullMQ-prožene spodbude · Firebase analitika · offline-first Zustand sinhronizacija05 — INFRASTRUKTURA

Branje diagrama: React Native / Expo aplikacija (v sredini, vijolično) drži Zustand local-first store za offline odpornost — lekcije in napredek preživijo izpad omrežja. EAS Build vodi dva dostavna kanala: polne store builde za nativne spremembe in OTA posodobitve za popravke JS sloja. Aplikacija se neposredno pogovarja z GetThrivin API jedrom za podatke o tečajih, avtentikacijo in sinhronizacijo napredka. Push obvestila potekajo iz API-ja skozi FCM (Android) in APNs (iOS) ter pristanejo na napravi — črtkane povratne poti — sprožena z BullMQ nudge jobi na strani strežnika.

Mobilni produkt ni web view v lupini — gre za nativno izkušnjo, zgrajeno okoli omejitev trgov, ki jim služi. Offline first, push-first, ena sama koda.
Davor Majc, Lead Mobile Developer / GetThrivin
03 Kar sem dostavil · rešeni izzivi

Šest stvari dostavljenih,
tri težke rešene.

Ključni prispevki

  • Zasnoval in zgradil celotno React Native aplikacijo od začetka z uporabo Expo managed workflow.
  • Implementiral učne poti, predvajalnik video lekcij in sledenje dosežkom z local-first stanjem preko Zustand.
  • Zasnoval offline cache sloj, da so učenci v regijah s slabo povezljivostjo lahko dokončali lekcije brez aktivne povezave.
  • Integriral push obvestila tako na FCM (Android) kot APNs (iOS) preko Expo Notifications.
  • Postavil EAS Build za avtomatizirane OTA posodobitve in produkcijske builde za trgovine.
  • Zgradil dnevne check-in tokove in sledenje streakom za povečanje retencije učencev.

Rešeni izzivi

  • Zanesljivo predvajanje videa in napredek lekcij na omrežjih s slabo ali občasno povezljivostjo.
  • Vzdrževanje ene same React Native kode, ki je delovala nativno tako na iOS kot Androidu brez platformno specifičnih hackov.
  • Izvedba onboardinga z malo trenja za uporabnike delovne sile, ki niso bili izkušeni uporabniki aplikacij.
04 Tehnološki sklad

Kaj poganja stvari.

React NativeExpoEAS BuildZustandTypeScriptPush (FCM/APNs)Offline cacheVideo
Pogovorimo se

Pripravljeni popraviti, zgraditi
ali skalirati?

30 minut, z mano osebno. Preberem vaš sistem kot dnevniško datoteko in povem, kaj bi naredil najprej. Brez prezentacij, brez prodajnega lijaka.

Davor Majc, ustanovitelj, Numen

Kaj dobite na klicu
→ enostranska diagnostika
→ 2–3 obliki rešitve, razvrščeni po učinku
→ okvirni strošek + časovnica za vsako
→ da/ne — ali sem prava izbira
+386 40 828 474 · Blejska Dobrava, SI