티스토리 뷰
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 를 활용할 것이기 때문에 프로젝트를 만들 때 부터 체크해주겠습니다.(물론, 중간에 추가할 수도 있습니다.)
- Widget 을 만들 것이기 때문에 이를 위한 Widget Extension 을 추가해주겠습니다.
- configurable 한 widget 을 만들기 위해서 해당 체크박스도 체크해줍니다.(이를 통해 위젯을 길게 눌러 ”위젯 편집”을 통해 사용자 구성 가능한 옵션을 제공할 수 있습니다.)
👉 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 처럼 유니크한 값이기 때문에 가져다가 사용하였습니다.
- Widget Extension 에도 잊지 않고 생성해주었습니다.
- 각 target 의 entitlements 파일이 추가되고 설정한 App Groups 값이 추가된 것을 확인할 수 있습니다.
👉 만든 App Groups 는 어디서 확인할 수 있나요?
- Apple Developer 의 Identifiers 에서 App Groups 를 설정하여 조회 및 편집이 가능합니다.
3️⃣ App Group 을 사용하여 데이터 공유
- main 이 되는 view controller 에서 아래와 같이 카드 이름, 이름, 배경을 입력받고 widget extension 과 데이터를 공유하여 위젯에서 보여주도록 하겠습니다.
- 이때 CoreData 를 사용하여 데이터를 저장하겠습니다.
- 아래는 위젯의 UI 입니다.
다음 글에서는 공유한 데이터를 보여줄 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
- IOS
- Widget
- containerBackground
- OpenSourceLibrary
- 2022 KAKAO TECH INTERNSHIP
- github
- watchOS
- Firebase
- RxCocoa
- WidgetKit
- Protocol
- projectsetting
- 서버통신
- Objective-C
- YPImagePicker
- Algorithm
- SwiftUI
- configurable widget
- urlsession
- Notification
- MVVM
- WWDC
- UserDefaults
- APNS
- CloneCoding
- MOYA
- Swift
- async/await
- WWDC22
- rxswift
최근에 올라온 글
최근에 달린 댓글
글 보관함
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
링크
- Total
- Today
- Yesterday