WidgetKit (15)
이렇게 SwiftCal 앱의 LockScreen을 디자인한다. 이번에 적용할 프로젝트는 CoreData Version으로 된 걸 사용했다. EntryView를 각 Case 별로 분류 우선 환경변수 @Environment(\.widgetFamily) var family를 만들어 준다. Widget의 Supported Family 수정 Loc...
이렇게 SwiftCal 앱의 LockScreen을 디자인한다. 이번에 적용할 프로젝트는 CoreData Version으로 된 걸 사용했다. EntryView를 각 Case 별로 분류 우선 환경변수 @Environment(\.widgetFamily) var family를 만들어 준다. Widget의 Supported Family 수정 Loc...
LockScreen Widget 적용하기 SingleRepo, DoubleRepo가 있는 RepoWatcher를 가져왔다. 기존 SingleRepoEntryView에서 struct SingleRepoEntryView : View { @Environment(\.widgetFamily) var family var entry: Singl...
Concurrency & Tinted 적용 (iOS 18) 이전에 MainActor를 사용 하면서 뜬 Warning이 있다. 바로 이것. 이전에 에러가 떴던 이유는 CoreData를 사용할때 @MainActor func fetchDays() -> [Day] { // 중간 생략.. return try! contain...
CoreData to SwiftData (iOS 17) Convert 이전글에서 Intent Migration에 대해 언급을 한적이 있다. 이번에도 그와 유사한 방법으로 진행이 가능하다. 우선 CoreData 파일을 클릭하고. 아래 사진처럼 진행을 하자 그리고 next를 누르다가 target을 모두 체크를 하는걸 잊지말자. 그러면 ...
Widget 적용 기본적인 UI도 진행이 되었으니 이젠 Widget 설정을 해본다. 1. Entry struct CalendarEntry: TimelineEntry { let date: Date let days: [Day] } Entry의 이름을 바꾸고 날짜를 담을 days를 만들었는데 에러가 뜬다. 왜냐 Day의 경우 Co...
App Group 적용하기 앱과 위젯에 같은 CoreData의 값을 같이 사용하기 위해 App Group을 사용해 준다. 이전글에서 관련 내용을 다뤘으니 한번 다시 보는것도 좋을듯. 그전에 Widget을 만들어 준다. 만드는건 이사진 한장으로 대체 App Group 만드는것도 이전에 언급했으므로 아래 사진으로 대체한다. 첫번째는 앱에서 ...
Calendar에 TapGesture 추가 현재는 캘린더에 어떠한 액션도 적용이 되어있지 않다. 이젠 캘린더를 탭했을때의 Gesture를 추가해 보도록 한다. onTapGesture Modifier를 사용한다. .onTapGesture { if day.date!.dayInt <= Date().dayInt { day.d...
이번에는 Coredata를 연동한 Calendar 위젯을 만들어보려고한다. 일반적으로 박스를 친 부분에는 None인데, 이번엔 CoreData를 사용하기에 프로젝트를 생성하면서 CoreData도 같이 생성되게 하였다. 사실 체크 안했더라도 이후에 CoreData를 새로 추가해도 되긴하다. Attribute 추가 사진과 같이 한다. 뭐 ...
이전에는 git address를 enum을 통해 정해진 주소만 사용해서 적용을 했다면 이제는 주소를 추가하여 원하는 Repository를 확인 하도록 만들어 보려고 한다. ContentView UI Design Repo Widget의 APP의 ContentView를 디자인 해준다. 이부분은 생략 User Default 추가 및 적용 여...
App intents? iOS 17에서 애플은 APP Intents를 소개한다. 그렇다면 App Intents는 무엇일까? 이건 WWDC2024 Docs에서는 다음과 같의 정의를 한다. The App Intents framework provides functionality to deeply integrate your app’s actio...