[Flutter] DroidKaigi 2022 Flutter 応募まとめ

こんにちは、
久しぶりです。。

## はじめに
今回はDroidKaigi2022でFlutterで応募されたSessionを
まとめて見てみようよ思います。


## Flutter Session
- 249件の中で11件検索できた。
- どんどん増えていますね。

|No | Session title | Description | 受講対象者 | スピーカー / Speakers | 
|:--:|:--|:--|:--|:--| 
| 1 | FlutterをROS(ロボティクス)と一緒使ったらマジですごかった話| 通常、RoboticsではROSとAndroidまたはQTを組み合わせてユーザーアプリケーションを開発しています。今回Flutter3が発表され、デスクトップ、組み込み領域で使用できるように機能が拡張されました。生産性が高いユーザーアプリケーションを作成するためにロボットにFlutterを適用してみました。そのためには、ロボットとアプリ間通信するためのプロトコルライブラリの開発が必要です。パッケージ開発方法と物語、そして実務で使用している例示を通じて使用機を紹介したいと思います。<br><br> 関連技術<br> - Flutter & Flutter Desktop (Linux) <br> - ROS2 <br> - Websocket <br> - gRPC| - FlutterやFlutter desktopに興味がある人<br> - Androidとrosを使ってみた人 <br>- ロボットが好きな人" | DREAMWALKER | 
| 2 | [Flutter] RenderObjectからWidgetを理解する | 私たちがFlutterでUIを構築する際に意識することとしてはWidgetのみですが、その実UIを構築しているのはRenderObjectです。<br> FlutterはWidget・Element・RenderObjectの3つのツリーを生成し、生成コストの高いRenderObjectをできる限り再利用することで高いパフォーマンスのUI構築を実現しています。<br> <br> ではRenderObjectが生成、再構築される時どのような処理が走っているのでしょうか？どうやってUIを表現しているのでしょうか？ <br> <br> 本セッションではWidget・Element・RenderObjectの働きと関係性をさらいつつ、RenderObjectの実装を学ぶことで、 <br><br>- Flutter公式のWidgetやthird party製のWidgetの内部の読み解き <br>- パフォーマンスを意識した独自のWidgetの制作ができることをゴールとします。 | - Widgetを用いてFlutterのUIを構築したことがある方<br>- パフォーマンスを考慮したUIを構築したい方 <br>- Widgetの裏側で実は何が起こっているのか知りたい方 | たつべえ |
| 3 | Offline first Flutter applications | Even though the world is becoming more "online" every day, there are still a lot of parts of the world that we all suffer connectivity problems. And, as we all know, as good developers, we should not let that affect the users' experiences in our applications. <br><br> Thinking "offline" first is a concept that we all suffer to achieve. Luckily there are some tools provided to us to make our lives easier. One of them is DataStore from AWS Amplify. Amplify DataStore provides a programming model for leveraging shared and distributed data without writing additional code for offline and online scenarios, which makes working with distributed, cross-user data just as simple as working with local-only data. <br> <br>With this talk, I will share my experience with thinking "offline" first with the applications I worked on before. You will learn about, what Flutter offers for being "offline" first, how you can achieve a great experience for your users by architecting your app the correct way, and most importantly, you will learn what NOT to do. :) | Intermediate knowledge on programming and beginner knowledge on Flutter is important | Salih Guler | 
| 4 | FlutterのAndroidネイティブ組み込みいろは | # 概要 <br><br> 近年マルチプラットフォーム対応のFlutterが大きな注目を集めています。Flutterで実装すればAndroid, iOSとプラットフォームを問わず実行可能なアプリが作成できます。エンジニア不足が叫ばれる昨今では魅力的な特徴です。<br><br> しかし既存アプリを一度にFlutterで置き換えるのは現実的ではありません。そこでActitivity・Fragment単位で部分的にFlutterをネイティブに組み込む場合も多いでしょう。<br><br> 本セッションではAndroidプロジェクトへのFlutter導入からFlutterEngineの扱い・ネイティブとの連携まで、開発のいろはを解説します。<br><br> # 内容<br><br> - Flutterでアプリ開発のススメ<br> - Androidプロジェクトへの導入<br>- Flutter Moduleの新規追加<br><br> - 既存Flutterパッケージを依存Moduleとして追加<br> - Flutterで置き換える<br>- FlutterEngineとは<br>- FlutterActivityの利用<br>- FlutterFragmentの利用<br> - FlutterとAndroidネイティブの通信<br> - MethodChannel<br> - pigeonパッケージの活用<br> | Flutterに触ったことはあるけど、Androidネイティブへの組み込み方法を迷っている・これから挑戦したいAndroidエンジニア <br><br> 前提とする知識<br> - Flutterでのアプリ開発（最低限で大丈夫です！）<br>- マルチModuleのAndroidアプリ開発 | k_senda | 
| 5 | Add-to-Appの戦い方 | AndroidとiOSに新機能を追加したいものの、WebViewでは少し用途にあわない、といった場面に出くわすことはないでしょうか。<br> KotlinやSwiftで個別に実装はできるが、しかし工数的に厳しい……とき、FlutterのAdd-to-Appが利用できるかもしれません。<br><br>本セッションでは、FlutterのAdd-to-Appを活用した機能開発と、そのメリット・デメリットを紹介します。<br> Add-to-AppはFlutterの機能を、KotlinやSwiftから呼び出し、既存のアプリケーションに組み込むことができる機能です。<br> Flutterへの段階的なリプレースのため、開発工数削減のためなど、さまざまな目的で利用できます。<br><br> Add-to-Appのはじめ方は、非常に簡単です。<br> しかし、Add-to-Appを採用した後に気にすべきことや、Add-to-App固有の問題などはあまり紹介されていません。<br> このセッションでは、Add-to-Appを利用したアプリケーション開発について、つまりAdd-to-Appの戦い方について紹介します。<br><br> | * 複数プラットフォームに対応する工数に危機感を感じているエンジニア<br> * 段階的なFlutterへのリプレース方法を探しているエンジニア<br> * Add-to-Appを導入したものの、課題感を感じているエンジニア | koji-1009 | 
| 6 | AndroidアプリにFlutterを載せる | あなたのアプリにもFlutterを導入してみませんか？<br><br> 既存のモバイルサービスではAndroidやiOSそしてWebまで別の開発チームが必要になり、コミュニケーションコストやプラットフォームによって差分が発生することが多いと思います。<br><br>そして会社的にはAndroid、iOS、Webまで別々のチームを作って数人で維持することは難しいと思います。<br><br> 上記の問題を解決できるクロスプラットフォームを提供するFlutterがありますが、一気に変更することは現実的ではないのでネイティブから頑張って開発している会社もあると思います。<br><br> そこで、既存アプリの一部をFlutterで変更することはどうでしょうか？<br><br> 少しでも上の問題を解決できるし、少しづつFlutterを学習することもできると思います。<br><br> 弊社では既存サービスにFlutterをのせることを検討していますが、検討しながら得た情報を皆さんと共有したいと思います。| Android 開発者| Tomi Hand | 
| 7 | Flutter製AndroidアプリのUIを向上させるための注意ポイント | FlutterはGoogleによって開発されたマルチプラットフォームアプリケーションを作成するためのフレームワークです。<br><br> Flutterを用いてアプリを開発することで効率よく複数プラットフォームのアプリケーションを開発することができます。<br><br>一方で、各プラットフォームには特有のUIがあります。そのUIに沿って開発することでアプリのUXが向上します。Androidアプリも例外ではありません。<br><br> 本セッションではFlutterを用いて作成したAndroidアプリをプラットフォームに沿ったUIにするために注意すべきポイントを共有します。| Flutterを用いてアプリ開発をしている方 <br>Flutterの導入を検討している方 | yoppie | 
| 8 | Flutter におけるバックエンドと疎結合なソフトウェア・アーキテクチャ - 将来のインフラ移行に備える mBaaS との上手な付き合い方 | 近年、モバイルアプリのクロスプラットフォーム対応を進める目的で Flutter が導入されることが増えてきています。くわえて、とりわけ少数のチームで開発を進める場合、開発効率を高めるために Firebase や Amplify などの mBaaS が導入されることも少なくありません。そこで課題となるのが、中長期的な運用に足る拡張性やスケーラビリティと短期的な開発効率のバランスをどのように確保していくか、ということです。<br><br> 本セッションでは、mBaaS（2019年に採用）から 独自実装のサーバーサイドシステム（2022年7月運用開始）に移行した実例を元に、アプリ開発の初期段階から導入でき、将来のインフラ移行を念頭においたアーキテクチャの実践例について解説を行います。<br><br> 本セッションをつうじて、聴衆はつぎのトピックについての知見を持ち帰ることができます。<br><br> - Flutter でアプリケーションを開発する場合のアーキテクチャ例とそのポイント<br>- Flutter の状態管理モデルの動向とプラクティス<br>- 抽象化の実現に必要な Dart のクラス設計方法<br>- Dart における Protocol Buffer + gRPC を用いたクライアントの実装例<br>- mBaaS 採用における注意点や pros / cons<br><br> 本セッションでは Flutter と Dart のコードを中心に取り扱いますが、Java, Kotlin を採用した Android アプリ開発においても、共通項を見出すことができる内容で構成されます。| - 前提知識<br>- ソフトウェア・アーキテクチャ（MVC や オニオン、クリーンアーキテクチャ など）に関するごく初歩的な知識<br>- 特に対象とする課題<br>    - Flutter を採用しようか、採用してよいか迷っているかた<br> - Flutter でどのようなソフトウェアアーキテクチャを採用するとよいか考えているかた<br> - モバイルアプリ開発で mBaaS の採用を採用するか、採用する場合、しない場合の pros / cons について整理したいと考えているかた<br> | iktakahiro | 
| 9 | バックグラウンド処理から学ぶAndroidにおけるFlutterのネイティブ連携 | Flutterは、Dart言語で書かれたアプリコードをコンパイルし、Flutter Engineと呼ばれるランタイムで実行することで様々な処理やUI描画を行う、マルチプラットフォーム向けのアプリ開発フレームワークです。そのエコシステムは成熟しており、アプリ開発で必要となる機能・処理の大半は、3rdパーティーから提供されるライブラリを組み合わせて使うことでAndroidプラットフォームのことをほとんど意識することなく実装できます。<br><br> ただ、Flutterアプリで実装しようとすると苦労したり、意図した通りに動かなかったりする処理というものも存在しており、バックグラウンド処理がその一例として挙げられます。通常のAndroidアプリに実装するときにも様々な知識・配慮が求められるバックグラウンド処理ですが、Flutterを使う場合は、それに加えて、他のプラットフォームでの動作や、AndroidにおけるFlutter Engineのライフサイクルも意識する必要があります。<br><br> 本セッションでは、バックグラウンド処理の実装を題材にして、AndroidアプリにおけるFlutterの動作や、Androidネイティブ部分から見たFlutter Engineの扱い方、FlutterとAndroidネイティブ部分の連携について説明します。<br><br> Flutterを利用されている方はもちろん、利用したことがない方でもAndroidアプリの開発経験があれば理解できるように説明します。Flutterでのアプリ開発で苦労する点や、それをAndroidエンジニアとしてどう取り組むことになるかの一例としていただけたら幸いです。<br><br> | • Flutterを使ってアプリ開発をされている方 <br> • Flutterに興味があり、UIの開発以外でどういう苦労があるのかを知りたい方 | kafumi | 
| 10 | Flutterでもネイティブの処理がしたい！ | 最近ではクロスプラットフォーム開発がトレンドであり、実プロダクトで導入されている事例も多数見かけます。しかしながら、一部機能は共通化されておらず、ネイティブの言語で実装する場面もあります。このセッションではFlutterでネイティブの処理が必要な際の実装方法。注意しておくべき点について解説していきます。 | Flutterを少しでも開発したことのある方 <br>クロスプラットフォーム開発に興味のある方 | wata | 
| 11 | Android技術によるFlutter大解剖 | FlutterはGoogleによって開発されているマルチプラットフォームフレームワークです。いま注目を集めており、多くの企業で採用されています。<br><br> 一方、XamarinやReactNativeなどマルチプラットフォームフレームワークは既にいくつか存在しますが、なぜいまFlutterが注目されているのでしょうか？<br><br> この問いに答えを出すべくFlutterの内部実装を紐解きます。<br> Flutterが他のマルチプラットフォームと何が違うのかを、Androidネイティブの技術をベースに解説致します。 | Flutterやマルチプラットフォームに興味がお有りの方、Androidアプリの開発経験者の方に向けた内容です。<br><br> Flutterの知識、その他マルチプラットフォームの前提知識は不要です。セッションの中で必要なものを解説致します。<br><br> セッションの中で登場するAndroidネイティブのコアな技術についても解説致しますが、一般的なアプリ開発の知識がある方を前提といたします。<br><br> | watanave | 

## 参考
- https://droidkaigi.jp/2022/
- https://docs.google.com/spreadsheets/d/1QeFqzW-AA2afcGRdbacO2Azd83ckxPrdWG4P9dmroxM/edit#gid=0