iOSアプリ開発を主なテーマとするテックカンファレンス iOSDC JAPAN 2019にて「自作して理解するリアクティブプログラミングフレームワーク」というタイトルで発表してました。
YouTubeで動画が公開されています
今見返しても会場でのツイートがありがたいです。「リアクティブが歩いてる!」「この動画編集するのに眠れない夜もあっただろう!」というのは実際に会場でツイートされていたものを発表画面上に表示していました。
— Atom(アトム) (@FromAtom) September 7, 2019
この動画編集するのに眠れない夜もあっただろう! #iosdc #a
— kobaken (@koba_dog_) September 7, 2019
発表しながらツイートを拾うのは結構難しくて、YouTube動画見返すとツイートを拾えない/拾ったとしてもどう反応して良いか分からない/逆に何も考えずに読み上げてしまうという感じになってしまうのがわかりますね。
眠れない夜はなかったんですが、動画を編集するというのはなかなかやることが多くて大変です。iOSDC運営の人もYouTubeに動画をアップロードするためにかなり大変だったんだと思います。
今回の発表では次のようなサイクルの内容としていました
- RxSwiftのCold Observable/map/Subject/Hot変換の仕組みをそのコードで解説
- Keynoteのアニメーションで図解
- Xcodeのテストフレームワーク上でRxSwiftの挙動を確認しながら、オリジナルな偽RxSwiftを作っていく
- TODOを画面上に表示しコードの進行に従いチェックしていく
- 補足説明できるようにTweetを画面上に表示する
偽RxSwiftを作っていくのはライブコーディングするのはつらい。ライブコーディングでは絶対できる気がしないのであらかじめコーディングする動画を撮影しておくという手法にしていたので、コーディング風景を撮影したあとAdobe Premiere Proを使って編集し、キャプションを付けてたりしました。
モチベーション維持のためにバックグラウンドビデオを再生してしのぐ話
動画編集してくってのもかなり面倒で上のスクリーンショットを見ても分かるようにただただ面倒。
モチベーションを無理やり上げるためにBGVとして「ダンベル何㌔持てる?」を再生して延々繰り返すことによって少しづつ進めました。
公式の動画がこれ
主にフルバージョンがはかどります
コーディング動画を0.5倍速にしたり6倍速にしたが出力フォーマットはHEVCにする時間がなかった話
元の動画は120分以上あったと思うんですがその動画をまず3倍速することで40分になってはいたんですが、30分の発表枠のためそもそもの枠に編集した動画だけですでに収まりきらず、もう時間なんか過ぎてもいいやと思ってました。時間におさめようと再生速度を速くしすぎると何をやってるかわからないので、そうなると時間におさまったとしても本末転倒です。
しかし、前日くらいに気がついたんですが重要なところは0.5倍速、少し早くしても良いところは3倍速、わりとどうでもいいところは6倍速にすればいいということに気がついてだいたい22分くらいにはなったと思います。当日はmp4、フォーマットはAppleのHEVCへの出力作業してたんですがぎりぎり間に合わなかった。出力が間に合わなかった動画はHEVC(H.265)ではなくH.264形式のままになっていてKeynoteで埋め込むと再生ができなかったりするわけです。
Macの画面上にTweetを表示する仕組みについて
Macの画面上にTweetを表示する仕組みについてはiOSDCで発表するたびに「公開してください」「公開待ってます」と言われて4年目なんですが、とっくの昔に公開していてさらに保守を諦めかけています。
詳細はこちらを御覧ください。
https://github.com/yimajo/MeetupTweet
2016年くらいにRxSwiftの勉強用に作ったので全然理解できてなかったことも多く、今から修正するパワーとか全然ないです。
懇親会
#iosdc 懇親会で杉上さんに「RxSwift研究読本はオススメできます」いただきました!優勝!ベストトーク賞貰えなかったけど、この1年の努力の全てがここにあった!!https://t.co/uSXu9GKxsy pic.twitter.com/DggktpFJKz
— y.imajô (@yimajo) September 7, 2019
懇親会にて教えてもらったんですが、杉上さんが技術顧問でRxSwiftを伝える際に、「RxSwift研究読本」を参考にしていただくことがあるそうでありがたいことです。
ちなみにRxSwift研究読本3ではMVVMの複数あるパターンについて言及していますが、Modelをどうするかということについては一切言及しておらず、これは読み手の事情に任せるという形をとっています。Modelをどうするかということについて書くと独立した一冊になってしまいそうだったためです。
しかし、チームで議論するたたき台としてModelをどうするか、というテーマの一冊を書いてよいのかもなというのが最近の気持ちでして、「RxSwift研究読本4 VIPER編」を書いてみようかなという気持ちになりました。
反省点
反省点というか、今年からベストスピーカー賞がなくなったことを先に言ってほしかった...。最初からベストスピーカー賞なんてないなら気にしないこともあったと思うんですよね。
過去の発表動画
自分の動画見るの嫌なんですが、過去のもあったのでそれも載せておきます
iOSDC Japan 2018 Track B / Swiftの生みの親によるasync/await for Swiftを徹底解説し、新しい非同期処理の手法を理解する
iOSDC Japan 2017 09/17 Track C 16:00 / 15分でわかるバックグラウンドアップロード
iOSDC Japan 2016 08/20 Track A / やはりお前らのiOSアプリ開発は間違っている
帰ってきただめ自慢 Swiftだめ自慢
(たぶん2014年ぐらい)