검색결과 리스트
2020/10에 해당되는 글 4건
- 2020.10.29 [ios][widgetkit] widget 등록하고 appstore reject 당한 경험
- 2020.10.29 [ios14][Widgetkit] Widget Configuration
- 2020.10.25 [ios][swiftUI][WidgetKit] home screen widget(widget)기능 구현하기
- 2020.10.18 Zoom 을 이용한 첫 발표의 경험
ios 14에서 widgetkit(home widget) 기능을 지원할 수 있게 되었다
widget 기능을 추가하여 appstore 심사를 받았을 때는 무사히(?) 통과하여 문제가 없다고 생각했다
widget에서 폰트만 바꾼 다음에 심사를 제출하니 다음과 같은 사유로 reject이 되었다
내 코드를 살펴보니 난 Widget 추가 시에 IntentConfiguration으로 생성하였다(default였으므로)
IntentConfiguration로 구성했으면 해당 화면을 구성해야 한다고 첨부 파일을 다음과 같이 해서 보내주었다.
난 딱히 데이터에 손대게 할 생각이 없어서 저게 문제면 "Edit Widget"을 없애면 되겠냐고 물어보았다.
그에 따라서 AppStore는 그건 알아서 해야지?라고 참고 문서만 엄청 보내더라 ㅠㅠ
대응은~
IntentConfiguration을 StaticConfiguration으로 변경해서 심사 통과하였습니다.
Widget 기능 구현하실 때는 Configuration을 어찌할지 결정해야겠습니다.
만일 Configuration이 궁금하시다면?
bmwe3.tistory.com/1762?category=682591
개발환경 : Xcode 12.1
시작하기 전에 Widget 자체에 대해서 궁금하시다면
developer.apple.com/documentation/widgetkit/creating-a-widget-extension
예시.
예시 - Edit Widget이 보인다.
만들 위젯 혹은 앱 데이터의 성향에 따라서 결정하면 된다.
어떤 Configuration을 설정할지는 "Target"추가 화면에서 "Include Configuration Intent"를 클릭하면 IntentConfiguration가,
클릭을 해제하면 StaticConfiguration가 설정되게 된다.
만들 때 무엇을 선택하더라도 변경이 쉬우므로 크게 고민하지 않아도 된다.
차이점은 Widget 생성자와 TimelineProvider가 무엇을 상속받느냐의 일뿐이다.
StaticConfiguration | IntentConfiguration | |
생성자 | ||
TimelineProvider |
TimelineProvider |
IntentTimelineProvider |
intentdefinition file | X | O |
IntentConfiguration으로 만든 앱이라면 다음과 같이 intentdefinition file에서 parameter을 추가해줄 수 있다.
해당 parameter는 위젯 편집 으로 진입해서 값을 수정할 수 있게 된다.
개발환경 : Xcode 12.0.1
ios14부터 홈 화면에 widget을 넣을 수 있다. app이 가진 정보를 app을 열지 않고도 보여주고(일부) 필요할 경우 app을 실행해서 할 일 할 수 있게 해주는 정도의 기능이다.
애플 공식 가이드 글 : developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/widgets
Xcode > File > New > Target > WidgetKit을 선택하면 된다
이 때 app의 개발환경과는 별도이므로 app은 storyboard, widget은 swiftUI로 구성할 수 있다.
- swiftUI 관련 내용은 다음 블로그 포스팅을 참고 했다.
target membership을 설정해야 app의 파일과 widgetkiet의 ***homewidget.swift이외의 파일 내용을 ***homewidget.swift에서 접근할 수 있게 된다.
target membership은 파일 선택후 file inspector(화면 우측 중앙)에서 변경 가능하다
설정하지 않았을 경우 다음과 같이 scope 에러가 나게 된다
timelineprovider가 다음 entry를 제공하면 변경이 되게 된다.
출처 : https://developer.apple.com/documentation/widgetkit/keeping-a-widget-up-to-date
다음과 같이 homewidget의 preview 데이터를 제공하면 widget 등록시 해당 데이터를 보여주고 사용자에게 어떤 위젯 형태(small, medium, large)를 선택할지 도움을 줄 수 있다.
해당 preview가 적용된 위젯 선택 화면은 다음과 같이 나오게 된다.
* one more thing!!
app과 widgetkit이 클래스나 파일을 공유할 때는 target membership이면 되지만 데이터를 공유하기 위해서
app group을 설정해주어야 한다.
Xcode > project 설정 > signing & capabilities > Capability 에서 app group을 설정
설정하면 다음과 같이 나온다
온라인 강의 수강생들이 각자 만든 앱을 자발적으로 발표하고 공유하는 자리를 가졌다
Zoom을 통해서 진행했는데
평소에 소수 인원(3명)으로 zoom으로 공유하다가
연사가 5명, 참관자가 10명이상의 zoom 연결 상태에서 연사만 음소거가 아닌 상태로 발표하니
피드백이 채팅과 이모지(박수, 엄지척) 뿐이니 당황스럽더라
게다가 난 나름 대로 팬시해보일려고 노션으로 준비했는데(+ amplitude, simulator로 시연)
다른 분들은 발표자료가 화려 했다..나도 키노트나 ppt로 했어야 했나...
준비는 8-9분정도로 하려고 했으나 피드백 감지가 어렵다 보니 6:15초 정도에 후다닥 끝나버렸네
그래도 이 경험 자체는 기억할만해서 자료로 남긴다
<앱 주소>
https://itunes.apple.com/US/app/id1527099671
www.notion.so/zeno0320/1-c9e894bbb2e542cfababd47738043222
RECENT COMMENT