안녕하세요 최근 iOS 위젯을 찍먹해보게 되면서
익힌 위젯에 대한 짱 기초 지식 및 개발 방법에 대해 작성해보려합니다.
작성하면서 공부하는 중이라 잘못된 정보가 있을 수 있어요 (🥹)
1. 유저 커스텀 기능
iOS에서 현재 제공하는 사용자 커스텀 위젯 기능에는 크게 사이즈 조정과 컨텐츠 편집이 있습니다.
1-1) 사이즈 조정

사이즈 조정은 위젯을 꾹 눌렀을 때 나타나는 아래 버튼으로 가능합니다.
- 왼쪽부터 순서대로 app, small, medium, big 인데 이 중 개발자는 어떤 사이즈를 제공하고 싶은지 결정할 수 있습니다.
- 위젯 UI를 개발할 때에도 사이즈 별 UI를 개발할 수 있습니다.
1-2) 컨텐츠 편집

위젯이 컨텐츠 편집 기능을 제공하고 있다면 "위젯 편집" 버튼이 나타납니다.

위젯 편집을 누르면 위처럼 리스트에 항목을 추가하는 등의 기능이 제공됩니다.
컨텐츠 편집 기능을 제공 유무는, 위젯 프로젝트를 추가할 때 결정할 수 있습니다.
2. 위젯 프로젝트 추가하기
App 프로젝트 내에서 위젯 Target을 추가하는 형식으로 추가합니다.
2-1) target 추가



- Live Activity: Dynamic Island와 잠금화면에서 실시간 현황을 Widget으로 표현
- Control: iOS 17부터 도입된 Interactive Widget용 옵션으로
- 위젯을 탭했을 때 앱이 열리는 것이 아니라 위젯 안에서 바로 토글·체크·재생·멈춤 등의 동작 구현
- Configuration App Intent: 위젯에 사용자가 편집가능한 요소가 있는 경우
- 체크하지 않는 경우 StaticConfiguration
구현하려는 위젯의 기능에 따라 필요한 기능을 선택하여 추가해주면 됩니다.
제가 구현하려는 위젯에서 필요한 기능은 아래와 같아서 저는 세 가지 항목 모두 체크하지 않았어요.
- 홈 화면에만 나타남
- 버튼을 눌렀을 때 앱 내 특정 화면으로 이동
- 사용자 편집 기능 x

Activate 합니다.
- Activate => 위젯 target이 추가된 상위 project에서 위젯을 빌드 타겟으로 설정한다는 의미
- 지금 activate 하지 않아도 빌드 타겟은 수동으로 변경해줄 수도 있으니 편한대로 하셔도 됩니다.
이렇게하면 이제 위젯 타겟과 위젯 파일들이 추가됩니다!🎉