はじめに
本記事では、個人開発したFlutterプロジェクトを最新バージョン(2025年12月時点)にアップデートする際に実施した作業と、それに伴って発生したエラー・課題、およびその解決策を記録した備忘的位置付けの記事となります。
本記事が、同様のアップデートで課題に直面したエンジニアにとっての参考となることを目的としています。
また、後半ではストアリリース済みのアプリを紹介いたします。ご興味がありましたら、ぜひインストールして使用していただけると幸いです。個人的には地味に有用性のあるアプリに仕上がっていると自負しています。
それでは、アップデート情報から展開いたします。
1. プロジェクトのアップデート概要
今回のプロジェクトアップデートでは、主要な開発環境と依存関係のバージョンを以下の通り更新しました。
| 項目 | アップデート前 | アップデート後 |
|---|---|---|
| Flutter | 3.32.0 | 3.38.0 |
| Android compileSdkVersion | 35 | 36 |
| Kotlin | 1.9.22 | 2.1.0 |
また、プロジェクトで使用している主要なDartパッケージも、同時に最新バージョンへ更新を行いました。
(多数のため、メジャーバージョンアップ対応したもののみ記載)
| パッケージ名 | アップデート前 | アップデート後 |
|---|---|---|
| package_info_plus | 8.3.0 | 9.0.0 |
| flutter_dotenv | 5.2.1 | 6.0.0 |
| android_alarm_manager_plus | 4.0.7 | 5.0.0 |
2. アップデート作業と対応した課題
flutter run コマンド実行中に発生した各エラーに対する具体的な対応内容を以下に記述します。
2.1. Android SDK バージョンの課題
■エラー1
Your project is configured to compile against Android SDK 35, but the following plugin(s) require to be compiled against a higher Android SDK version:
-
android_alarm_manager_plus compiles against Android SDK 36
-
flutter_plugin_android_lifecycle compiles against Android SDK 36
-
google_maps_flutter_android compiles against Android SDK 36
-
image_picker_android compiles against Android SDK 36
-
integration_test compiles against Android SDK 36
-
package_info_plus compiles against Android SDK 36
-
path_provider_android compiles against Android SDK 36
-
shared_preferences_android compiles against Android SDK 36
-
url_launcher_android compiles against Android SDK 36
Fix this issue by compiling against the highest Android SDK version (they are backward compatible).
Add the following to /Users/imaitakanori/develop/flutter_projects/quick_todo/android/app/build.gradle:
android {
compileSdk = 36
...
} -
概要:使用しているパッケージが Android SDK の次バージョンを要求しているためのエラー
-
対応:build.gradle で定義している compileSdkVersion を 35 から 36 に変更
// 修正前
compileSdkVersion 35
// 修正後
compileSdkVersion 36
2.2. Kotlin バージョンの課題
■エラー2(警告):
Warning: Flutter support for your project's Kotlin version (1.9.22) will soon be dropped. Please upgrade your Kotlin version to a version of at least 2.1.0 soon.
- 概要:Kotlinバージョンがもうすぐサポート切れになるとの警告
- 対応:setting.gradle で定義している Kotlin version を 1.9.22 から 最新の2.1.0 に変更
// 修正前
id "org.jetbrains.kotlin.android" version "1.9.22" apply false
// 修正後
id "org.jetbrains.kotlin.android" version "2.1.0" apply false
2.3. Pod install の課題
■エラー3:
[!] The 'Pods-Runner' target has transitive dependencies that include statically linked binaries: (プロジェクト名/ios/Pods/TSBackgroundFetch/TSBackgroundFetch.xcframework)
- 概要:静的リンクされた依存関係があるエラー
- 対応:使用しているパッケージの background_fetch のバージョンを当初は 1.3.8 から 1.5.0 へ上げました。ところが、この状態だと pod install が進まず、iOS用のビルドができない状態でした。1.3.8のままでもアプリの挙動は問題ないため、バージョンを上げないことでエラーを回避しました。
3. アプリ紹介
ここからは、Play Store(Android)、App Store(iOS) にリリース済みのアプリの機能を紹介いたします。
3.1. アプリ概要
開発したアプリは、筆者自身が本当に使いたい機能を詰め込んだTODO管理アプリです。
- コンセプト:「タスクを登録する手間」を極限まで減らして、「タスクの場所やエビデンス」を画像や地図でサクッと紐付けできる超時短TODOアプリ
- アプリ名:QUICK TODO管理
各ストアへのリンクは以下となります(もちろん無料です)。
■Android
■iOS
3.2. 便利な機能
ここからは何が便利なのか機能を紹介します。
3.2.1 標準機能
TODO管理アプリのため、タスク内容と期限を即座に登録可能な仕様としています。
- こだわりポイント:タスク登録のUXを最優先し、ワンタップで入力画面に遷移できるように設計しました。シンプルだけど、毎日の使用に欠かせないベース機能です!
下の画像は、アプリ起動時の一覧画面とタスク追加画面になります。
一覧画面の右上にある「+」をタップするだけでタスク追加画面が立ち上がります。
タスクを入力し、期限を選択して「保存」をタップするだけで登録できます。

完了したタスクは、一覧から左にフリックして削除することで完了です。
3.2.2 カメラ機能
-
機能概要:タスク追加画面で「メモ画像を追加」アイコンをタップすると、カメラ起動もしくはギャラリーを開く仕様です!
-
便利ポイント:レシート、街中ポスター、手書きのメモなどをパシャリと撮るだけで、タスクに紐づけて保存できます!
3.2.3 地図機能
-
機能概要:タスク追加画面で「地図から選択」アイコンをタップすると、Google Mapが開き、ピンを立てた場所情報を登録する仕様です!
-
便利ポイント:旅行先やお店など、位置情報をタスクに紐づけて登録できます!視覚的に場所を把握できて超わかりやすい!
3.2.4 ローカル通知機能
-
機能概要:アプリの設定で通知をONにすると、毎朝8時に通知されます!この通知をタップするだけでアプリを起動することができます!
-
便利ポイント:ロック画面や通知センターから直接アプリを起動できるため、瞬時にタスクを確認可能です!毎朝通知をタップするだけでタスクの見落としはゼロに近づきます!
4. 所感とまとめ
今回対応したFlutterプロジェクトのアップデートでは、複数の課題に直面したものの、結果として軽微な対応で完了しました。
振り返ると、前回(2025年6月)のアップデートでは、Android Gradle Plugin (AGP) のバージョン不整合や、複数のパッケージにおける namespace 未指定エラーなど、根深く手動での修正が必要な課題が多く、時間も労力もかかりました。(前回の記事はこちら)
それに対し、今回はAndroid SDKやKotlinバージョンの設定ファイル変更が主な対応となり、Flutterエコシステム全体が成熟してきていることを実感しました。以前苦労したパッケージも、今回はほとんどが最新環境に対応済みとなっており、「ライブラリの更新は頻繁に行なっておく必要がある」という前回の教訓が、今回のスムーズな移行に繋がったと感じています。
ただし、エラー3の background_fetch のバージョン問題はいずれ解決が必要な次なる課題です。引き続きバージョン情報やIssueをウォッチしていきたいと思います。
本記事のバージョンアップ対応を通じて得られた知見が、今後の類似プロジェクトにおけるトラブルシューティングの参考になることを期待します。
また、アプリ紹介では、筆者が推薦する便利な機能を紹介しました。ぜひ使用していただき、便利さをわかっていただけると幸いです。
