#iOSDC でRangeとString.Indexについて話しました

ブログを書くまでがiOSDCだよ!

プロポーザル

初めてiOSDCのような大規模なカンファレンスでの登壇の機会を今回始めて頂きました。去年オーディエンスで参加していてもめっちゃ楽しかったし、終わった後漠然と「スピーカーの人はもっと楽しいんだろうなー。来年はスピーカーで出てみたいなー」と感じていたので、無事CfPの採択メールを受け取った時は嬉しさのあまりガッツポーズでした。

CfPとしてはLTも含めて4つ提出しました。

結果的に最後の最後、ノリで書いたRangeについて話させて頂きました!個人的にはAnimation系ライブラリを作っていたので、CoreAnimation周りの話できればいいなーと思ってましたが、まさかのRangeが採択されるという。

その他のCfPについては残念ながら落選してしまいましたが、Moya + RxSwiftの話については俺コンにてお話する機会を頂いたので、そちらで発表します!

その他アニメーション系のCfPについてはどこかで供養せねば・・。

「Rangeと仲良くなる15分」について

Rangeのみで15分埋めるつもりが、資料の内容を考えるにつれ

これUnicode and String.Indexと仲良くならんとRangeと仲良くなれねーじゃん

という事が発覚し、最終的にタイトルを少し変更し、

Rangeと仲良くなる15分 with String.Index and Unicode

となりました。

結果的にはRangeというより、String.IndexとUnicodeの方が比重が多くなってしまった結果に・・・。

Rangeの面倒臭さを感じるタイミングって、多くの人はString操作時に感じているんじゃないかと思います。Stringから範囲を指定してスライスしたり、文字列検索を行った部分をごちゃごちゃしたり。String操作時にはRange<Int>を使えないので、Swiftでコードを書く時になんでこんな仕様になっているんだ?と誰もが思うのではないでしょうか。

いろいろ調べていくうちに、Unicodeの歴史について触れ、ごちゃごちゃと入り組んだ文字コード周りの仕様を知ることにより、SwiftのString.Index周りはうまいこと文字列を抽象化できているなと感じました。

ただCfPを提出した時にはそれこそ勢いで出していたので、CfPのタイミングでそこら辺もちゃんと記載しておけばよかったなと反省しています。。

登壇してみて

前述した通り、100人を超える大規模な会場で登壇する機会はいままでなかったので、貴重な体験でした。

iOSDC 2016の時にオーディエンス枠で参加した時ももちろん楽しかったのですが、登壇することによって改めて自分の発表する内容について深掘りすることで(登壇駆動開発的な)自分のスキルアップにもなりますし、他のスピーカーの方々ともコミュニケーションする機会を頂けることで自分のネットワークが広がる感じがしました。

今回CfPを出さなかったという人の中には、「自分の持っている情報なんて、皆知っている事だから発表してもしょうがないんじゃないか」と思っている方も少なくないのではないでしょうか。僕もその一人でした。

当時弊社に在籍していたAndroidエンジニアがDroidkaigiの冒頭で話していた言葉があります。

今まで、私の持っている知識は誰でも持っているもので、需要がないと感じていた。あなたにとって当たり前は、誰かにとって需要がある。ぜひ来年はプロポーザルを出してみてほしい @MoyuruAizawa

いい言葉ですね。自分が持っている情報は、もしかしたら一般的な内容かもしれない。けど、その情報の伝え方によっても受け手にとってより理解しやすい内容かもしれないし、オーディエンスが知らなかった情報も伝えられるかもしれない。

CfPを採択するかどうかは運営側の判断なので、「こんなもの発表してもいいんだろうか・・」というものでも、とりあえずCfPを出してみるってのがいいかと思います。運営側に立ってみると、様々なカテゴリーのCfPを提出してもらった方が全体的なトークのバランスも取りやすくなるでしょうし。

来年のiOSDCもやっていきの気持ちで参加したいと思います!そして次こそはベストスピーカー賞を取るぞ・・・!