
はじめに
こんにちは、UPSIDER でモバイルアプリの開発を担当している App team です。 2025年11月13日(木)に開催された FlutterKaigi 2025 に参加してきました!
今回は UPSIDER は Bronze スポンサーとして協賛し、チームメンバー 2 名で現地参加しました。Flutter のイベントでスポンサーとして参加するのは今回が初めてです。
Flutter を主要技術としてアプリを開発している私たちにとって、このイベントは毎年大きな刺激を受ける機会です。本記事では、印象に残ったセッションや会場の雰囲気、そして今回得た学びについてレポートします。
FlutterKaigiとは
FlutterKaigi は Flutter コミュニティによる日本最大級のカンファレンスで、今年も国内外から多くのエンジニアが参加しました。
今年の会場は「大手町プレイスホール&カンファレンス」。朝から賑わいを見せ、Flutter ロゴのグッズやスポンサー企業の展示ブースが多数並び、とても活気のある雰囲気でした。
最新技術の紹介や実践事例の発表が数多く行われ、Flutter コミュニティの熱量を肌で感じることができる一日でした。


印象に残ったセッション
「あの日のHot reloadはなぜ動かなかったのか? 〜OSセキュリティ(WX)とJITコンパイラの攻防〜」
今年6月の iOS26 の発表では新しい UI デザイン「LiquidGlass」が注目されましたが、Flutter エンジニアにとって見逃せないもう1つのニュースがありました。 それが Hot Reload が iOS 実機で動かなくなるという問題です。
私自身もこの挙動を確認していましたが、気づけば実機でも普通に動くようになり、「一体何が起きていたんだろう?」と気になっていたため、今回のセッションに参加しました。
結論として大きな要因は Dart VM のメモリ管理における制約変更でした。 iOS26 ではデバッグビルド時に「同じメモリ領域を RX(実行可能)と RW(書き込み可能)に切り替える」ことが禁止されたためです。
これに対し Flutter/Dart チームは以下の 2 点で対応したとのこと。
Simulator fallback:うまく動かない場合は、Dart VM 上にシミュレータを載せて強制的に動かす方法
Dual Mapping:書き込みのみできるメモリ / 読み取り実行ができるメモリを仮想アドレス上にマッピングさせる
しかも、これらの対応は iOS26 の発表から わずか 11 日で実装されたとのこと。
普段はあまり意識することのない領域ではありますが、非常に興味深い内容でした。こうした見えない部分での継続的な取り組みがあるからこそ、私たち Flutter エンジニアは日々のプロダクト開発に集中できています。Flutter / Dart チーム、多くの Contributor の皆さんには、あらためて深く感謝したい気持ちです。
「Flutter DevToolsで発見!本番アプリのパフォーマンス問題と改善の実践」
アプリ開発では「重い」「クラッシュする」などの問題が、リリース後に初めて表面化することも多く、原因特定が難しいケースも少なくありません。
これまで Flutter DevTools は必要な範囲で使用していましたが、体系的には理解しきれていなかったため、今回あらためて知識を深める目的で参加しました。
紹介されていた事例の中には、「不要な build の多発」「大きすぎる画像によるクラッシュ」など、普段から意識して実装・コードレビューをしているポイントでもありましたが、DevTools を使って定量的に検証するというアプローチは、まだ十分に取り入れきれていなかったと感じました。
特に最後に紹介された「Flutter DevTools 活用ガイド」には知らない機能も多く、非常に勉強になりました。
パフォーマンス問題の検知
・Performance Overlay(Frame chart)
・Highlights Repaints
・Count Widget Builds
・Highlight Oversized Images特定画面や機能の深掘り
・Frame Analysis / Timeline Events / Enhance Tracing
・Diff Snapshots
・CPU Profiler
これだけ機能が揃っているのに、まだまだ使いこなせていないと痛感しました。今後は積極的に DevTools を活用していきたいと思います。
「Flutterビルドキャッシュの内部構造とテスト高速化への応用」
UPSIDER では、PR 作成・更新時に Unit Test や Golden Test が自動実行される CI フローを構築しています。
キャッシュ活用や並列実行など工夫しているものの、プロダクトの拡大に伴ってテスト時間の増加が課題となっていました。そんな背景もあり、今回の「テスト高速化」に関するセッションに興味を持って参加しました。
今回のセッションでは、debug build や test 実行時に生成される .dill ファイルが高速化の鍵になるという内容が特に印象的でした。
.dill ファイルは、--dart-define
の key/value の順番 / 値の更新 原因でキャッシュが無効化されるケースがあるとのことでした。
そこで高速化の手段として紹介されていたのは 「--dart-define を多用せず、ランタイム環境変数を活用する」 という方法です。キャッシュが効くようになることで、テスト時間を大幅に短縮できるとのことでした。これにより、.dillのキャッシュが無駄に無効化されることを避けつつ、より効率的にテストを実行できるようになるようです。
今後新たに構築していく CI フローにおいても、今回のセッション内容は大いに参考にできると感じました。
「Flutterで挑む次世代認証:Flutter銀行アプリにおける導入実録とその教訓」
Passkey は近年さまざまなニュースで取り上げられており、導入を検討している方も多いのではないでしょうか。実際にセッションを通じて話を伺うと、Passkey 認証には想像以上に多くのハードルが存在し、どれも大いに共感できる内容でした。
特に、導入後に直面する課題 について具体的に共有されていた点は非常に興味深い内容でした。
Passkey 導入で見えてきた課題
端末・OS側の制約が多い
生体認証設定の必須化、Android の一部端末非対応、Google Play 開発者サービスのバージョン依存、iOS の iCloud Keychain 有効化要件 (MDMは要注意)など。パスワードマネージャー依存による複雑化
純正以外を使うユーザーも多く、挙動差・エラー差異への個別対応が必要。エラー原因の特定が困難
OS / デバイス / 認証方式 / パスワードマネージャー / アカウント設定が複雑に絡むため、切り分けが非常に難しい。
ユーザー環境が多様化する中で、QA だけではどうしても検証しきれないケースが生じます。しかし、認証まわりの失敗はユーザー体験に直結し、最悪の場合「使われないプロダクト」になってしまうほか、問い合わせ対応の増加といった運用負荷にも直結します。そのため、導入時にはリスクを丁寧に把握しつつ、まずは慎重に検証を進めていくことが重要だと改めて感じました。
Passkey 導入を検討している開発者にとって、実践的な知見が多く得られる非常に有益なセッションだったと思います。
「Dart and Flutter MCP serverで実現するAI駆動E2Eテスト整備と自動操作」
E2E テストは弊チームでも重点的に取り組んでいる領域で、特にメンテナンスコストと信頼性のバランスに課題を感じていました。
そのため、「AI を用いた自動操作」に関する本セッションはまさに関心ど真ん中のテーマであり、ぜひ知見を得たいと思い参加しました。
会場は立ち見が出るほどで、この領域への注目度の高さがよく分かりました。
AI を活用する上でまず気になるのは テストの再現性 ですが、この点についても非常に丁寧に設計がされており、Production 環境での運用を見据えた現実的なアプローチが紹介されていました。また、実際に運用した際に直面した課題点が細かく共有されており、同じく AI 駆動による E2E テストへの移行を検討している立場としては大変参考になる内容でした。
今後チーム内で試行する際には、今回の資料を参考にしながら、UPSIDER に適した形で取り入れていきたいと考えています。
「アプリバイナリに対する不正対策とセキュリティ向上」
金融領域でプロダクトを提供する立場として、アプリのセキュリティ対策は常に高い関心を寄せているテーマです。 より安全にアプリをご利用いただくために、現状の取り組みに加えてさらにできることはないかと考え、今回該当セッションに参加しました。
リバースエンジニアリング対策については、普段から我々も注意している領域です。OS レベルの保護は年々強化され、解析は以前に比べて難しくなっているとはいえ、公式ドキュメントでも紹介されているようなコード難読化をはじめとした防御策は、引き続き必須の取り組みです。本セッションでは、そうした バイナリ保護の具体的な手法が非常に分かりやすく整理されていた点が印象的でした。
また、アプリの整合性を判定するための Play Integrity や App Attest についても丁寧に解説されており、実践的な知識が得られました。
特に、
- Classic request におけるレイテンシの特徴
- App Attest 採用時に注意すべき rate limit の観点
といった、実運用でハマりがちなポイントが整理されていたのは非常に参考になりました。
今後 App Check を通じてこれらの技術を利用するアプリ開発者にとっても、非常に有用な資料だと感じます。
すぐに取り入れられる対策もあれば、ある程度の準備や検討が必要なものもありますが、セキュリティ・不正対策の重要性がますます高まる中で、学びの多いセッションでした。
ブース・アメニティ


まとめ
App team では Flutter を活用しているため、今回のセッション内容はどれも実践的で、プロダクト開発へ生かせる学びばかりでした。
今回は UPSIDER として Bronze スポンサーとして参加できたことを大変嬉しく思います。
これからも Flutter コミュニティとともに成長し、より良いプロダクトを届けていきたいと考えています。
来年も引き続き参加・協賛し、ぜひブース出展なども実現したいです!
We Are Hiring !!
株式会社UPSIDERでは現在積極採用をしています。 ぜひお気軽にご応募ください。
UPSIDER Engineering Deckはこちら📣