iOS · watchOS · Widget-First
🫱 넛지 (Nudge)
위젯 한 번 탭 = 운동 1회 기록. 목표·세트·스케줄·알림 일체 없음. "딱 한 개만 해보자"는 마음을 배신하지 않는 초미니멀 카운터 앱.
🔄 맥스아웃과 정반대 철학 — 시작 문턱 제거에만 집중
Phase 0
현재 단계
2/12
작업 완료
3개
운동 종목
(푸시업/풀업/스쿼트)
4~5주
예상 기간
작업 현황
철학
일정표
기술 스택
아이디어
메모
전체 진행률
2/12
0%
핵심 원칙 (Principles)
기획 단계
1. 한 동작으로 끝난다
위젯 탭 1회 → 기록 완료. 확인 다이얼로그 없음. 마찰 0에 수렴.
2. 칭찬 최소화, 숫자 증가만
"잘했어요!" 팝업 없음. 숫자가 올라가는 것 자체가 보상. 미세한 햅틱 + 카운트업 애니메이션만.
3. 튜토리얼 강요 금지
처음 여는 사람도 운동 고르기 → 바로 +1 가능. 설명 화면 없음.
4. 실수 회복은 앱 내에만
오늘 기록 -1 취소는 앱 내 제공. 위젯에는 없음 — 기록 마찰 제거가 우선.
5. "3개 고정" 원칙
푸시업·풀업·스쿼트. 맨몸으로 어디서나 가능한 운동만. 추가 요청 와도 동시 노출은 3개까지.
6. 없는 것이 정체성
미니멀리즘이 앱 그 자체. 기능 추가 유혹에 이 문서를 방어선으로 사용.
의도적으로 넣지 않을 것
  • 목표 설정
  • 세트/회차 개념
  • 주간 스케줄
  • 리마인더 푸시
  • 폼/자세 체크
  • 타이머/휴식 시간
  • 소셜/랭킹
  • 프리미엄 구독 (MVP)
맥스아웃 vs Nudge — 사용자 여정의 다른 단계
🫱 Nudge
대상
운동 시작 자체가 어려운 사람
철학
딱 하나만 한다
복잡도
탭 1회 = +1
기록 단위
개별 횟수 (집계는 자동)
주 UI
홈 화면 위젯
💪 맥스아웃
대상
이미 운동 중인 점진적 과부하 추구자
철학
최대치까지 짜낸다
복잡도
슈퍼세트 · 스마트 과부하
기록 단위
세트/운동/주간
주 UI
앱 내 카운터 화면
개발 일정
기술 스택
초안
언어
Swift
UI
SwiftUI
위젯
WidgetKit + App Intents
인터랙티브 위젯
iOS 17+ (필수)
로컬 DB
SwiftData
앱↔위젯 공유
App Group
클라우드
CloudKit
차트
Swift Charts
Watch
SwiftUI (watchOS)
Watch 통신
WatchConnectivity (필요 시)
타겟
iOS 17+ / watchOS 10+
컬러
Mint/Teal (#14b8a6)
🚨 기술 리스크 (개발 전 검증 필요)
  • • iOS 17 Interactive Widget의 홈 화면·잠금 화면 탭 반응성 실기 확인
  • • App Group + SwiftData 공유가 문제없이 동작하는지 프로토타입 검증
  • • CloudKit 단독 동기화로 iPhone ↔ Watch 지연 허용 가능한지 판단
  • • 위젯 탭 직후 숫자 반영 지연 (WidgetCenter.reloadAllTimelines 타이밍)
MVP 이후 고려사항
Live Activity / Dynamic Island
운동 세션 중 실시간 표시, 다이나믹 아일랜드에서 바로 탭 → +1
잠금 화면 위젯
iOS 16+ 잠금 화면에서도 탭 가능 여부 검증 후 지원
HealthKit 연동
기록을 Apple 건강 앱에 자동 반영 (선택 사항)
운동 추가 옵션
버피/런지 등 요청 시 추가. 단 동시 노출은 항상 3개 유지 (미니멀리즘)
맥스아웃 연동 / 크로스 프로모션
Nudge로 습관 잡힌 사용자에게 맥스아웃을 추천. 사용자 여정 설계 기반 자연스러운 전환
"베스트 일" 축하 (앱 재방문 시)
알림이 아니라 앱을 다시 열었을 때만 한 번 표시. 푸시 스팸 금지 원칙 준수
앱 아이콘 & 컨셉
손가락 탭 제스처 추상화 or "+1" 심볼. 과하지 않은 여백·부드러운 톤
Nudge 메모
저장됨