僕の最初のテックトーク、どうやって乗り越えたか - Fluttercon2023

![Fluttercon](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3522789/865ef4d5-1d24-2725-b2d7-8a14d11a8915.png)

ストーリーを話す前に、自己紹介したほうがいいと思います。
僕はゴールデナ・ルーカスと申します。二十二歳で、ドイツのシュトゥットガルトのHochschule der Medienというところでプログラミングを勉強しています。二、三年ぐらいプログラミングをしていますが、flutterで一年だけ働いています。fluttercon2023の前に大会でトークをしたことがありませんでした。シュトゥットガルトの小さいミートアップでトークをしたことがありましたが、大会に比べると観客が少なかったです。一回のトーク経験とFlutterでの一年の経験だけで、どうやってここまで来れたのか。

# トーク募集ステージ
![Flutterforward](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3522789/ac0b4fd5-4fe1-209f-ec91-2b5aa3c79b2e.png)
今年の**flutterforward**から僕のストーリーは始まりました。イベントの中で[ffigen](https://pub.dev/packages/ffigen)について話しました。ffigenについての動画は[こちら](https://www.droidcon.com/2023/08/07/comparing-ways-of-accessing-native-functionality/?source=post_page-----f6c1c10f0263--------------------------------#)。要約すると、ffigenを使えば、僕が一ヶ月でやった作業が自動でできます😢。素晴らしい道具ですが、難しい作業が簡単にできるとは驚きました。

好奇心から、ffigenを調べて、自分で試してみました。その結果、本当に効果的で、さらに速かったです。でも誰もffigenについて話していません。その時にflutterconの存在を耳にしました。トークの募集が始まりましたが、挑戦してみたいかわかりませんでした。小さいミートアップでトークをしたことがありましたが、flutterconはとても大きいイベントでした。世界中からの人々がそのイベントに参加しており、お金も払っています。

友人とflutterconについて話して、「募集してみたら？」と言われました。最悪の場合は断られますが、最高の場合は、素晴らしい機会をもらえます。

https://twitter.com/LucasGoldner/status/1631468371676999680?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1631468371676999680%7Ctwgr%5E903c5f48169b93342d8f753a56399b718c95f147%7Ctwcon%5Es1_c10&ref_url=https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Ftype%3Dtext2Fhtmlkey%3Da19fcc184b9711e1b4764040d3dc5c07schema%3Dtwitterurl%3Dhttps3A%2F%2Ftwitter.com%2FLucasGoldner%2Fstatus%2F16314683716769996803Fs3D20image%3Dhttps3A%2F%2Fi.embed.ly%2F1%2Fimage3Furl3Dhttps253A252F252Fabs.twimg.com252Ferrors252Flogo46x38.png26key3Da19fcc184b9711e1b4764040d3dc5c07

二ヶ月後、flutterconが間近でしたが、イベントを忘れてしまっていました。
日曜日、メールを読んで、椅子から転げ落ちました。それからそのツイートをしました。

https://twitter.com/LucasGoldner/status/1655269787499479048?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1655269787499479048%7Ctwgr%5E0287281e9ea42afdc19c9863117f4caaa869f753%7Ctwcon%5Es1_&ref_url=https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Ftype%3Dtext2Fhtmlkey%3Da19fcc184b9711e1b4764040d3dc5c07schema%3Dtwitterurl%3Dhttps3A%2F%2Ftwitter.com%2FLucasGoldner%2Fstatus%2F16552697874994790483Fs3D20image%3Dhttps3A%2F%2Fi.embed.ly%2F1%2Fimage3Furl3Dhttps253A252F252Fabs.twimg.com252Ferrors252Flogo46x38.png26key3Da19fcc184b9711e1b4764040d3dc5c07

説明できないくらいうれしかったです。次週、僕のプレゼンをまた変更しました。
印象に残るプレゼンを作成したかった。

# 準備ステージ
メールをもらった時に、プレゼンの準備はもう出来ていました。他の人の意見は良いトークですが、でも「良い」は十分ではないです。ミートアップの中でまた友人とプレゼンについて話しました。その日は大切な日ですから、僕はプレゼンの基本となる部分を変えました。

詳細は覚えいていないので、プレゼンのアイデアは全部**flutter**で作りました。問題は、プレゼンの全てを見るために、いろいろなウィンドウを切り替えなければならないことです。それは大変なので、観客にトークがわかりやすくなるようにしたかったです。それからプレゼンの試行錯誤が始まりました。

![Hustle Phase](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExeG8yM2NiODVhMDNocXRrOHJkeDVmMDc1dmVnNnV3bDl2eHppajNwaCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/1iTH1WIUjM0VATSw/giphy.gif)

flutterでプレゼンを完成させるのに一ヶ月かかりました。その中で他の問題を見つけました。CoreMotionのCMHeadphoneMotionManagerを使ってAirPodsからのデータを集めたかったのですが、CoreMotionはiOSのみをサポートしています。それはプレゼンの特別機能が見えないから、問題でした。僕の一ヶ月の作業は無駄だと思いました。

https://twitter.com/LucasGoldner/status/1660798411161886721?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1660798411161886721%7Ctwgr%5E5fed86568737885ef556392c7244709789be7cb9%7Ctwcon%5Es1_c10&ref_url=https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Ftype%3Dtext2Fhtmlkey%3Da19fcc184b9711e1b4764040d3dc5c07schema%3Dtwitterurl%3Dhttps3A%2F%2Ftwitter.com%2FLucasGoldner%2Fstatus%2F16607984111618867213Fs3D20image%3Dhttps3A%2F%2Fi.embed.ly%2F1%2Fimage3Furl3Dhttps253A252F252Fabs.twimg.com252Ferrors252Flogo46x38.png26key3Da19fcc184b9711e1b4764040d3dc5c07

次のアイデアは:

- M1のmacbookを持っているんので、アプリのiOSバージョンはmacBookで使えます。
    - 結果は、iOSアプリはデータを集められません。
- macbookのアプリとiOSのアプリで直接コミュニケーション機能を調べます。

その時に、僕のプレゼンはあまり良くないと思いましたが、僕の友達は他のアイデアを見つけてくれました。

>「iOSアプリのデータはなぜmacbookに送りますか」というようなことを言いました。

それは素晴らしいアイデアでした💡

それから、AirPodsのデータを集めるためのiOSアプリを作成し、ウェブソケットサーバーも作成し、アプリとサーバーを接続しました。AirPodsのデータを集めるパッケージはもう作成しましたので、アプリの開発手順は簡単でした。最後のステップはサーバーからプレゼンでデータを集めます。結局、プレゼンは想像通りに作れました。

![Finished](https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExMjBrc2pld24wcW1wN255M2JhNHN4OW83MjM1ZW81dm0zcTEyeHgyaCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xmxGoENM1V81q/giphy.gif)

その時、プレゼンの準備をしっかりと練習していたので、間違いをしませんでした。スピーチについてのビデオを調べましたが、テックトークに特化したものは見ませんでしたので、自分自身のスピーチスタイルを守りました。例外はプージャ・バウミックのfluttervikings2022のトークでした。

https://www.youtube.com/watch?v=uVxBGzRZY-k

𝕏(ツイータ)でプージャさんをフォローしているので、彼女のトークを見ました。もっと良いトークを選ぶことはできなかったと思います。ビデオを見たことがなければ、見ることをお勧めします。

# イベントタイム
７月５日、水曜日、12時10分にジョンソンの部屋で僕のプレゼンが行われます。

その日の前に、プレゼンの中でAirPodsの接続の問題があったので、心配しました。それで、プレゼンの前にAirPodsをもう繋げたので、接続は大丈夫です。

朝のキーノートの中でスピーチの募集数は３００以上があり、９０と僕のロポーザルだけ選んだから、とっても緊張していました😰。まず、たくさんのプロポーザルがあったのでさすがね）、とても驚きましたが、その中で僕のプロポーザルも選ばれました

。。。

プレゼン後から、何も思い出せんでした。他のスピーチをする人々もそうだと思います。ラファエルさんはかっこいいクリップを録音したので、ラッキーだった😆。

https://twitter.com/RaphaelDeLio/status/1676536391797207040?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1676536391797207040%7Ctwgr%5Ecfd6329f614a3b2c05d218b6ed01c96a5e2f6e1f%7Ctwcon%5Es1_c10&ref_url=https%3A%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Ftype%3Dtext2Fhtmlkey%3Da19fcc184b9711e1b4764040d3dc5c07schema%3Dtwitterurl%3Dhttps3A%2F%2Ftwitter.com%2FRaphaelDeLio%2Fstatus%2F16765363917972070403Fs3D20image%3Dhttps3A%2F%2Fi.embed.ly%2F1%2Fimage3Furl3Dhttps253A252F252Fabs.twimg.com252Ferrors252Flogo46x38.png26key3Da19fcc184b9711e1b4764040d3dc5c07

言った通り、全部のプレゼンを思い出していませんが、プレゼンの前にたくさん褒められました。今、大勢の人に「腕立て伏せ君」に名前を付けられました。それは良いと思うだろうか。プレゼンの間に一つの間違いは、腕立て伏せの後でAirPodsを外そうと思っていたのに、結局、プレゼンの中ずっとAirPodsを付けたままでした。誰も気づかなかったと思います😆。

# ストーリーの勉強

このような機会があれば、是非試してください。怖いかもしれませんが、失うものはないです。プロポーザルを送りのは無料です。スピーチをしたくなければ、断れます。しかし、実は受かったので、試すことは価値がありました。友達のサーパトをもらってありがとうございます。正直に、イベントの後で、全部のを信じられません。その経験から、自分自身についてたくさん学び、成長しました。このイベントに気合を入られました。そして僕の次のプレゼンのために、もっと努力します💪。

この話を共有して、他の人々にもテックトークを自分で試みる入を**望みます。**

# 話してトーク

## 録音

https://www.droidcon.com/2023/08/07/comparing-ways-of-accessing-native-functionality/?source=post_page-----f6c1c10f0263--------------------------------#

## コード

https://github.com/lucas-goldner/fluttercon_2023_presentation