본문 바로가기
Swift

[iOS] About WidgetKit - 2(App Group)

by dsungc 2024. 11. 2.

지난번 위젯킷 블로그에서 위젯킷을 사용해 위젯을 구현하고 설정까지 완료했다고 생각했지만, 가장 중요한 부분이 남아있었습니다.

 

2024.10.24 - [Swfit] - [iOS] About WidgetKit - 1

 

바로 앱의 데이터와 위젯 데이터의 공유 문제입니다.

 

이번 글에서는 앱과 위젯 간의 데이터 동기화에 대해 자세히 알아보겠습니다.

 

현재 상태로는 위젯이 정상적으로 표시될 수는 있지만, 앱에서 데이터가 변경되었을 때 위젯에 해당 정보가 반영되지 않는 문제가 발생할 수 있습니다. 이 부분을 해결하기 위한 방법을 하나씩 살펴보겠습니다.

 

 

App Group

App Group은 애플이 제공하는 샌드박스 환경을 기반으로 한 데이터 공유 메커니즘입니다.

AppGroup

- Extension의 Bundle은 Container번들에 포함되어 있지만, 두 가지는 각각의 Container 보유

- 개별 Container에 데이터가 저장되기 때문에 AppApp Extension 사이에서는 데이터 공유 불가

- 이러한 문제점을 해결하기 위해 필요한 것이 App Group을 통해 데이터 동기화 작업 필요

 

How to use

 

1. TAGETS > Signing & Capabilities > + Capability

 

2. App Group 생성

- App Groups 섹션에서 + 버튼을 눌러 새 그룹을 만듭니다.

- 예: group.com.example.myapp

 

3. 각 TARGETS 에 App Group 추가

- 각 타겟에 들어가 위의 과정처럼 App Group 추가 

 

 

4. UserDefaults SharedGroup 설정

 

- 기존의 standard가 아닌 suiteName으로 init

- appID가 appGroupIdentifier와 동일하도록 설정

- extensio의 경우 WidgetExtension에서도 동일하게 진행

 

5. 데이터 저장 및 로드

 

- 전달하고자 하는 정보 UserDefaults(SharedGroup) 에 저장

 

- 해당 데이터를 위젯 View에서 로드

 

 

위와 같은 과정을 진행했을 때 

 

위와 같이 데이터 공유가 잘 되는 모습을 확인할 수 있습니다!!!

 

여기까지 Widget에 대한 내용과 Widget을 사용할 때 주의해야 할 점이었습니다~!

 

그럼 뿅

 

.

.

.

.

 

'Swift' 카테고리의 다른 글

[iOS] About Local Notification  (0) 2024.11.13
[iOS] About 동시성  (0) 2024.11.10
[iOS] About TDD  (1) 2024.10.30
[iOS] About Notification & Delegation  (0) 2024.10.26
[iOS] About WidgetKit - 1  (0) 2024.10.24