[P3] PWA + 모바일 지원 (coordination)
ID: f851fdae-f677-42b7-90ad-12bc32d3acfa
## 목표
PWA 설치 가능 + Capacitor 모바일 앱 기반 구축
## 서브 티켓
1. PWA Core - manifest, service worker, offline, routes, 레이아웃, install prompt
2. Capacitor Setup - npm init, @capacitor/core, capacitor.config.ts
## 관련 기존 티켓
- bb6b65e4: [P3] PWA + 모바일 지원
첨부 이미지
이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)
JPEG, PNG, GIF, WebP / 최대 10MB
활동 로그
-
팀팀리드 팀 작업 완료 - P3 PWA + 모바일 지원
2026년 03월 02일 05:14:22
상세 보기
## 완료 항목
### PWA Core (pwa-core-dev)
- `app/views/pwa/manifest.json.erb` - LogBible 브랜딩, #6366f1 테마, 192x192/512x512 아이콘
- `app/views/pwa/service-worker.js` - Cache First(정적) + Network First(HTML) + Push Notification
- `app/views/pwa/offline.html.erb` - 오프라인 안내 페이지
- `app/controllers/pwa_controller.rb` - offline 액션
- `app/javascript/controllers/pwa_install_controller.js` - beforeinstallprompt Stimulus 컨트롤러
- `app/views/layouts/application.html.erb` - PWA 메타태그(theme-color, manifest, apple-touch-icon) + Install Banner### 알림 시스템 (scope creep - PWA 연관)
- `app/services/notification_service.rb` - WebPush + Email 알림 (web-push 조건부 로딩)
- `app/jobs/notification_cron_job.rb` - 시간대별 알림 크론
- `app/controllers/push_subscriptions_controller.rb` - 구독 관리
- `app/models/push_subscription.rb` - 구독 모델
- `app/mailers/notification_mailer.rb` - 이메일 알림### Capacitor (capacitor-dev)
- `capacitor.config.ts` - appId: co.kr.logbible, webDir: public
- `package.json` - @capacitor/core, cli, android, splash-screen, status-bar, browser
- `android/` + `ios/` 디렉토리 생성 (.gitignore 처리)### 테스트
- 406 runs, 948 assertions, 0 failures, 0 errors
- 새 테스트 75개 추가 (이전 331 → 406)## 해결된 문제
- web-push gem의 openssl 의존성: libssl-dev 없는 WSL2에서 빌드 불가
→ Gemfile에서 push_notifications 그룹으로 분리, 로컬은 bundle without로 제외
- NotificationService: `require "web_push"` → `begin/rescue LoadError` 조건부 로딩
- PagesControllerTest: authenticated 루트의 redirect 대신 직접 응답으로 수정 -
팀팀리드 상태 변경: 진행 중 → 완료
2026년 03월 02일 05:14:01
-
팀팀리드 위임: capacitor-dev에게 'Capacitor Setup - npm init + 설정 + Android/iOS 기본 구성' 작업 배정
2026년 03월 02일 05:02:38
-
팀팀리드 위임: pwa-core-dev에게 'PWA Core - Manifest + Service Worker + 오프라인 + 레이아웃 + Install Prompt' 작업 배정
2026년 03월 02일 05:02:21
-
팀팀리드 작업 시작 - P3 PWA + 모바일 지원
2026년 03월 02일 05:01:28
상세 보기
## 작업 계획
- 목표: PWA 설치 가능 (A2HS) + Service Worker 캐싱 + Capacitor 모바일 앱 기반
- 접근 방식: 2인 에이전트 팀 (pwa-core-dev, capacitor-dev) worktree 분리## 현재 상태
- 보드 현황: todo 5 / in_progress 1 / done 17
- 기존 인프라: Rails PWA 템플릿 존재 (manifest.json.erb, service-worker.js) but 미활성화
- icon.png, icon.svg 존재 (512x512)
- Node.js v20.20.0 + npm 10.8.2 사용 가능## 서브 티켓 계획
1. pwa-core-dev: Manifest 커스터마이징, Service Worker (캐시 전략), 오프라인 페이지, 라우트, 레이아웃 메타 태그, PWA install prompt
2. capacitor-dev: npm init, Capacitor 설치/설정, capacitor.config.ts, Android/iOS 기본 설정 -
팀팀리드 티켓 클레임 완료
2026년 03월 02일 05:01:18