Project 25 - Widget

DaY·2021년 6월 17일
1

iOS

목록 보기
49/52
post-thumbnail

Extension Container

  • 어플리케이션과 life cycle 환경이 다르다.
  • 애플 framework 코드를 통해서만 접근 가능
  • App to app IPC (Inter-Process Communication)이 아니다.
  • 빌드 시 추가적 타겟을 통해 따로 빌드되며 설치 시에는 어플리케이션과 같이 설치, 삭제된다.
  • 실행 시에도 어플리케이션과 다른 독립적인 프로세스로 실행되어 다른 주소공간을 갖는다.

App과 extension 사이 데이터는 공유되지 않아 shared container를 사용해야 한다.

Widget Extension

Configuration : 위젯을 식별. 위젯의 Content를 표시하면 SwiftUI View를 정의
Timeline Provider : 시간이 지남에 따라 위젯 View를 업데이트하는 프로세스 주도
SwiftUI View : WidgetKit에서 위젯을 표시하는데 사용하는 View

Editor의 Add Target에서 Widget Extension을 추가해준다.

@main
struct WeatherWidget: Widget {
    let kind: String = "WeatherWidget"

    var body: some WidgetConfiguration {
        IntentConfiguration(kind: kind, intent: ConfigurationIntent.self, provider: Provider()) { entry in
            WeatherWidgetEntryView(entry: entry)
        }
        .configurationDisplayName("My Widget")
        .description("This is an example widget.")
    }
}

0개의 댓글