iOSDC2017に行ってきました. iOSDCは,iOSに関する技術を発表する日本のカンファレンスで今回が2回目です. 参加人数が800〜900人だったらしく,かなり巨大なカンファレンスになってきました.

発表

「Swiftで実装するHTML特殊文字の高速処理」というタイトルで発表しました.

どっかのLTで過去話したものを,ちゃんとEscape/Unescapeのアルゴリズム両方説明するようにまとめて発表しました. そもそも,Swiftは,割とC言語ライクにかける言語でもあり,memcpyやmemcmpが使える変わった仕様を持ちます. 今回の発表は,そんなSwiftのCっぽさを利用して,文字列をUnicharの配列にデコードし,その数値の配列のまま処理することで,高速に文字列を処理する方法を紹介するものでした.

ソースコードは,すべてここにあります.

あとで,@koherさんから,後で質問があった,「多数の絵文字を組み合わせてひとつの絵文字にするときに,この手法で問題ないのか?」という件ですが,問題ありません. 以下のコードは,男性の絵文字と医療マークの絵文字を並べた男性医師の絵文字ですが,以下のように,HTMLの特殊文字を並べることでも実現できます. ただし,絵文字が合字であることを示す,接続文字と,終端文字を入れる必要があるようです. 私は,UTF16回り詳しくないので,ここまでです・・・・・. HTMLSpecialCharactersをインポートして,以下のコード実行すれば,複数の絵文字が合体して,一つの絵文字になるところが見られます.

do {
    let test: String = "👨‍⚕️"
    let man = "👨".unescapeHTML
    let space = "‍".unescapeHTML
    let connect = "⚕".unescapeHTML
    let medic = "️".unescapeHTML
    
    show(man)
    show(space)
    show(connect)
    show(medic)
    
    // 絵文字の処理
    let escaped = "👨‍⚕️"
    show(escaped.unescapeHTML)
}

iOS11 Programming

さらに,本のクラウドファンディングで出版する”iOS11 Programming”という本の紹介セッションを運営サイドから開かせていただき,そのセッションにも登壇しました.

nextstep.fm

会場で声でわかりました,「nextstep.fmのsonsonさんですよね?」とか「聴いてます!」って10回くらい声かけられました.正直,だんだん恥ずかしくなってきましたが,ポッドキャストを聴いてくださっている方もいらっしゃるみたいなんで,まだまだ続けたいなと思っています.

ただ,iOS11 Programmingセッションで話してるのが,岸川さんと僕だけになるところが多々あったので,永野さんがいなかったら,もはや漫才になってただろうなぁ・・・と反省して守ります.

会場でも何回かこの話をしたのですが,ポッドキャストが流行ったのが10年前で,今更またポッドキャスト・・・・. これから,ユーザの可処分時間の争奪戦は厳しくなる一方ですから,色々なメディアの使い方が見直されてくるのかもしれません・・・・・.

iPad Pro

今回,初めてカンファレンスでMacBookを持たず,iPad Proだけで,すべてをこなすというのをやってみました. プログラミングは,Swift.playgroundsを使い,プレゼンは,Keynoteだけで完結させました. iOS11のSwift.playgrounds ver2.0から使えるカメラプログラミング環境を作ったので画像処理のサンプルコードもその場でかけますし,上述のHTMLの特殊文字のコードも,playgroundsのiPadアプリで書きました. iPad Proいけますよ.コレ.

まとめ

5年ほど前にVasilyであったインターンの学生さんが正社員のエンジニアになってたり,僕の子供でもおかしくない17歳のエンジニアが参加してたり,memcmpがあると安心する僕と同様の老兵エンジニアがいたり,いつものiOSエンジニアもいたりと,いつのまにかiOSコミュニティがこんなにでかくなったのかと感慨深いカンファレンスでした.

就職活動中の学生さんは,KotlinとSwiftのラムダ式内でのreturnの取り扱いの是非で,30分も口論,失敬,議論できるエンジニアが世の中にいて,そういう人と働きたいなら,どういう会社にいけばいいのかを考える意味でも,こういったカンファレンスに一度足を運んでみるといいと思いました.

スタッフ各位,お疲れ様でした.