targetSDKを上げるためにGradle周りも更新必要とのこと。同僚からの連絡で気づいた。
AndroidSDK34はAndroid用Gradleプラグイン8.1.1以上が必要で、Gradleプラグイン8.1.1はGradle8以上が必要。
更新頻度が年一なのでそれほど困っていないものの、検知と対応がいつまで経っても手動だなぁ。もう少し自動化できないものか。
FlutterアプリをXcode15を利用してビルドしたらInfo.plist
が勝手に編集された。
<key>UIApplicationSupportsIndirectInputEvents</key> <true/>
A Boolean value indicating that the app generally supports indirect input mechanisms.
AppleTVのリモコンなど、直接タップする以外の方法を想定しているのかも
In iOS 17 and later, the system defaults to supporting indirect input events, meaning it treats your app the same as if you specify YES.
In versions of iOS earlier than iOS 17, the system defaults to not supporting indirect input events, meaning it treats your app the same as if you specify NO.
iOS17からってことはXcode14の時から出てきて良さそうな差分だが、なぜ今になったのかはよくわかってない。
https://flutterkaigi.jp/2023/sessions/df52c995-5fbb-4ff0-abbc-e6332af98797
https://flutterkaigi.jp/2023/sessions/5b402df3-9e5d-4c0b-80fa-61d9ba356594
https://flutterkaigi.jp/2023/sessions/f76c37b8-172d-4072-ad4a-bd870bc15728
https://flutterkaigi.jp/2023/sessions/d9cc75af-a3a2-4d0e-af6c-f12aa143ba4c
https://flutterkaigi.jp/2023/sessions/090ad5b8-7066-40e6-8ca8-58fff766f046
https://flutterkaigi.jp/2023/sessions/0b32515e-2c80-45f4-8ea2-c6c269d2609f
AsyncValue推し
の話が初耳で重要な考え方だったので、早めにドキュメントを見直したいVisualStudioCodeのThemeをMaterial Theme Darker High Contrastにした。
ステータスバーのテキストの色のコントラストが低く、それだけ気になったのでsettings.json
で設定を上書きした。
"workbench.colorCustomizations": { "[Material Theme Darker High Contrast]": { "statusBar.foreground": "#ffffff", } }
This does not influence color of the tab labels even if TextStyle.color is non-null. Refer labelColor to color selected tab labels instead.
LabelStyle
にcolorを設定しても無視される。代わりにLabelColor
に色を設定する。
何か理由があって分けているのだろうか?
FlutterのBottomNavigationBar
に設定するBottomNavigationItem
の色を変更したい。その時にウィジェットのselectedLabelStyle
やunselectedLabelStyle
を変更すれば値が反映されるが、Theme
の設定を変えてもデフォルトのままになり設定は反映されない。というバグがあり、それがPRで取り込まれていた。
この変更により今までThemeが反映されなかったアプリもアップデートでThemeが優先されてUIが変わってしまう。つまり破壊的な変更であり、予期せぬ変更のリスクが高い。
なのでこの変更はuseLegacyColorScheme
というBottomNavigationBar
のプロパティをデフォルトのtrue
からfalse
に変更し直す必要がある。
そういうバグがあり得ること、そういう思考プロセスで変更を取り込んでも自動で反映されないようにすること、が全く頭になかったので自分がこの事象に遭遇した時に地味に時間を使ってしまった。