このページの本文へ移動

Menu

メニュー

  • 企業 
  • ニュース 
  • サービス 
  • 技術・クリエイティブ 
  • 採用 
  • 投資家情報 
  • サステナビリティ 
  • CyberAgent Way 

 

登壇

「FlutterKaigi 2024」に伊藤恭平、中鉢かける、長田卓馬、國師誠也、新垣清奈、田中宏和、吉田航己、赤星光誓、西峰綾汰が登壇いたします

2024年11月21日(木)から22日(金)にわたって開催される「FlutterKaigi 2024」に、伊藤恭平、中鉢かける、長田卓馬、國師誠也、新垣清奈、田中宏和、吉田航己、赤星光誓、西峰綾汰が登壇いたします。なお、サイバーエージェントはゴールドスポンサーを務めます。開催期間中はスポンサーブースを設置し、当社の様々なプロダクトでFlutter開発に携わるエンジニアとお話いただけるほか、限定ノベルティを用意しておりますので、ぜひお気軽にお立ち寄りください。

■FlutterKaigi 2024とは

「FlutterKaigi」は、エンジニアが主役のFlutterカンファレンスです。Flutter開発者有志による実行委員会が主催し、Flutter技術情報の共有とコミュニケーションを目的に開催されています。

■登壇について

・発表者
 中鉢かける|11/21(木) 13:00 - 13:40|B Dash

・セッションタイトル
「Flutterアプリで可用性を向上させたFeatureFlagの運用戦略とその方法」

・概要
WINTICKETアプリは2021年からトランクベース開発をFeatureFlagを取り入れながら行ってきました。
大規模が故に常に10数個のFeatureFlagをコードベースに埋め込みながら新機能の開発を進めていますが、公開前の機能が見えてしまったり、リリース前のコードが実行されてしまうなどの問題がいくつかありました。
本セッションではFeatureFlag運用を3年ほどした経験から、WINTICKETアプリ開発での具体的な運用方法とどのように可用性を向上させたFeatureFlagの運用戦略をとっているかを紹介します。
・WINTICKETでどのようにFlutterでFeatureFlagを用いたトランクベース開発の運用をしているかの紹介
・その運用で実際に起きた不具合例の紹介
・そのような不具合がどのような原因で発生したのかの分析
・不具合を起こさないためのFeatureFlag運用戦略とその具体的な対応方法の紹介

==================
・発表者
伊藤恭平|11/21(木) 14:50 - 15:30|B Dash

・セッションタイトル
「実践的パッケージ戦略」

・概要
アプリケーションの機能やレイヤーをディレクトリで分けて表現することは普通に行うことだと思います。
このディレクトリの構成を機能単位やレイヤーでパッケージ化します。パッケージ化すると機能ごとの依存度が減り、意図しない機能を実行する危険性を減らすことができます。
また、単一のパッケージのみテストを実行したり、依存度が少ないことで機能を切り離したりすることも比較的容易になります。ただし、レイヤーでパッケージ化する場合はある程度入念な設計が必要になります。
例えば、 UI から直接通信処理を実行させたくないような場合、単純にパッケージを分割しているだけではファイルをインポートすることで簡単に処理を実行できてしまい、あまりその恩恵を受けることができません。
この恩恵を受けるための一つの手法として依存性逆転の原則があります。ここでは、 Riverpod を利用した依存性逆転の原則の実装の説明と melos を利用した依存の解決方法、並列でテストを実行した際のカバレッジの算出など、開発の現場で行った実践的なお話をさせてもらいます。

==================

・発表者
西峰綾汰|11/21(木) 15:40 - 16:20|A Dash

・セッションタイトル
「アニメーションを最深まで理解してパフォーマンスを向上させる」

・概要
Flutter でのアニメーション実装は、簡易に実装できてアプリの魅力を向上させる重要な機能ですが、複雑なアニメーションや大規模なアプリケーションでは、パフォーマンスの問題に直面することがあります。
複雑なアニメーションを実装する際、フレームレートの低下やメモリ使用量の増加など、パフォーマンスの低下が課題となっています。また、アニメーションの最適化手法や、適切なタイミングでの RepaintBoundary の使用など、開発者が理解すべき点が多岐にわたります。
本セッションでは、 Flutter のアニメーションを深く理解し、パフォーマンスを向上させるための実践的な手法を紹介します。 Flow を活用した複雑なアニメーションの実装、アニメーションのパフォーマンス最適化テクニック、そしてレンダリングを最小限に抑えるための tips について詳しく解説します。

1.Flutter アニメーションの基本概念と内部実装を理解する
2.Flow を使用した高度なアニメーションの実装手法
3.アニメーションパフォーマンスの測定と分析
4.レンダリング最適化テクニック

==================

・発表者
新垣清奈|11/21(木) 17:30 - 17:40|B Dash

・セッションタイトル
「Master of Isolate」

・概要
Dartでは、非同期処理と並行処理を効率的に行うためのキーコンポーネントとしてIsolateが提供されています。
特にFlutterアプリケーションのパフォーマンス向上やレスポンス性の向上において、Isolateの正しい理解と活用は非常に重要です。
このセッションでは、DartのIsolateの内部動作を深く掘り下げ、どのようにしてメモリを共有せずに並行処理を実現しているのかを解説します。
また、実際のアプリケーション開発における典型的な使用例とベストプラクティスを紹介し、皆さんのコード品質を一段階上げる手助けをします。このセッションの内容は以下の通りです:

