iOS Widget 개발: UserDefaults로 Data Share하기

Summer Kwak
2 min readJan 3, 2020

--

Today Widget

widget을 개발 하다 보면 container app과 데이터를 공유할 일이 꼭 생깁니다. 이때 가장 많이 사용되는 방식으로는 UserDefaults를 이용하는 것입니다. UserDefaults를 위젯과 컨테이너 앱이 서로 공유하기 위해서는 app group을 활성화 시켜줘야 합니다.

http://developer.apple.com/ > Account > Certificate, IDs & Profiles > Identifiers 에서 +를 눌러서 App Groups 옵션을 선택 후 description, identifiers를 넣어주면 됩니다. identifiers는 보통 “group.” 으로 시작합니다.

XCode로 돌아와 프로젝트 화면에서 Signing & Capabilities 탭에서 AppGroups 섹션에서 만들어준 앱그룹 아이디를 선택해 줍니다. AppGroups 섹션이 없다면 +Capability 버튼을 눌러 추가해 줍니다.

여기까지 세팅하고 나면 그 뒤는 간단합니다.

  • Objective C
NSUserDefaults* userDefaults = [[NSUserDefaults alloc] initWithSuiteName:appGroupId];
  • Swift
UserDefaults.init(suiteName: appGroupId)

suiteName에 appGroupId를 넘겨주어서 UserDefaults를 만들면 위젯과 컨테이너 앱 사이에 UserDefaults를 공유할 수 있습니다. 만들어준 UserDefaults에 set/get으로 데이터를 읽고 쓸 수 있습니다.

--

--