본문 바로가기

WidgetKit4

[날씨의 i] WidgetKit 5탄! - iOS17에서 변경된 사항 적용하기 (2.1 버전 업데이트 완료!) 안녕하세요! 날씨의 i를 출시하고, 벌써 7번째 업데이트를 했는데요, 2.1버전 업데이트 과정을 공유하려 합니다. 최근에 아이폰 15 플러스로 폰을 바꾸고 대 만족하며 즐겁게 사용하고 있었는데요! 한 가지 스트레스 받는 일이 발생했습니다! 즐겁게 폰을 세팅하면서 날씨의 i를 다운받고, 위젯을 설치했는데요! 음..? 이상하게 양쪽 사진이 잘리는 현상을 발견해서 부랴부랴 핫픽스를 하게 되었습니다! 알고보니 iOS17로 업데이트되면서 위젯API가 변경이 되었었고, 기존 코드를 수정하게 되었습니다! 역시 iOS16을 쓰던 아이폰 11에서 폰을 바꿔서 다행이지 영영 모를 뻔 했는데 다행입니다ㅎㅎ 처음에는 위젯 API가 변경된 지 모르고 단순히 패딩이나 프레임 문제일거라고 생각했습니다. 그런데 기존 코드에서 Geo.. 2023. 11. 10.
[날씨의 i] WidgetKit 4탄! - 위젯 TimelineProvider 이해하기, 위젯 새로고침, 날씨 서버와 통신하기 (2.0 업데이트 도전~!) WidgetKit 시리즈의 마지막입니다! 위젯... 정말.. 쉽지 않았습니다... 그래도 어느정도 생각한대로 앱을 구성하고, 현재 2.0 업데이트 심사도 요청한 상태라 어느정도 후련한 마음입니다! 부디 한번만에 앱이 통과되길! 우선 이전에 Combine으로 코드를 구성했었는데요! 앱이 데이터를 가져오고, 오류없이 동작하기는 하나 일부 화면이 새로 안 그려지는 치명적인 문제가 있었습니다..! 아직 왜 그런지 원인을 찾지 못했는데 아직 Combine에 대한 이해가 부족한 것 같아서 더 공부한 뒤에 다시 도전해보려 합니다. 일단 앱 업데이트를 해야하니 제게 익숙한 방식인 CompletionHandler로 리팩토링하니 다행히 잘 동작했습니다! 우선, 위젯에서 위치정보를 수집하고 동작하는것은 아이폰에 부담을 줄 .. 2023. 9. 17.
[날씨의 i] WidgetKit 2탄! (서버와 데이터 연동하기, 위젯 구성하기) 험난했던 AppGroup과 UserDefaults 세팅을 끝내고 본격적으로 위젯을 구성해보겠습니다. 우선 WidgetKit의 SwiftUI는 제가 평소에 하던 것과 조금 달라서 헷갈렸었는데요 차근차근 정리해보겠습니다. 우선 WidgetBundle로 메인 위젯을 설정합니다. 저는 일단 LiveActivity는 제외하고 기본 위젯으로만 구성해보려 합니다! 위젯은 크게 TimelineEntry Provider Widget 으로 구성되어 있습니다. 셋 다 프로토콜인데요, 첫번째로 TimelineEntry는 date를 필수 프로퍼티로 가지는 프로토콜입니다. 위젯을 업데이트하는데 기준이 되는 시간과, 위젯에 표시할 컨텐츠를 설정합니다. 저는 위젯에 그려줄 데이터들을 함께 구성했습니다. 두번째로 Provider는 위.. 2023. 9. 10.
[날씨의 i] 첫 WidgetKit 도전..! 험난했던 시작 (WidgetKit 추가와 AppGroup설정, UserDefaults로 데이터 공유) 안녕하세요! 최근에 날씨의 i를 출시하고 소소한 기능 개선과 버그 픽스를 하며 보냈습니다:) 완성하고 어느정도 업데이트로 앱이 안정되다보니 조금 느슨해져서 뭘 할까..하다가 SwiftUI 스터디에 가입하고 오랜만에 SwiftUI를 해보자! 마음먹었습니다ㅎㅎ 초기에 날씨앱을 만들자고 생각할때 위젯은 필수로 있어야 된다고 생각했었는데요 UIKit 위주로 만들다 보니 SwiftUI만 사용해야하는 위젯킷은 왠지 뒤로 계속 미루었던거 같네요ㅠㅠ 오랜만에 하는 SwiftUI.. 재미있겠다! 하고 WidgetKit을 추가하는 순간 제가 알던 SwiftUI가 아니라 이상한 코드들이 있어서 멘붕에 빠졌습니다. 덕분에 일주일동안 공식문서부터 차근차근 시작해 위젯킷을 공부하고, SwiftUI도 복습하고, 다양한 시행착오를 .. 2023. 9. 10.