FlutterNinjas 2025 登壇振り返り

2025/5/29 – 5/30 開催の FlutterNinjas に参加してきました。(正確には Pre-Party からなので 5/28 から)

https://flutterninjas.dev/

昨年の FlutterNinjas 2024 に引き続きプロポーザルが採択されスピーカーとしての参加でした。パネルディスカッションも前回に引き続き参加させていただきました。プロポーザルの採択、パネリストのお声がけいただきありがとうございます。

というわけで、このブログでは登壇の前後で考えたことなどを簡単にまとめたいと思います。

登壇内容

まず今回の登壇内容ですが、Haskell: Lead Your Code to the Next Level というタイトルで「Haskell の考え方やテクニックを Flutter のコーディングに取り入れることでわれわれのコードをよりよいものにできるのでは」という話をさせていただきました。

とはいえ Haskell 自体は私も初心者(3, 4 ヶ月前に Hello World した程度)だったので、必死にチュートリアルやドキュメントなどを読み漁ったり ChatGPT と自分の理解を確認したりしながらようやく話をまとめての発表でした。

普段は Flutter や Riverpod の内部の仕組みのような、「そこに答えがある」タイプの内容を整理して話すことが多かったので、最終的にはどんなマサカリが飛んでこようと「いやでも実際にそう書いてあるし」もしくは「確かに自分の読み違いでした、ご指摘ありがとうございます」のどちらかで決着できるのであまり質疑応答の心配はしていなかったのですが、今回は「正解のないひとつの考え方」タイプの発表だったため(しかも Haskell 自体の理解も自信がないため)、どんな反応をされるのか心配で普段以上に緊張した登壇でした。

結果としては特にマサカリは飛んで来ず、というより内容に関する質問自体がその場では飛んで来ずに安心したやらちょっと寂しいやらという感じではありましたが、その後 ask the speaker の場や懇親会の場ではいろいろと発展した話やポジティブなフィードバックももらえて、総じてこの内容で良かったと思える登壇でした。コーディングに対する自分の知識や考え方も一段深められた気がします。

発表資料

発表資料は今回も flutter_deck で作りました。

https://pub.dev/packages/flutter_deck

flutter_deck は登壇資料を Flutter で作って Desktop(もしくは web)アプリとして実行できるため、「仕掛け」を自由に入れられるところが気に入っています。今回は説明用のサンプルアプリをスライドに埋め込んだりしました。

ついでに宣伝ですが、flutter_deck で作ったスライドでアニメーションをしたい場合は最近私が開発、公開した animated_to というパッケージがオススメです。

https://pub.dev/packages/animated_to

flutter_deck で作成した資料は前回同様に好評で、手間はかかるものの「聞いてて楽しいプレゼンにする」ことを追求したい場面ではとても適しているツールだと思っています。

資料は以下に GitHub Pages で公開しています。ぜひページをめくるだけではなくいろいろ触ってみてください。

https://chooyan-eng.github.io/flutter_ninjas_2025/

登壇の目的

今回懇親会などで話題に出ていろいろ考えさせられたのが「登壇してみたいけど自信がない」という話でした。

とても気持ちはわかります。自分もこんなに積極的に登壇するようになったのは長い開発者歴(約15年)の中のここ 4, 5 年のことで、それまでは登壇する側で勉強会に出る自信も発想もなかった気がします。

が、登壇する側になった今としては「それほど難しく考えることでもないかも」と思ったりしています。

登壇の目的はあくまで「話題の提供」や「イベントの盛り上げ」であり、深い知識や難しい知見の共有は付加価値です。他の人にはできない踏み込んだ話ができればより良いですが、必須ではありません。(イベントの趣旨にもよりますが)

実際、「基本的なことだけどあまり触れる機会がなかった分野」に対する発表は多いですし、発表後の質疑応答では「いやそこは詳しくないんで」で終わる場面も少なからずありますし、もっと言うと聞く側としても正直「そんな小難しい話を巻き戻しのできない限られた時間の中でされてもよくわからん」となる場合もあるでしょう。

ということを総合して考えると、発表内容の「難しさレベル」は必ずしも高い必要はなく、なんなら難しい発表は発表自体がうまくないと逆に誰もついてこない結果にすらなる、と言えるのではないかなと思います。

技術的な興味にはいろいろな方向性があり、発表している人たちはそれぞれある方向に興味が向いただけで、他の方向のことは全然知らない場合も珍しくありません。自分も最近流行りの AI 技術のことやコードのパフォーマンスのことなんてさっぱりです。

勘違いしてはいけないのは、登壇者が「提供側」で聴衆が「お客さん」ではありません。全員が「参加者」で、役割分担が違うだけ です。登壇者が答えられないことは聴衆が口を挟んだって良いですし、ライブコーディングでトラブった時はきっと目の前の誰かが助けてくれます。Ask the speaker で逆に登壇者が教えられる場合もあります。参加者全員で知見や意見を共有するのがカンファレンスという場だと思っています。

という目的ですので、「レベルの高い難しい話ができない」を理由に登壇を躊躇する必要はないかなと思います。興味を持った話題を深掘りすればそれが自然と良い登壇ネタになるでしょう。あとはそれを 40 分の枠の中で飽きずに伝える工夫をするだけです(それもまた難しいのですが)。

私の登壇資料もなるべく小難しさを排除して、「こんな考え方したんだけどどう?」を 40 分間なるべく楽しく聞けるように意識してみました。私の発表、どうでしたでしょうか、、?

一応誤解のないように書いておくと、浅い知識のまま何の準備もなく登壇すれば良いというわけではありません。内容が基本的なことであってでも、正確にわかりやすく伝えようと思ったらそれなりの準備と自分の中での理解、言語化が必要です。少なくとも私はそのあたりに毎回時間がかかっています。

今後

特に FlutterNinjas を挟んでどう変わったということはありませんが、引き続きチャンスを見つけて登壇していきたいと思います。今回登壇した内容に関連する記事も時間を見つけて書いていきます。GDE も目指していきたいですという話を居酒屋で Majid さんと話したりしました。

というわけで今後ともイベントなどでお会いした際はよろしくお願いいたします。記事もぜひ読んでください。フリーランスやっていますので、お仕事があればご連絡ください。ぜひ。

コメントを残す