CalWidget

CalWidget — iOS 월간 캘린더 위젯

Google 캘린더(또는 iOS 캘린더의 다른 계정) 일정을 한 달 grid로 보여주는 large 사이즈 홈 위젯.

동작 방식

요구 사항

최초 빌드 절차

1. Xcode 설치

App Store 에서 “Xcode” 검색 후 설치 (~10–15GB, ~30분).

설치 후 한 번 실행하여 라이선스 동의 + 추가 컴포넌트 설치.

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
xcodebuild -version    # 버전 확인

2. xcodegen 설치

brew install xcodegen

3. Xcode 프로젝트 생성

cd ~/projects/CalWidget
xcodegen generate
open CalWidget.xcodeproj

4. 서명 설정 (Xcode GUI)

  1. 프로젝트 navigator 에서 CalWidget 타겟 선택 → Signing & Capabilities
  2. Team 드롭다운에서 본인 Apple ID 선택 (없으면 “Add an Account…” 로 추가)
  3. Bundle Identifiercom.jack.calwidget 으로 되어 있으면 본인 ID 로 바꿈 (예: com.본인이름.calwidget)
  4. CalWidgetExtension 타겟에서도 같은 Team 선택, Bundle ID 는 <앱 번들ID>.widget

5. iPhone 연결 후 빌드

  1. iPhone 을 USB 로 연결
  2. iPhone 에서 설정 → 일반 → VPN 및 기기 관리 에서 본인 개발자 인증서 신뢰 (최초 1회)
  3. Xcode 상단 디바이스 선택에서 본인 iPhone 선택
  4. Run (⌘R)

6. iPhone 에서 권한 + Google 동기화

  1. 설치된 CalWidget 앱 열기 → “캘린더 접근 권한 요청” 탭 → “전체 접근” 허용
  2. 설정 → 캘린더 → 계정 → 계정 추가 → Google 로 Google 계정 연결
  3. 동기화할 캘린더 선택 (캘린더 앱에서 좌하단 “캘린더” 버튼)
  4. 홈 화면 길게 누름 → 좌상단 + → “CalWidget” 검색 → Large 위젯 추가

구조

CalWidget/
├── project.yml                       # xcodegen 설정
├── CalWidget/                        # 메인 앱 (권한 요청 화면)
│   ├── CalWidgetApp.swift
│   └── ContentView.swift
├── CalWidgetExtension/               # 위젯 extension
│   ├── CalWidgetBundle.swift
│   ├── MonthWidget.swift             # TimelineProvider + Widget config
│   └── MonthWidgetView.swift         # SwiftUI grid UI
└── README.md

위젯 종류

위젯 사이즈 내용
월간 캘린더 Large 한 달 grid + 셀당 일정 2개
일정 목록 Medium / Large 다가오는 5일 agenda
다음 일정 Lock screen (rectangular / circular / inline) 가장 가까운 일정

동작 디테일

위젯 커스터마이징

위젯 길게 눌러 Edit Widget 을 탭하면 표시할 캘린더를 선택할 수 있음. 비워두면 모든 캘린더가 표시됨. 모든 위젯이 같은 필터를 공유.

무료 계정 한계

커스터마이징

알려진 제약