移動錦標賽和任務集成
1)體系結構和嵌入點
導航:大廳→錦標賽/任務標簽;從頭部快速訪問(進步徽章圖標)。
Diplinks: 'app: //event/{id}「,'app: //mission/{id}」,'app: //leaderboard/{id} tab=my'是用於應用程序、槍支和Web小部件的單個路由器。
嵌入內容:- 本地/React 本地/Flutter用於領導板,任務卡和計時器。
- WebView-僅用於靜態信息/規則;無法渲染關鍵的實時時間。
2)任務卡: 移動解剖學
標題≤ 2行,類型圖標,簡要說明(哪裏/多少)。
Progress-bar+數字(2/3),時間估計(≈ 20-25分鐘),復雜性(•。
獎項:迷你圖標令牌/化妝品,沒有「金錢」潛臺詞。
CTA one:「開始/繼續/接送」。中學:「Change」(cooldown),「Detail」。
截止日期計時器(柔和的顏色,最後10%為紅色)。
on_hold狀態: "我們檢查結果(最多3分鐘)。該獎項被保留。"
3)移動上的領導板(無鞭子)
專欄:#地點,玩家(化身/框架/尼克),積分,獎品區,計時器。
Sticky 「I」+按鈕到自己。跳到排名(數字輸入字段)。
每秒1-2秒更新一次蹦床,動畫移動120-200毫秒。
分裂:無限滾動+「到開始/到自己」。
在可見性中,只有diff行(虛擬化、視窗)。
4)Pushi和In-App通知(無垃圾郵件編排)
規則:應用卡優先級→ push →電子郵件。
窗口:可能在線用戶與活動時間表的交集(「未來90-120分鐘的活動」模型)。
頻率:≤ N/周,≤ M/天;安靜的時鐘;Mute之後的「聰明的沈默」。
Payloads:短文+diplink+獎項預覽。
示例:- `push.payload`:
json
{
"標題":"晚間沖刺,20分鐘","身體":"15分鐘開始。獎品區稀有化妝品。", "deeplink": "app://event/ev.s5.sprint20?highlight=reward"
}
應用卡: 「≈20 -25分鐘,3個供應商,罕見的10%下降。」
5)離線和薄弱的網絡
24至48小時任務/時間表緩存;最後同步:14:02標簽。
離線狀態:「查看規則」和「計劃參與」,無需啟動。
網絡錯誤的「重復」按鈕;ETag/If-None-Match可節省成本。
6)性能和電池
列表虛擬化(300多行)。
Lottie/精靈, VFX持續時間限制(0.6–1.2 c),沒有沈重的著色器。
計時器-單個tick sheduler,每個元素不一個「setInterval」。
背景更新:BG App Refresh/WorkManager帶有頻率卡和響應大小。
Telemetry:WebSocket/SSE →壓縮;背景下的背景。
7)安全,誠實和反欺淩行為
服務器決定RNG,客戶端-僅可視化。
獎勵水平:一個事件→一個計費(服務器側)。
人性化挑戰而不是kapchi(微型手勢),按風險計算。
限制「更改任務」(cooldown),需求變異(反農場)。
Onbording「它如何工作」:運球賠率,pity,kaps,聯賽規則。
8)手機上的RG監護人
Tumblers「安靜模式」,「靜音別人的影響」,提醒停頓。
對於疲勞信號-減少復雜性,提供休息,禁止長格式。
快速從個性化通知和迷你遊戲中脫穎而出。
9)權利和機密
iOS ATT/Notifications:解釋價值,在微板後請求解決。
Android 13+槍支運行時分辨率;通知渠道(low/normal/high)。
數據收集-聚合;PII最低;具有策略和「刪除數據」的屏幕。
10)分析和指標
任務卡:CTR,開始率,完成率,Median TTC,化妝品均衡率/持續時間。
比賽:加分,分數「靠自己」,表格可見時間,P95獲獎時間。
通知:窗口命中率(已進入活動階段),Join Uplift,Mute/Unsub Rate。
經濟學:Emission to GGR,Prize ROI,Gini by SP。
穩定性:通過網絡錯誤微小,渲染持續時間,ANR/無碰撞。
11) A/B計劃
1.進步吧:數字+視覺vs僅視覺。
2.卡上的時間估計:已打開/關閉。
3.Leadboard更新的頻率:1與vs 2 s。
4.Push時間:T-30 vs T-15分鐘。
5.卡片格式:一個CTA vs兩個相等。
6.「到自己」:固定字符串vs按鈕。
12)平臺細微差別
iOS: BG App Refresh有限;使用帶有「內容可用性」的機槍進行安靜更新(小心)。
Android:僅在顯式活動時才使用WorkManager/Foreground Service;通知渠道是強制性的。
React Native/Flutter:
RN:帶有「getItemLayout」/「windowSize」的FlatList,用於diff動畫的Reanimated 3。
Flutter: `ListView.構建器"+"AnimatedList"/"ImplicitlyAnimatedReorderableList",為重邏輯隔離。
13)內容模型(JSON)和雙凸輪
四.任務
json
{
"id": "m.s5.play.providers.3","標題:"打開三個提供商","總結":"在30分鐘內與3個不同的提供商一起玩","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"
}
比賽
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電路
app://event/{id}
app://mission/{id}
app://leaderboard/{id}?tab=my app://quests/today
14)狀態,錯誤,骨架
加載: 骨架為3-5行/標題,shimmer ≤ 1。2 c.
Empty:有用的文本+「獲取啟動任務」。
錯誤:簡單消息+「重復」;離線-緩存和上次同步時間。
15)發行支票單(MVP → v1。0)
MVP(2-4周):- Diplinki,基本任務卡,帶有butch updates 2 s的領導板。
- 應用內通知卡,單個push通道,時間表緩存,「工作原理」屏幕。
- RG-tumblers,反農場(cooldown 「Change Mission」)。
v0.9:
個人「靠自己」,跳到排名,迷你熱身賽(≤ 90 s)在預選賽中。
安靜的大麻進行背景更新,on_hold時重新編碼。
遙測:命中率窗口,Join Uplift,Gini SP。
v1.0:
完整的季節性軌道,復古復古化妝品,定位,可用性(對比,VoiceOver/TalkBack標簽)。
審計記錄,上訴,反機器人生物識別。
A/B引擎(字旗),誠實報告。
當即時導航(diplinks),UI「一目了然」chitabelen,更新流暢且對電池經濟且誠實和RG守護者嵌入到每個解決方案中時,便可以進行移動比賽和任務集成-從任務卡到推桿編排。讓玩家理解目標、可預測的計時器和安靜的VFX,將促銷經濟性保持在引擎蓋下方,並通過SP測量命中率窗口、Completion/Join Uplift和Gini--然後移動捆綁將成為一個穩定的參與引擎,沒有額外的噪音。