Commit Graph

2 Commits

Author SHA1 Message Date
e1cc6b2ea8 perf: localStorage 저장 스로틀링 및 렌더링 최적화 (JSA-36)
- useGameStore: localStorage 저장을 최대 10초 간격으로 스로틀링
  (매 tick마다 저장하던 것을 개선)
- useGameStore: flushGameState() 내보내기 — beforeunload에서 즉시 저장
- useIdleTick: beforeunload 이벤트에 flushGameState 연결
- ElementsScreen: useGameStore 전체 구독 → 필요한 slice만 selector로 구독
- ElementsScreen: 원소 카드를 memo(ElementCard)로 추출
  (count/level 불변 시 리렌더 방지)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-01 00:36:40 +09:00
56bc71a71a feat: @apps-in-toss/analytics 이벤트 트래킹 구현 (JSA-32)
- src/analytics.ts: initAnalytics / trackGameEvent 유틸 추가
- _app.tsx: 앱 시작 시 Analytics.init 호출
- pages/index.tsx: app_open 이벤트 (플랫폼 시간, 보유 원소 수, 골드, 강화 레벨 합계)
- FusionScreen: fusion_completed (결과 tier/name, 골드 획득, 재료 ID)
- EvolutionScreen: enhancement_completed + level_up (원소 ID/이름, 새 레벨, 비용)
- ShopScreen: item_purchased (아이템 ID/이름, 가격, 희귀도)
- OfflineRewardModal: offline_reward_claimed (오프라인 시간, 골드, 원소 종류 수)
- package.json: @apps-in-toss/analytics ^2.3.0 명시적 추가

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-04-01 00:29:14 +09:00