Ýaryşlaryň we gözlegleriň ykjam integrasiýasy
1) Binagärlik we ýerleşdiriş nokatlary
Nawigasiýa: lobbi → "Ýaryşlar "/" Gözlegler" belligi; hederden çalt girmek (ösüş nyşany bilen nyşan).
Diplinki: 'app ://event/{ id}', 'app ://mission/{ id}', 'app ://leaderboard/{ id}? tab = my' - in-app, toplar we web widgetlar üçin ýeke-täk marşrutizator.
Mazmuny ýerleşdirmek:- Liderbordlar, missiýa kartoçkalary we taýmerler üçin Native/React Native/Flutter.
- WebView - diňe statik maglumat/düzgünler üçin; möhüm real-time render edip bolmaz.
2) Missiýanyň kartoçkasy: ykjam anatomiýa
Sözbaşy ≤ 2 setir, görnüş nyşany, gysgaça beýany (näme/nirede/näçe wagt).
Progress-bar + san (2/3), wagt bahasy (≈ 20-25 minut), çylşyrymlylygy (•).
Baýraklar: "pul" subtekssiz mini-nyşanlar bilen bellikler/kosmetika.
CTA bir: "Başlamak/Dowam etmek/Almak". Secondary: "Üýtget" (cooldown), "Has giňişleýin maglumat".
Möhlete çenli wagt (ýumşak reňkler, soňky 10% -de gyzyl).
on_hold ýagdaýy: "Netijäni barlaýarys (3 minuda çenli). Sylag saklandy".
3) Jübi telefonyndaky liderbordlar (çeňňeksiz)
Sütünler: # ýer, oýunçy (awatar/çarçuwa/nik), äýnek, baýrak zolagy, taýmer.
Sticky "Men" + "öýe" düwmesi. Jump to rank (san girelgesi).
Bapçalar bilen täzelenmeler her 1-2 sekuntda, hereketiň animasiýasy 120-200 ms.
Paginasiýa: tükeniksiz skroll + "başyna/özüne".
Görünmekde - diňe diff-setirler (wirtualizasiýa, windowing).
4) Toplar we in-app habarnamalary (spamsyz orkestr)
Düzgün: in-app kartoçkalarynyň ileri tutulmagy → push → email.
Penjireler: ulanyjynyň onlaýn bolmagy ähtimal ("ýakyn 90-120 minutda işjeňlik" modeli).
Ýygylyk: ≤ N/hepde, ≤ M/gün; asuda sagat; "akylly dymmak".
Pailoadlar: gysga tekst + diplink + prevyu baýraklary.
Mysal üçin: `push. payload`:json
{
"title": "Agşam sprinti, 20 minut", "body": "15 minutdan soň başlamak. Baýrak zolagynda seýrek kosmetika. ", "deeplink": "app://event/ev. s5. sprint20? highlight=reward"
}
In-app kartoçka: "≈ 20-25 minut, 3 üpjün ediji, seýrek duş gelýän 10%".
5) Awtonom we gowşak tor
24-48 sagat üçin missiýalaryň/meýilnamalaryň keşi; "Soňky sinhronizasiýa: 14:02" belligi.
Awtonom ýagdaýlar: "Düzgünleri görüň" we "Gatnaşmagy meýilleşdiriň", başlamazdan.
Tor ýalňyşlyklary üçin "Gaýtala" düwmesi; ETag/If-None-Match tygşytlamak üçin.
6) Öndürijilik we batareýa
Sanlaşdyrma sanawlary (300 + setirler).
Lottie/spraytlar, VFX wagt çäkleri (0. 6–1. 2 s), agyr şeýderlersiz.
Taýmerler - her element üçin bir 'setInterval' däl ýeke-täk tik duralgasy.
Fon täzelenmeleri: BG App Refresh/WorkManager ýygylyk we jogap ölçegi bilen.
Telemetry: WebSocket/SSE → gysyş; fonda backoff.
7) Howpsuzlyk, dogruçyllyk we hyýanatçylyga garşy
Serwer RNG çözýär, müşderi - diňe wizual.
Baýraklaryň deňligi: bir waka → bir hasap (server-side).
Humanity-challenge kapçanyň (mikro-hereketleriň) ýerine töwekgelçilik boýunça goşulýar.
"Wezipäni üýtgetmek" çäklendirmesi (cooldown), talaplaryň üýtgemegi (anti-farm).
"Bu nähili işleýär": aýakgap, pity, kapa, liganyň düzgünleri.
8) Mobil RG-garawullar
"Asuda re modeim", "beýleki adamlaryň täsirlerini gowşatmak", arakesmeleri ýatlatmak.
Ýadawlyk signallarynda - çylşyrymlylygy azaltmak, arakesmäni teklip etmek, uzyn formatlary gadagan etmek.
Habarnamalary we kiçi oýunlary şahsylaşdyrmakdan çalt opt-out.
9) Hukuklar we gizlinlik
iOS ATT/Notifications: gymmatyny düşündirmek, mikro-konbordingden soň rugsat soramak.
Android 13 + ýarag rugsatlary; bildiriş kanallary (low/normal/high).
Maglumatlary ýygnamak - agregatlar; PII iň az; syýasaty bolan ekranlar we "Maglumatlary aýyrmak".
10) Analitika we metrika
Missiýalaryň kartoçkalary: CTR, Start Rate, Completion Rate, Median TTC, kosmetika üçin Equip Rate/Duration.
Ýaryşlar: Join Rate, "özüne" paýy, tablisalaryň görünýän wagty, baýraga P95 wagt.
Habarnamalar: Hit Rate penjireleri (işjeň sessiýa girdi), Join Uplift, Mute/Unsub Rate.
Ykdysadyýet: Emission to GGR, Prize ROI, Gini by SP.
Durnuklylyk: tor ýalňyşlyklary, renderleriň dowamlylygy, ANR/Crash-free.
11) A/B-meýilnama
1. Progress-bar: san + wizual vs diňe wizual.
2. Kartoçkadaky wagty bahalandyrmak: açyk/öçürildi.
3. Liderbordyň täzelenme ýygylygy: 1 s vs 2 s.
4. Push-time: T-30 vs T-15 minut.
5. Kartoçkanyň formaty: bir CTA vs iki deň.
6. "Özüňe": berkidilen setir vs düwme.
12) Platforma nuanslary
iOS: BG App Refresh çäkli; ýuwaşlyk bilen täzelenmek üçin 'content-available' toplaryny ulanyň.
Android: WorkManager/Foreground Service diňe aç-açan işjeňlik bilen; habarnamalaryň kanallary hökmanydyr.
React Native/Flutter:- RN: FlatList c 'getItemLayout '/' windowSize', Reanimated 3 diff animasiýalary üçin.
- Flutter: `ListView. builder '+' AnimatedList '/' ImplicitlyAnimatedReorderableList ', agyr mantyk üçin izolýasiýa edildi.
13) Mazmun modeli (JSON) we diplinkalar
Wezipe
json
{
"id": "m. s5. play. providers. 3 "", title ":" Üç üpjün edijini açyň "", summary ":" 3 minutda 30 dürli üpjün edijiden çalyň "", difficulty ":" medium "", est_time_min": 25, "progress": {"current": 1, "target": 3}, "rewards": {"tokens": 12, "cosmetic_drop": {" rarity ":" Rare "", p ": 0 1}}, "expires_at": "2025-10-28T18:00:00Z", "state": "available", "deeplink": "app://mission/m. s5. play. providers. 3? start=true"
}
Ýaryş
json
{
"event_id": "ev. s5. sprint20", "title": "Вечерний спринт 20 мин", "stage": "qualifier", "ends_at": "2025-10-24T21:00:00Z", "leaderboard": {"league": "Gold I", "my_rank": 128, "delta_to_next": 42}, "rewards_preview": [{"type": "cosmetic", "rarity": "Epic"}], "deeplink": "app://event/ev. s5. sprint20? tab=leaderboard"
}
URI shemasy
app://event/{id}
app://mission/{id}
app://leaderboard/{id}?tab=my app://quests/today
14) Ýagdaýlar, ýalňyşlyklar, skeletonlar
Ýüklemek: skeletonlar 3-5 setirler/taýlar, shimmer ≤ 1. 2 c.
Empty: peýdaly tekst + "Başlangyç missiýany al".
Error: Ýönekeý habar + "Gaýtala"; oflayn - kesmek we soňky senkronizasiýa wagty.
15) Reliz barlag sanawy (MVP → v1. 0)
MVP (2-4 hepde):- Diplinkler, missiýalaryň esasy kartoçkalary, batch-täzelenmeleri bolan liderbord 2 s.
- In-app bildiriş kartoçkalary, bir push-kanal, meýilnama keşi, "Bu nähili işleýär" ekrany.
- RG-tumbler, anti-farm (cooldown "Missiýany üýtget").
- Şahsy "öz", Jump to rank, kiçi gyzdyryş oýny (90 s ≤).
- Fon täzelenmesi üçin sessiz toplar, on_hold wagtynda reason-codes.
- Telemetriýa: Hit Rate Windows, Join Uplift, Gini SP.
- Doly möwsümleýin ýol, kosmetika retro-kambekleri, lokalizasiýa, elýeterlilik (kontrast, VoiceOver/TalkBack bellikleri).
- Auditiň, şikaýatlaryň, antibot-biometrikanyň ýazgylary.
- A/B-hereketlendiriji (fiç-baýdaklar), dogruçyllyk hasabatlary.
Ýaryşlaryň we gözlegleriň ykjam integrasiýasy nawigasiýa dessine (diplinkalar) bolanda işleýär, UI "bir seredişde" okalýar, täzelenmeler batareýada ýumşak we tygşytly, dogruçyllyk we RG-goragçylar her bir çözgütde - missiýa kartoçkalaryndan başlap push-orkestrine çenli. Oýunçy düşnükli maksatlary, öňünden aýdyp boljak wagtlary we asuda VFX beriň, ykdysadyýeti mahabatyň aşagynda saklaň we "Hit Rate", "Completion/Join Uplift" we "Gini" -ni SP arkaly ölçäň - soňra ykjam baglanyşyk artykmaç ses bolmazdan durnukly gatnaşyk hereketlendirijisine öwrüler.