iPhoneのロック画面に気圧アラートが見れる【ウィジェット】が登場!
いつも頭痛ーるをご利用いただきありがとうございます!
この度、iOS16の新機能に伴い、ロック画面から【気圧アラートウィジェット】が見られるようになりました!ここでは「気圧アラートウィジェットってなに?」、「どうやったら使えるの?」「技術のはなし」についてご説明していきます。
気圧アラートウィジェットってなに?
iOS16では、ロック画面に長方形ウィジェットと丸いウィジェットが出せるようになりました。
頭痛ーるのロック画面ウィジェットは、2種類あります。長方形のウィジェットは「気圧アラートアイコン」「地点名」「気圧アラートの名前」「気圧数値」、丸いウィジェットは「気圧アラートアイコン」が確認できます。
ロック画面を見れば、すぐに気圧情報が確認できるので、とても便利です!頭が痛いと感じた時はロック画面をみて気圧をチェックしてみてください。
ちなみに、アイコンをタップすれば、ホーム画面から頭痛ーるアプリを探さずとも起動できます!
気圧アラートウイジェットはどうやったら使えるの?
前提として、「iOS16以上にアップデート」「頭痛ーるのアプリをダウンロード」しておく必要があります。
iOSのアップデートは、iPhoneの設定→一般→ソフトウェアアップデートからできます。
ウィジェットの設置方法
1.ホーム画面を長押しする
2.カスタマイズを選択する
3.ウィジェットを追加する画面で「頭痛ーる」を選択する
4.長方形or丸いウィジェットを選んでロック画面に追加する
5.×ボタンでウィジェット追加画面を閉じる
6.右上の完了ボタンを押す
7.壁紙を両方に設定ボタンを押す
→ウィジェット設置完了
ロック画面に設置したウィジェットをタップすると、頭痛ーるアプリを開くこともできます。ウィジェットを設置し、頭痛ーるアプリで地点登録しておけば、アプリの内部で自動更新されるので、その都度アプリを起動しなくても、リアルタイムでいまの気圧が確認できます!
※ウィジェット追加画面に「頭痛ーる」が現れない場合は、「頭痛ーるがダウンロードされているか」「iOS16にアップデートされているか」確認してください。それでも現れない場合は、設定→一般→iPhoneストレージ→頭痛ーる→Appを取り除く→Appを再インストールしてみてください。
技術のはなし
ロック画面ウィジェットは、iOS14で登場したホーム画面ウィジェットのWidgetFamilyに「accessoryRectangular」「accessoryCircular」「accessoryInline」の3種類が新たに加わる形で登場しました。
@Environment(\.widgetFamily) var family
と宣言して使うことができます。
switch family
case .accessoryRectangular:
case .accessoryCircular:
case .accessoryInline:
頭痛ーるでは、既にスモールウィジェットとミディアムウィジェットが実装されていますが、これら複数のウィジェットをWidgetBundleで管理しています。なので、ここに新しくロック画面ウィジェットを追加することにしました。
@main
struct WidgetsBundle: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
SmallWidgetMaster()
MediumWidgetMaster()
LockScreenPressureAlertWidget() //←新たに追加
}
}
ただ、追加するだけだとエラーが出るので、Widget型の構造体のbody内に、if文でiOS16の場合分け処理をし、iOS16以外は空ウィジェットを返してあげる必要があります。
struct LockScreenPressureAlertWidget: Widget {
let kind = “LockScreenPressureAlertWidget”
var body: some WidgetConfiguration {
if #available(iOSApplicationExtension 16.0, *) {
return StaticConfiguration(kind: kind, provider: LockScreenPressureAlertProvider()) { entry in
LockScreenPressureAlertEntryView(entry: entry)
}
.configurationDisplayName(“気圧アラート”)
.description(“現在時刻の地点、気圧アラート、気圧を見ることができます。”)
.supportedFamilies([.accessoryCircular, .accessoryRectangular]) // ←新しく追加
} else {
return EmptyWidgetConfiguration()
}
}
}
実は天気のデータがうまく取得できないときの見せ方もこだわっています。
機内モード中は、頭痛ーるのかわいいキャラクターたちが知らせてくれます♪
頭痛ーるの技術はQiitaでも発信しています。よかったらのぞきに来てください!