일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리액트
- 운영체제
- spritekit
- 웹
- 1일1알골
- 문법
- Protocol
- swift concurrency
- Swift
- 후기
- widgetkit
- 네트워크
- 백준
- 알고리즘
- 컴퓨터그래픽스
- 멋사
- 위젯킷
- cs
- dispatchqueue
- widget
- c++
- uikit
- 스유
- composable architecture
- 영남대
- SwiftUI
- TCA
- 멋쟁이사자처럼
- 스위프트
- 대외활동
- Today
- Total
목록widget (8)
맛동산이
위젯 동작과, 내용에 관해서는 이전 글을 참고하시길 바랍니다.간단하게 설명하자면 위젯에서는EntryProviderWidgetView로 크게 나누게 되며, Provider가 Entry를 Timeline에 맞춰서 새로 생성하여 배열에 담고, 해당 타임라인 시간에 맞춰서 entry배열에 담긴 화면을 그리는것이 위젯의 기본 동작이다.iOS 17버전 이전에서는 위젯에서는 위젯을 눌러서 앱을 실행하는 동작 이외에는 어떠한 버튼 동작이 불가능했다.하지만 iOS17 이상에서는 위젯에 버튼액션이 가능한데 이를 정리해보고자 한다.AppIntent2023 button 을 이해하기 위해서는 우선 appIntent라는것에 대해서 이해해야한다.간략하게 말하자면, appIntent는 시스템에서 앱의 기능이나 컨텐츠를 사용할수 있도..
위젯 동작과, 내용에 관해서는 이전 글을 참고하시길 바랍니다. 간단하게 설명하자면 위젯에서는 Entry Provider Widget View 로 크게 나누게 되며, Provider가 Entry를 Timeline에 맞춰서 새로 생성하여 배열에 담고, 해당 타임라인 시간에 맞춰서 entry배열에 담긴 화면을 그리는것이 위젯의 기본 동작이다. iOS 17버전 이전에서는 위젯에서는 위젯을 눌러서 앱을 실행하는 동작 이외에는 어떠한 버튼 동작이 불가능했다. 하지만 iOS17 이상에서는 위젯에 버튼액션이 가능한데 이를 정리해보고자 한다. AppIntent 2023 button 을 이해하기 위해서는 우선 appIntent라는것에 대해서 이해해야한다. 간략하게 말하자면, appIntent는 시스템에서 앱의 기능이나 컨..
1. 프로젝트에서 위젯 익스텐션을 만들어준다. 2. live Activity를 확인한다. 이거하고 나면 무슨 알람창이 뜨는데 그냥 확인 하면 됩니다. 3. 위젯이 생성됨 이렇게 프로젝트 좌측에 Widget이라고 생성이 된다. 4. 기존 프로젝트에서 쓴 extension과 같은것들을 사용할때 target을 추가해줘야한다. 이거설정 빼놓지 말고 쓰시길!
위젯에서 가장 중요한 3요소는 다음과 같다. Widget Configuration Provider EntryView Widget Configuration configuration과 관련된 속성값들 위젯 편집하기에 들어갔을때 생성되는 위젯추가 창, 혹은 위젯의 편집과 관련된 정보를 가진 객체가 바로 WidgetConfiguration이다. configuration 파라미터 kind 위젯의 identifier(아무거나 지정해주면 됨, 보편적으로 bundle id ) intent 유저가 구성할수 있는 속성 (static은 없음) provider 위젯의 뷰를 업데이트할 타이밍을 알려주는 객체 content 위젯에 보여줄 뷰 Configuration 종류 IntentConfigurationt예 ) to-do li..
위젯의 주요 3요소는 다음과 같다. 1. configuration 2. provider 3. entryView Provider bookmark 이 아티클을 읽어보면 이해가 갈수 있는데, widget의 경우에는 계속해서 활성상태로 가있는것이 아니다. 즉 메모리에 항상올라와있는것이 아니며, 반면 계속해서 업데이트 되어야 하는데 이때 사용하는 방법이 TimeLineProvider와 TimeLine이다. 즉 위젯이 계속해서 로드되어 있다면, 시스템 리소스와 네트워킹 그리고 베터리 소모가 크기 때문에 이를 막기 위해서 요청하는 업데이트의 빈도와 횟수를 제한하기 위한 객체이다. Timeline 타임라인은 기본적으로 위젯이 언제 업데이트 될것인지에 대한 정보이다. 앞서 말했듯 위젯은 항상 업데이트가 자동으로 되는것이..
EntryView EntryView가 실제로 유저에게 보여지는 뷰 이다. entryView는 기존의 뷰와 다르게 찍어낸 데이터를 받아오는것이기 때문에 내부에서 데이터를 변경하는것이 불가능하다. 따라서 entryView에 데이터를 넣어주는 방법은 Provider를 통해서 넣어주는 방법이다. 데이터를 넣어주는 방식은 다음과 같다. 1. TimelineEntry 데이터 정해주기 기존의 우리가 넣어줄 데이터를 TimelineEntry라는 객체에 넣어준다. 해당 객체는 기본 프로젝트를 만들면 있으며, 이름은 자유롭게 변경 intentConfiguration이라면, configuration이 있을것이며 그렇지 않다면 없을것이다. 2. Entries에 넣어줄때 해당 데이터 주입하기 widget은 이전 포스터에서 말했..
앱에서 위젯으로 데이터를 보내줘야할 경우가 당연하게 생긴다. (그냥 하드코딩 하고싶지는 않자나?) 다음과 같은 방법을 통해서 데이터를 보내줄수 있다. 1. App Group 추가해주기 우리의 메인 앱의 Target으로 가게 되면 거기에서 Signing & Capabilityies에서 all 왼쪽에 있는 + Capability를 누르면 appGroups를 추가할수 있다. 해당 방법을 통해서 위젯과 앱 둘다 appgroups를 추가 하고 동일한 groupId로 설정해준다. app Groups란? 동일한 팀이 개발한 앱 사이의 공유 컨테이너를 액세스 가능하도록 하는 그룹을 생성하는것이다. 이를 통해 프로세스간의 통신을 할수 있도록 한다. $(TeamIdentifierPrefix).com.example.mygr..
위젯은 직접적인 데이터 변경을 알아차려도 이전포스트에서 말했듯, 스스로는 변경할수 없다. 이를 연동된 앱에서 명시적으로 알려줘야한다. WidgetCenter 위의 명시적으로 알려주기 위한 객체가 바로 WidgetCenter이다. 우선적으로 위젯 센터는 다음과 같은 프로퍼티를 가지고 있다. kind : String family : widget family configuration : intent configuration 옵셔널 kind는 이전에 설명했던, 고유아이디. family는 supportedFamily에 넣어주는 위젯의 크기를 알려주는 사이즈 configuration은 intent가 있으면 존재하는 configuration이다. 앱데이터 변경을 통해 위젯 변경하기 앱 내부의 데이터 변경을 timel..