FlutterKaigi 2023 に登壇しました

本記事は YUMEMI Flutter Advent Calendar 2023 の 10日目の記事です。

https://qiita.com/advent-calendar/2023/yumemi-flutter

## はじめに
初めまして。23卒Flutterエンジニアの 森田 です。
先週開催された FlutterKaigi 2023 のスポンサーセッションで登壇したので、今回のテーマを選んだきっかけから、資料作りの大変さ、当日の様子まで簡単にまとめさせていただこうと思います。

## 軽く自己紹介
登壇者: 森、山﨑、森田
Flutter歴: 1年半~2年半
[弊社](https://www.yumemi.co.jp/)は、Flutter技術を活用した内製化支援を強化しており、FlutterKaigiのプラチナスポンサーに申し込みました。FlutterKaigiへの参加は当初から予定していましたが、「今年は誰が登壇するのだろう。テックリードの方かな？」と考えていました。

そこで、「**新卒の方々にFlutter研修課題について取り上げてもらうのはどうでしょうか**」 という提案をいただきました。しかし正直、「**1年目でスポンサーセッションを務められるか**」という不安がありました。加えて、登壇する3名は普段からLT会に参加しておらず、発表に不慣れで悩んでいました。

この提案を受けたタイミングで、「研修課題のレビュー観点表」を作成中でした。そこで、

「**実際に研修を経験した私たちが、レビュー観点表を共有し、国内最大規模のFlutterカンファレンスで発表することで、Flutterコミュニティをさらに活性化できるのではないか**」

と考え、登壇を決意しました。


## FlutterKaigi とは
https://flutterkaigi.jp/2023/

公式サイトでは以下のように説明されています。
> 2023年、日本国内でFlutterをメインに扱う技術カンファレンス。
FlutterやDartの深い知見を持つ開発者によるセッションを多数企画します。

このようなカンファレンスの魅力は、自分が興味を持っていた技術だけでなく、普段は意識していなかったことにも気づかされる機会があることです。今年も多くの参加者がさまざまな知見を得られたのではないでしょうか？


## テーマ
私たちは今回 **「ゆめみのFlutterエンジニア育成方法」** というテーマで登壇しました。内容は大まかに以下の通りです。


- Flutter研修課題の内容
  - 全11Session
  - 状態管理（Riverpod）, Unit,Widget Test,etc.
- レビュー時に利用する観点表
  - Session毎のレビュー項目
  - 基礎的なレビュー項目

冒頭にも述べた通り、これは私たちが実際に受けた研修です。この研修は昨年公開されましたが、実際に受講して気づいた学びや躓いたポイントなどを、発表スライドやレビュー観点表を通じて共有することで、Flutterコミュニティのさらなる活性化を目指しています。

https://qiita.com/blendthink/items/c2d6bdc4ebb8bbe8f666

## 資料作り編
資料作成は私たち3人で分担しました。全員が資料作りに不慣れだったので、最初にそれぞれが仮資料を作成し、そこから良い点を集めて基盤を作りました。基本的なデザインは運営から提供されたテンプレートに準拠しました（非常にカッコよかったです！）。

### 辛かった点
一番苦労したのは、3人の意見を調整することでした。「各セッションで伝えたい内容」「資料のデザイン」「伝え方」など、考え方が異なるため、認識のずれが生じることがありました。スライドを作成した後に「これは違う」と感じることもありました。

### どのように対処したか
中立的な立場の人が上手にまとめてくれました。自分には「これが良い」という考えがあると、客観的に考えているつもりでも、結局は自分の意見を押し通すことが多くなります。そこで、中立的な立場の人が客観的に、視聴者の立場に立って良い案を提案してくれました。また、デザインや資料内容については、口頭で話すよりも新しい案を実際に作成し、比較することでどちらが優れているかを判断しやすくなりました。


## 発表練習編
本番2週間前から台本を作成し、実際に発表練習を始めました。同時に、会社のメンバーにレビューをお願いし、言い回しや資料の改善点についてアドバイスをいただきました。とても感謝しています。
模擬発表をしてみると、ある程度は上手くできたと感じましたが、「スライドと口頭説明だけで視聴者が理解できるか」を常に考えながら、資料や台本を日々改善しました。

## 当日編
いよいよ当日がやってきました。ドキドキでした。私たちが会場に到着したとき、スポンサーブースはすでに多くの人で賑わっていました。基調講演ではFlutterの歴史を振り返り、その後セッションがスタートしました。各セッションについて詳しくは触れませんが、どれも非常に魅力的で、学びが多い内容でした。

### いよいよ登壇
登壇時は終始緊張していました😂。声が震えてしまったため、聞き取りにくい部分もあったかもしれませんが、ご容赦ください。

それでも、スライドはできるだけ分かりやすく作成するよう心がけました。そのため、伝えたいことはしっかり伝わったと信じています。実際に、発表後にいくつかのポジティブなフィードバックをいただき、それが私たちの励みになりました。

### 質問タイム
ご質問いただいた点を改めて回答させていただきます。
質問時間は配信されていなかったので、記憶を頼りに書いています🙇‍♂️

**Q1: レビューは誰がするものだと考えているか**
- A1: 特に決まってはいません。レビュー観点表を活用していただければ、レビューに慣れていない方でも効果的なフィードバックが可能です。

**Q2: 実際に研修を受けた人が印象に残っている、難しかったセッションはどこか**
- A2: 質問内容と文言は違いますが、弊社の中で「勉強になったセッションランキング」で集計をとったところ以下のような結果でした。
  - 1位: Session8(State Management)
  - 2位: Session10(Widget Test)
  - 3位: Session9(Unit Test)

**Q3: この研修は誰が対象になっているのか**
- A3: 一応[選考課題](https://github.com/yumemi-inc/flutter-engineer-codecheck)を通過した方以上方が対象ですが、レビュー観点表を参考にすれば初学者でも挑戦可能です。研修の所要時間は、Flutterの習熟度やレビュー体制にもよりますが、概ね0.5人月で1ヶ月が目安です。

## 懇親会
発表の後、懇親会では各セッションに対する意見を交換したり、Flutterへの想いについて話し合いました。普段はオフラインでFlutterエンジニアと交流する機会が少ない私にとって、これは非常に刺激的な経験でした。

また、私たちの発表を観てくれた方々からは、感想や質問を数多くいただきました。特に 「ゆめみさんの研修課題はとても充実していて素晴らしいと思いました」 という言葉をいただきとても感動しました。このような反響を得られたことは、私たちにとって大きな励みになりました。

懇親会では、参加者の方々との温かな交流を通じて、それぞれの経験や知見を共有し合いました。このようなやり取りから新しい視点を得ることができ、とても有意義な時間を過ごすことができました。


## 今回の登壇を通じて
今回のFlutterKaigiでの登壇は、私たちにとって本当に貴重な経験となりました！この機会を通じて、チームで協力する大切さや、3人で一緒に取り組むことのメリットを実感でき、個人的にも技術的にも多くのことを学ぶことができました。

資料作成では、「弊社の研修を初めて知る人にもわかりやすく」という点を意識しました。これにより、レビュー観点表を見直し、説明不足を補うことができました。これは単に資料を作る以上のもので、伝え方を学ぶ良い機会になりました。

チームワークの面では、みんなで作業を分担して進める中で、意見やスタイルの違いをうまく調整する必要がありました。中立的な立場のメンバーが効果的にまとめてくれたおかげで、最終的にはいい資料が作れたのではないかと思っています。

3人でいることの強みは、発表練習やフィードバックを行う際に特に感じました。一人では気づかない点を、他のメンバーが指摘してくれたことで、より良い発表につながりました。

個人的な成長に関しては、初めての公の場での発表が新たな自信につながりました。技術的な知識や、チーム内コミュニケーション能力の向上も感じられました。


このFlutter研修課題が、Flutterコミュニティの活性化に少しでも貢献できれば幸いです！

## 登壇関連リンク
https://speakerdeck.com/morikann/yumemino-flutter-enziniayu-cheng-fang-fa

https://github.com/yumemi-inc/flutter-training-template

https://notion.yumemi.co.jp/flutter%E7%A0%94%E4%BF%AE%E8%AA%B2%E9%A1%8C%E3%81%AE%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E8%A6%B3%E7%82%B9%E8%A1%A8