・Isolateの基本概念とFutureとの違い
・DartにおけるIsolateの内部メカニズム
・メインIsolateとサブIsolate間の通信方法
・Isolateを使うべき箇所とそうでない箇所

==================

・発表者
長田卓馬|11/22(金) 10:10 - 10:50|A Dash

・セッションタイトル
「Flutterアプリにおけるユーザー体験の可視化と計測基盤構築」

・概要
SLI/SLOはSREでよく使われる概念ですが、モバイルアプリ開発にはまだ馴染みが薄いかもしれません。
私たちのプロダクトでは障害発生率が高く、早期の検知と解消が求められていました。
そこで、SLI/SLOの概念をモバイルアプリに適用し、ユーザー体験の低下を即時に検知する仕組みを構築しました。
この仕組みにより、以下の指標をリアルタイムで監視し、即時に対応可能となりました:

•失敗率:一定以上のユーザーが機能利用時にエラーが発生したケース
•キャンセル率:一定以上のユーザーが機能利用時に何らかの理由でキャンセルしたケース
•中断率:一定以上のユーザーが機能利用時にアプリを強制終了したケース

現在、この監視システムは40以上の機能に適用されています。このセッションでは以下の内容について詳しく解説します:
1.SLI/SLOの基本概念
2.一般的なSLI/SLOとユーザー体験を検知するSLI/SLOの違い
3.ユーザー行動の計測方法
4.計測基盤の構築:工夫と課題
・時系列データのログ計測
・高オブザーバビリティの実現オプション
5.アラート基盤の構築:工夫と課題
・ノイズ最小化の方法
・チームにアラートを定着させる方法

==================
・発表者
赤星光誓|11/22(金) 10:10 - 10:50|B Dash

・セッションタイトル
「WasmがFlutter on the Webにもたらす変化」

・概要
Flutter on the WebがStableになってから3年経ち、さまざまな変化が加えられてきました。
今年はHTML renderer廃止に関するドキュメントが公開され、今後CanvasとWasmのrendererが主力になっていきます。
Wasmサポートによって良くなること、できなくなることをHTML,Canvas rendererと実際に動作を比較していきます。このセッションでは、以下の内容についてお話しします:

1.Wasmとは一体何なのか
2.Flutter on the WebのWasmサポートで何が変わったのか
3.Wasmサポートで、できるようになること、できなくなることをHTML,Canvasとの比較
4.Flutter on the Webの今後

==================

・発表者
國師誠也|11/22(金) 13:30 - 14:10|A Dash

・セッションタイトル
「OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理」


・概要 Flutter SDK は、Google の Material Design と Apple の Human Interface Guidelines に準拠したテーマ (Material Theme, Cupertino Theme) と関連 API を提供しており、これにより OS 標準のデザインに沿ったアプリ開発が容易になります。
しかし、独自のデザインシステムを採用したい場合にテーマ管理が複雑化したり、OS 標準のデザインシステムアップデートに伴う破壊的変更により開発コストが増大したりする可能性があります。
本セッションでは、Flutter のテーマと各 Widget のスタイルの関係性を掘り下げ、OS 標準のデザインシステムへの依存を軽減するテーマ管理のアプローチを発表します。
これにより、独自のデザインシステムの実現や、OS 標準のデザインシステムアップデートの影響を最小限に抑えることを目指します。
加えて、Flutter Roadmap でも触れられている blankcanvas の最新動向についても解説します。

==================
・発表者
田中宏和|11/22(金) 15:30 - 16:10|B Dash

・セッションタイトル
「Firebase Dynamic Links終了に備える:FlutterアプリでのAdjust導入とディープリンク最適化」

・概要
2025年8月にFirebase Dynamic Links(FDL)のサービスが終了することが発表され、多くのアプリ開発者がAdjust、AppsFlyer、Bitly、Branch、Kochavaなど代替ソリューションの選定を迫られています。
本セッションでは、実際のプロダクトで行ったFDLからAdjustへの移行作業を通じて、FDLの主要な機能をカバーしつつ、Adjustを用いたディープリンクの設定方法、ディープリンク機能の実装例、分析に不可欠なログの実装方法、およびパーソナライズされたユーザー体験を提供するための戦略とその制約を紹介します。これにより、FDL終了後のアプリ開発において、どのようにスムーズな移行を実現し、必要な機能を維持するかについて、明確な指針を提供します。このセッションを通じて、ディープリンク技術がどのようにアプリの成長と成功を支えるかを理解し、実際の開発に役立つ知識を提供します。

==================
・発表者
吉田航己|11/22(金) 16:30 - 17:10|A Dash

・セッションタイトル
「DevTools Extensions で独自の DevTool を開発する」

・概要
Flutter におけるアプリ開発において、 DevTools は必要不可欠な存在です。
しかし既存の DevTools に独自の機能をカスタマイズできることはあまり知られていません。
DevTools を独自にカスタマイズすることで、ログの表示制御、キャッシュの表示、アプリ内の開発者用の画面を DevTools に移行するなど、開発体験の向上が見込めます。このセクションでは、devtools_extensions パッケージを使用して、 DevTools を独自にカスタマイズする方法や、実際のチーム開発でどのような機能をカスタマイズしているかなどの実例を紹介します。 加えてパッケージ製作者向けに自身のパッケージに DevTools Extensions を提供する方法も解説します。