見出し画像

iOSDC JAPAN 2018 で登壇しました

ニューヨークからこんにちは。8/29(水)から 9/2(日)まで開催されたiOSDC JAPAN 2018に参加・登壇してきました。

毎年1日ずつ伸びているiOSDCも今年はなんと-1日目〜3日目までの5日間開催。DJ Partyからレギュラートーク、LT、アンカンファレンス、Beer Bashなど夏のお祭りを一週間にまとめた濃密なお祭りでしたね。

肥大化しがちなアプリの起動経路を整理する


今回は上記のように題して、6種類以上もある起動経路によってFatになりがちなApp Delegateをどう整理していこうかという話をしました。


15分という短い時間でお話ししたので、具体的な設計まで踏み込むことはできなかったのですが、方針は十分示すことができたのではないかと思います。

このトークは起動経路の皮を被ったテストやろうぜというトークだったこと、汲み取っていただけたでしょうか。

AppDelegateは単体テストできないものと思い込みがちです。
これを聞くと、たしかにそうと思いがちですが、アプリの起動を分解すると、
起動 -> 遷移先の決定 / トラッキング -> 遷移
と分解でき、このうち遷移先の決定とトラッキングはテスト可能にできます。

トラッキングは実装手順として後回しにしがちで、SDKのチュートリアルにしたがってそのままメソッドを書いてしまうような雑な実装をしてしまうこともあると思います。このようなトラッキングは簡単に壊れます。

そこで、入力と出力を定義して、テストできるようにすることによって、余計な手動テストを減らし、デグレを検知できるようにすればだいぶ楽になるんじゃない?という提案をしました。

トークを聞けば、このトークには黒魔術も、新しい別の概念は必要ないことも十分おわかりいただけたでしょう。

カンファレンスはみんなが作った新しい考え方やアイディア、日頃聞けないようなニッチなトークを聞くのも魅力です。僕もそういう話が好きでカンファレンスに行きます。

ところが、それとは逆行したちょっと地味なトークです。当日まで聞きに来る層の需要がわからず、テストがっつり書いている人には物足りないし、テストをあまり書いた経験がない人に必要性が伝わるかは不安でした。

今回の話は今の職場での話ではなく、前職で直面した、僕自身が必要性を感じたものでした。

もちろん、遷移パターンをすべて手動で網羅できる人はそれでいいのです。しかし僕にはめんどくさくてやってられなかったので、テストを書くほうが楽だと判断して書いてました。その結果、気づけたエラーもありました。

この発想が当たり前だと思えたのは、1年間参加し続けているiOS Test nightによるところが大きいと思っています。

この勉強会に参加するまでは、僕もテストのことが全然わかってなくて、テストをおざなりにしていました。自動テストはコストが高いけど、ユニットテストで書いていけば効率良くできるよ。

というスタンスで臨んだら、



え?並ぶの?というぐらい埋まってくれました。
4つもセッションあるし、午後でつかれ始めている中、きっと何かしら期待してきてくれたんだなぁと思うと、とてもありがたかった。

ツイートを追ってみると、ポジティブなツイートばかりでよかったという気持ちです。

iOSDCのCfPを自動生成する


実はLTについても長谷川さんから声をかけてもらっていました。登壇日はもう雲の上だったので、希望登壇日に9/2はチェックを入れていませんでしたが、面白そうなので聞きたかったとのことでわざわざご連絡いただきました。今年分のデータも溜まったので、来年はより濃密なLTをお届けできると思います。ぜひまた採択検討いただけたらと。

iOSアプリ設計パターン雑談

アンカンファレンスが使えるということに気づいてしまった我々。

とはいえ、二日連続登壇をこなしたあとの対談で、くたくただったので、司会は結局7ganoさんにやってもらいました。急だったのにみなさんきてくれてありがとうございました。MVCに時間使いすぎるぐらいみんな設計に時間を割いているので、本を楽しみにしていてください。

普段会えない人たちに会える場所


コミュニティに2年もいると、会場に入れば友達ばかりです。すれ違い様に挨拶ラッシュです。ホームに思えるところはやはり居心地が良いのですが、地方の人たちと会えるのも楽しいです。

昨年から地方のコミュニティにも顔を出すようになりました。特に札幌や福岡の人たちは本当に快く歓迎してくださるので、昨年から現在まで3回ぐらいは遊びに行ってると思います。

こうして日本中に開発者の知り合いがいるのは楽しいのですが、僕がここで特に感謝したいのは、僕とまだあまり面識がないのに話かけてくださった方々です。
一方的に知ってるけど、話したことがない人と話すのは勇気がいると思うんですね。僕は人見知りなのでそうです(最近慣れてきたけど)。

通り際に「あ、d_dateさんこんにちは」と言っても、僕が軽くあしらってしまう可能性もある。
そんなことはあまりしませんが(うさんくさいのにはそういう対応をします)、「登壇よかったです」なんて軽く一言言ってもらえるのはとてもうれしいのです。
というわけで話かけてくれた人には感謝しかないし、今後ともよろしく!という気持ちです。機会あれば一緒になんかしましょうね。

ところがまだまだ終わらない長い夏の祭り


iOSDCは例年なぜかなかなか終わらないんですけど、今年もその一端を担います。これだけ採択トーク増えても、まだ聞けなかったトークがあるんですよ。聞きたいじゃないですか。いや、みんなが聞きたくなくても俺が聞きたいので俺コンなんです。
運営メンバーが自分のエゴで選んだトークを聞く。観客がゼロ人だろうが、少なくとも選んだ人は聞くから、安心して話してほしいということです。
トークを引き受けてくださった方々は、そろそろ準備せねば!という気持ちになっているかと思います。俺コンのためにわざわざ出張扱いにして東京に来てくださるスピーカーもいます。


このあとにも別にリジェクトコンがあって、俺コン運営メンバーも何人か登壇します(仲悪いの?って言われたことがありますが、去年は僕両方運営やってたぐらいで、全くそんなことはないです)。

もうちょっと一緒にお祭り楽しみませんか?

ご参加お待ちしております。

やさしいiOS界隈


日本のiOS界隈はとにかくやさしいです。登壇者へのリアクションがとてもいいし、マウント取る人もいないのに、Q&Aは活発です。みんな純粋に話したいこと話すし、聞きたいこと聞きます。きちんとした議論もできます。
きっとこういうことが楽しいから足を運ぶのだと思うし、僕もそういう場を作れるようにしたいと思います。

最後に、このような楽しい場を提供してくださるiOSDCスタッフのみなさんや、スポンサーのみなさんには本当に感謝しています。ありがとうございました。

この記事が気に入ったら、サポートをしてみませんか?気軽にクリエイターを支援できます。

note.user.nickname || note.user.urlname

サポートいただくと、ワインセラーのワインが増えます。増えたワインは記事でも紹介しますので、よろしくお願いします!

8

Daiki Matsudate

iOS Developer / Google Developers Expert for Firebase

#エンジニア 系記事まとめ

noteに投稿されたエンジニア系の記事のまとめ。コーディングTIPSよりは、考察や意見などを中心に。
1つ のマガジンに含まれています
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。