SwiftUI) WidgetKit을 사용해서 Widget을 만들기(4) - 앱의 데이터 변화를 위젯에서 감지하기

2023. 8. 28. 15:11·앱/SwiftUI

위젯은 직접적인 데이터 변경을 알아차려도 이전포스트에서 말했듯, 스스로는 변경할수 없다.

이를 연동된 앱에서 명시적으로 알려줘야한다.

WidgetCenter

Untitled.png

위의 명시적으로 알려주기 위한 객체가 바로 WidgetCenter이다.

우선적으로 위젯 센터는 다음과 같은 프로퍼티를 가지고 있다.

  • kind : String
  • family : widget family
  • configuration : intent configuration 옵셔널

kind는 이전에 설명했던, 고유아이디.

family는 supportedFamily에 넣어주는 위젯의 크기를 알려주는 사이즈

configuration은 intent가 있으면 존재하는 configuration이다.

앱데이터 변경을 통해 위젯 변경하기

앱 내부의 데이터 변경을 timeline에 영향을 미치게 된다.

즉 timeline entry에는 새로운 데이터가 들어가고, provider는 새로운 데이터가 들어간 timeline을 생성하게 될것이다.

이때 기존의 timeline을 유지하는것이 아닌, 싹다 지우고 새로운 timeline을 생성하도록 하게 하면, 우리가 원하는 ui변경이 이루어질것이다.

방법은 간단하다.

WidgetCenter.shared.reloadTimelines(ofKind: "com.mygame.gamestatus") WidgetCenter.shared.reloadAllTimelines() 

해당 두개의 메소드중 하나를 선택해서 하면 된다.

  • 위젯센터를 통해서 push notification을 보내주면, widget이 ui를 변경하게 된다.

참고

bookmark

반응형

'앱 > SwiftUI' 카테고리의 다른 글

SwiftUI) WidgetKit을 사용해서 Widget을 만들기(3) - EntryView  (0) 2023.08.28
SwiftUI) WidgetKit을 사용해서 Widget을 만들기(4) - 앱에서 위젯으로 데이터 보내기 app Group  (0) 2023.08.28
Swift) Convenience init, Designated init을 사용해서 초기화하기  (0) 2023.08.28
SpriteKit) SpriteKit과 scene에 대해서 [SwiftUI]  (0) 2023.08.28
SwiftUI) Environment, EnvironmentObject, EnvironmentValues  (0) 2023.07.05
'앱/SwiftUI' 카테고리의 다른 글
  • SwiftUI) WidgetKit을 사용해서 Widget을 만들기(4) - 앱에서 위젯으로 데이터 보내기 app Group
  • Swift) Convenience init, Designated init을 사용해서 초기화하기
  • SpriteKit) SpriteKit과 scene에 대해서 [SwiftUI]
  • SwiftUI) Environment, EnvironmentObject, EnvironmentValues
진ddang
진ddang
안녕하세요 진땅의 개발자 블로그 입니다. 피드백은 환영입니다. 깃헙 : https://github.com/it794613
    반응형
  • 진ddang
    맛동산이
    진ddang
  • 전체
    오늘
    어제
    • 분류 전체보기 (199)
      • 일기 그리고 목표 (1)
      • 웹 (20)
        • 리액트 (19)
      • 앱 (115)
        • Swift 문법 (15)
        • Swift (65)
        • SwiftUI (32)
        • 리액트 네이티브 (3)
      • CS (30)
        • 컴퓨터그래픽스 (8)
        • 운영체제 (6)
        • 네트워크 (16)
      • 알고리즘 (13)
        • 백준 (12)
        • 프로그래머스 (1)
      • 대외활동 (7)
        • ict한이음(2022.04) (2)
        • 멋쟁이 사자처럼 (5)
        • Apple Developer Academy (0)
      • 다양한 내용들 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    문법
    dispatchqueue
    대외활동
    c++
    TCA
    Protocol
    widgetkit
    widget
    spritekit
    알고리즘
    백준
    리액트
    멋사
    스유
    영남대
    멋쟁이사자처럼
    cs
    위젯킷
    웹
    Swift
    네트워크
    SwiftUI
    uikit
    스위프트
    composable architecture
    ReactorKit
    swift concurrency
    후기
    컴퓨터그래픽스
    운영체제
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
진ddang
SwiftUI) WidgetKit을 사용해서 Widget을 만들기(4) - 앱의 데이터 변화를 위젯에서 감지하기
상단으로

티스토리툴바