iOS) CoreData 를 사용하여 Configurable Widget 만들기 (1/3) - 프로젝트 세팅

1 minute read

✅ 1. 프로젝트 세팅

  • Configurable Widget 에서 CoreData 로 데이터를 공유하는 프로젝트 세팅 진행.
  • App Group 을 사용하여 containing app 과 app extension 의 데이터 공유.

2. Widget 만들기

3. Configurable Widget 만들기

❓ 들어가기 전 - 왜 CoreData 를 사용하여 데이터를 저장하기로 했나요?

  • 이전에 UserDefaults 를 사용하여 widget 과 containing app 의 데이터 공유를 해보았기 때문에 이번에는 CoreData 를 사용해서 데이터 공유를 구현해보고 싶었습니다.

iOS) Kakao QRcode Widget 클론코딩 - Widget 데이터 공유 및 뷰 구현(SwiftUI)

  • 이 글은 명함 형태의 데이터 모델을 프로젝트에 적용하기 위한 연습을 위해서 작성했습니다. 그래서 명함 종류, 속한 그룹 등과 같은 관계성을 프로젝트 내에서 가질 수 있다고 판단하고 관계형 데이터 모델을 제공할 수 있는 CoreData 를 사용해보고자 하였습니다.

1️⃣ 프로젝트 세팅

  • CoreData 를 활용할 것이기 때문에 프로젝트를 만들 때 부터 체크해주겠습니다.(물론, 중간에 추가할 수도 있습니다.)

1

  • Widget 을 만들 것이기 때문에 이를 위한 Widget Extension 을 추가해주겠습니다.

2

  • configurable 한 widget 을 만들기 위해서 해당 체크박스도 체크해줍니다.(이를 통해 위젯을 길게 눌러 ”위젯 편집”을 통해 사용자 구성 가능한 옵션을 제공할 수 있습니다.)

3

👉 App Group

  • 서로 다른 target 간에 데이터를 공유하기 위해서 App Group 을 추가해야 합니다.

containing app 과 contained app extension 의 App Group 을 활성화하여 앱에서 사용할 App Group 을 지정할 수 있습니다.

2️⃣ App Groups 를 생성하고 적용해보자

  • 공유하는 target 모두에 생성해주어야 합니다.
  • group. 을 prefix 로 가지는 포멧이 제공됩니다. App Group Identifier 는 bundle identifier 처럼 유니크한 값이기 때문에 가져다가 사용하였습니다.

5

  • Widget Extension 에도 잊지 않고 생성해주었습니다.

6

  • 각 target 의 entitlements 파일이 추가되고 설정한 App Groups 값이 추가된 것을 확인할 수 있습니다.

7

👉 만든 App Groups 는 어디서 확인할 수 있나요?

  • Apple DeveloperIdentifiers 에서 App Groups 를 설정하여 조회 및 편집이 가능합니다.

8

3️⃣ App Group 을 사용하여 데이터 공유

  • main 이 되는 view controller 에서 아래와 같이 카드 이름, 이름, 배경을 입력받고 widget extension 과 데이터를 공유하여 위젯에서 보여주도록 하겠습니다.
  • 이때 CoreData 를 사용하여 데이터를 저장하겠습니다.

9

  • 아래는 위젯의 UI 입니다.

10

다음 글에서는 공유한 데이터를 보여줄 widget 을 만들고, App Group 과 CoreData 를 활용하여 데이터를 저장하고 조회해보겠습니다.

참고: Handling Common Scenarios

Categories:

Updated: