본문 바로가기

Swfit/WidgetKit5

Configurable Widget Keyboard type 설정하기 (iOS 17 & above) 사용자 설정이 가능한 Widget은 수정을 허용하는 파라미터의 타입에 따라서 자동적으로 알맞는 키보드를 보여줍니다. 만일 파라미터가 Int 타입이라면 number pad 키보드를, String 타입이라면 text 키보드를 보여줍니다. (원시 타입이 아니라 Dynamic option을 사용할 수도 있습니다. 이 경우는 몇 가지 선택을 사용자가 할 수 있도록 drop down 옵션을 보여주는 데 나중에 제가 직접 사용해 보고 올려보도록 하겠습니다.) String type을 사용했을 때 기본적으로 자판이 영문만 지원이 되는 데, 어떻게 키보드를 바꾸어야 하는 지 한참을 헤맸었습니다. 한국어나 이모지도 쓸 수가 없고 정말 영문만 타이핑 할 수 있는 자판이 나왔습니다. iOS 16 under 버전들의 Siri I.. 2024. 2. 4.
사용자 설정이 가능한 Widget 설정 방법 (iOS 17 under) 위젯에서 사용자 설정을 할 수 있다는 사실을 알고 계셨나요? 배경에 추가한 위젯을 꾹 터치했을 때 Edit Widget이라고 나온다면 사용자 설정을 지원하는 위젯입니다. 애플의 날씨앱 위젯도 feed로 받아 볼 지역을 수정할 수 있는 수정 기능이 있습니다. Widget 사용자 설정 예시 영상 이렇게 사용자 설정을 할 수 있는 Widget을 만드는 방식은 iOS 17 이후와 이전이 많이 달라졌습니다. iOS 17 이후는 WidgetKit에서 모든 것을 설정하지만 이전에는 SiriKit에서 설정을 했었더라구요. 그러다보니 iOS 17보다 낮은 버전에서도 사용자 설정 위젯을 지원하려면 17 이상과 이하 두 가지를 위한 설정을 각각 해줘야 합니다. 배포되어 있는 앱 타겟 버전이 16.2이기도 하고 iOS 16 .. 2024. 1. 24.
WidgetKit에서 CLLocationManager & WeatherKit 사용하기 애플의 날씨 앱은 사용자의 위치 정보를 알아내서 해당 위치의 날씨 정보를 위젯에서 보여줍니다. 날씨 앱처럼 위젯에서는 어떻게 위치 정보를 사용할 수 있는 지, 그리고 날씨 정보는 어떻게 받아올 수 있는 지 알아보겠습니다. 먼저 위치 정보를 알아야 해당 위치의 날씨 정보를 알 수 있으므로 위치 정보를 받아오는 방법을 알아보겠습니다. 1. 위젯에서 사용자 위치 정보 사용 동의 항목 info.plist에 추가하기 사용자 정보를 사용할 때는 항상 Info.plist에 동의를 구하는 항목을 넣어주죠? Widget에서 위치정보를 사용하려면 NSWidgetWantsLocation key를 추가해야 합니다. 이 키는 App의 Info.plist가 아닌 Widget의 Info.plist에 추가해줘야 합니다. (기본적으로.. 2024. 1. 23.
Widget에 보여줄 정보 Firebase에서 불러오기 제가 작업하고 있는 앱은 WidgetKit과 Firebase Storage를 사용하고 있습니다. Widget에서도 앱에서와 마찬가지로 DB에 저장되어 있는 데이터를 보여주어야 하는데, 어떻게 할 수 있는지 알아보도록 하겠습니다. 1. GoogleService-Info.plist 파일 타겟 멤버십에 Widget target포함시켜주기 처음에 가장 난감했던 건 Firebase에서 사용하는 GoogleService-Info.plist를 어떻게 처리하느냐 였습니다. Widget도 별도의 bundle identifier를 가지고 있으니 이걸 추가를 어떻게 해줘야 하는 건지? Widget이라고 따로 Firebase project를 만들 것 같지는 않은데 등등 여러 생각이 들었지만, 사실 해답은 매우 간단했습니다. .. 2024. 1. 23.
Widget bundle id 설정해주기 위젯을 지원하는 앱의 경우는 앱의 Bundle Identifier도 Developer Portal에 등록 필요. 동일한 프로젝트 안에 있더라도 Widget도 별도의 Target이기 때문에 identifier가 존재. 위젯의 Bundle id를 등록해두지 않은 상태라면 Developer portal에 접속하여 등록 필요. 프로젝트 설정 초기에 Xcode Cloud로 앱의 identifier를 만들어 두었는데, 당시에는 widget을 추가하지 않은 상태여서 그런지 나중에야 따로 추가해 주어야 된다는 것을 알게 되었습니다. Idenfitier의 종류에는 여러가지가 있는데, widget도 App IDs로 선택해서 설정해주면 됨. 다음 페이지에서 App과 App Clip 중에 선택할 때도 마찬가지로 App으로 선.. 2023. 12. 15.
반응형