티스토리 뷰
728x90
반응형
✅ 1. 프로젝트 세팅
- Configurable Widget 에서 CoreData 로 데이터를 공유하는 프로젝트 세팅 진행.
- App Group 을 사용하여 containing app 과 app extension 의 데이터 공유.
Widget 만들기
Configurable Widget 만들기
❓ 들어가기 전 - 왜 CoreData 를 사용하여 데이터를 저장하기로 했나요?
- 이전에 UserDefaults 를 사용하여 widget 과 containing app 의 데이터 공유를 해보았기 때문에 이번에는 CoreData 를 사용해서 데이터 공유를 구현해보고 싶었습니다.
iOS) Kakao QRcode Widget 클론코딩 - Widget 데이터 공유 및 뷰 구현(SwiftUI)
- 이 글은 명함 형태의 데이터 모델을 프로젝트에 적용하기 위한 연습을 위해서 작성했습니다. 그래서 명함 종류, 속한 그룹 등과 같은 관계성을 프로젝트 내에서 가질 수 있다고 판단하고 관계형 데이터 모델을 제공할 수 있는 CoreData 를 사용해보고자 하였습니다.
1️⃣ 프로젝트 세팅
- CoreData 를 활용할 것이기 때문에 프로젝트를 만들 때 부터 체크해주겠습니다.(물론, 중간에 추가할 수도 있습니다.)
![1](https://user-images.githubusercontent.com/69136340/210040316-00343842-a751-4bc7-bb74-44de0f1be63a.png)
- Widget 을 만들 것이기 때문에 이를 위한 Widget Extension 을 추가해주겠습니다.
![2](https://user-images.githubusercontent.com/69136340/210040323-72d92c2a-6c4b-46f4-a1a1-21edda1fac4c.png)
- configurable 한 widget 을 만들기 위해서 해당 체크박스도 체크해줍니다.(이를 통해 위젯을 길게 눌러 ”위젯 편집”을 통해 사용자 구성 가능한 옵션을 제공할 수 있습니다.)
![3](https://user-images.githubusercontent.com/69136340/210040343-78a35be8-a239-4520-a223-9f5e9fc6c2d2.png)
👉 App Group
- 서로 다른 target 간에 데이터를 공유하기 위해서 App Group 을 추가해야 합니다.
![](https://user-images.githubusercontent.com/69136340/210040365-7d1fb172-9c07-4640-9468-3ada6374dfd9.png)
containing app 과 contained app extension 의 App Group 을 활성화하여 앱에서 사용할 App Group 을 지정할 수 있습니다.
2️⃣ App Groups 를 생성하고 적용해보자
- 공유하는 target 모두에 생성해주어야 합니다.
group.
을 prefix 로 가지는 포멧이 제공됩니다. App Group Identifier 는 bundle identifier 처럼 유니크한 값이기 때문에 가져다가 사용하였습니다.
![5](https://user-images.githubusercontent.com/69136340/210040390-fcba7893-35be-4322-9c00-235caefd0ea7.png)
- Widget Extension 에도 잊지 않고 생성해주었습니다.
![6](https://user-images.githubusercontent.com/69136340/210040414-b27a5423-e426-4cfb-b98b-cf0bf0c296b8.png)
- 각 target 의 entitlements 파일이 추가되고 설정한 App Groups 값이 추가된 것을 확인할 수 있습니다.
![7](https://user-images.githubusercontent.com/69136340/210040433-de12f0dd-63cd-45f5-b2eb-09258dacf0ef.png)
👉 만든 App Groups 는 어디서 확인할 수 있나요?
- Apple Developer 의 Identifiers 에서 App Groups 를 설정하여 조회 및 편집이 가능합니다.
![8](https://user-images.githubusercontent.com/69136340/210040455-d86cbcd7-4115-4809-8af5-536fb18257e9.png)
3️⃣ App Group 을 사용하여 데이터 공유
- main 이 되는 view controller 에서 아래와 같이 카드 이름, 이름, 배경을 입력받고 widget extension 과 데이터를 공유하여 위젯에서 보여주도록 하겠습니다.
- 이때 CoreData 를 사용하여 데이터를 저장하겠습니다.
![9](https://user-images.githubusercontent.com/69136340/210040465-cf452885-6853-4890-add2-a939f31a677a.png)
- 아래는 위젯의 UI 입니다.
![10](https://user-images.githubusercontent.com/69136340/210040534-95706305-e003-4867-b0b9-eb854fb4a38d.png)
다음 글에서는 공유한 데이터를 보여줄 widget 을 만들고, App Group 과 CoreData 를 활용하여 데이터를 저장하고 조회해보겠습니다.
728x90
반응형
'iOS' 카테고리의 다른 글
iOS) CoreData 를 사용하여 Configurable Widget 만들기 (3/3) - Configurable Widget (0) | 2022.12.31 |
---|---|
iOS) CoreData 를 사용하여 Configurable Widget 만들기 (2/3) - Widget + CoreData (0) | 2022.12.31 |
iOS) iPhone 14 스크린 사이즈 알아보기 (0) | 2022.12.19 |
iOS) 위젯으로 앱의 특정 뷰로 이동(widgetURL) (0) | 2022.12.05 |
iOS) Configurable Widget 만들기 (0) | 2022.12.04 |
댓글
TAG
- YPImagePicker
- Firebase
- async/await
- Protocol
- Algorithm
- 서버통신
- MVVM
- WidgetKit
- IOS
- Notification
- MOYA
- SwiftUI
- WWDC22
- RxCocoa
- Objective-C
- containerBackground
- Widget
- UserDefaults
- WWDC
- urlsession
- watchOS
- configurable widget
- APNS
- projectsetting
- rxswift
- 2022 KAKAO TECH INTERNSHIP
- Swift
- github
- OpenSourceLibrary
- CloneCoding
최근에 올라온 글
최근에 달린 댓글
글 보관함
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
링크
- Total
- Today
- Yesterday