2016/3/2(水)〜4(金)の 3 日間のカンファレンスに参加しました。幸いにも会社(フェンリル)がカンファレンスのスポンサーとして出資してくれて、スポンサー枠で参加させていただくことができました。大阪からの参加でしたので、参加費以上に交通費や宿泊費がかかったのですが、これも会社に経費として出していただきました。感謝。
参加した感想を書いてみます。
Sessions
このカンファレンスでは、タイムテーブルがシングルスレッドで、複数セッションが同時進行することがありませんでした。そのため、他の参加者も同じセッションに参加している場合が多く、その内容について話ができるというのは良かったです。
ただ、通常セッションの裏でスピーカーの方と直接対話できる Q&A セッションがありました。僕はいくつかの Q&A セッションに行ってスピーカーの方に質問したので、いくつかは聞けなかったセッションもありました。そんなセッションについては niwatako さんの聞き起こし記事(try! Swift 全日程聞き起こしまとめ)がおおいに役立ちました。本当にありがとうございます。
また、セッション中は Twitter に思ったことをツイートしたり他の人のツイートを見たりしながら話を聞いていました。そのため、#tryswiftconf まとめ Togetter もありがたかったです。そういえば、初日に Togetter の人と隣の席になり、少しだけ話をさせていただきました。
このカンファレンスで発表された方は海外の方が多く、英語での発表が多かったです。英語の聞き取りはあまり得意ではないのですが、同時通訳が用意されていて助かりました。技術的な内容もしっかり通訳されて頼もしく思いました。英語と通訳を両方耳に入れながら話を聞くことで理解しやすくなりました。
ところで、海外の方の発表には、かなりの率でポケモンが登場しました。日本=ポケモン、というイメージらしいですが、むしろ日本人の方がついていけない感じもあったのでは・・・。僕はポケモン世代でも何でもないですが、娘がポケモン好きなおかげでわりと話についていけました。何が幸いするか分からないですね。
Details
印象に残った内容をいくつかピックアップしてみます。本当はどのセッションも良かったのですが、全部は書ききれない。
オープンソース Swift
Swift がオープンソース化されたことにより、Swift コミュニティが成長しており、開発が進んでいます。正直なところ成長が早すぎてついていけていない感じがあるのですが、ついていくための助けになるセッションがあって良かったです。特に「オープンソースSwiftへの貢献」は熱いメッセージにあふれていて、僕も何かしら貢献したいと感じました。
ライブラリ開発
ライブラリ開発にあたってのヒントとなるセッションがいくつかありました。今後参考にさせていただきます。
エラー処理
Swift のエラー処理についての話も興味深く感じました。try/throw と Result との関係や async/await との関係が気になったので、Q&A セッションに行って質問させていただきました。その結果、たいへん興味深い話を聞くことができました。ありがとうございます。
Q&A で @koher さんにも話をうかがった。try/throw の背後には Result が、async/await の背後には Promise があって、どちらもモナドであって同じ構造とみなせる、ということで興味深かった #tryswiftconf
— 宇佐見 公輔 (@usamik26) 2016年3月2日
Swift らしいコード
Swift らしいコードにリファクタリングしていくセッションは感動しました。この設計はすぐにでも使えますね。発表中のコードで一部分からないところがあったので Q&A セッションに行きましたが、ホワイトボードで丁寧に説明していただいて良かったです。
登壇者の講義はじまった #tryswiftconf https://t.co/0ynDsSGH8J
— Daisuke Sato (@st_dsk) 2016年3月2日
デザイン本をコーディングに生かす
「誰のためのデザイン?」というデザイン本は有名かと思います。ここで、コードを書く開発者=デザイン本におけるユーザ、というふうに考えてデザイン本のアドバイスを開発に生かしたいという試みのセッションがありました。これもとても面白かったので Q&A セッションに行きました。ただ、何をどう質問すればいいか僕自身の中でまとまらなくて、話をするのが難しかったですが・・・。
モダンなインターフェースを作る
セッションの名前からして Core Data の話ががっつりあるのだろうと思ったらそうではなく、Core Data のインターフェースを Swift らしくする薄いラッパーを作る話でした。ここで触れられていた「Keep the spirit of the original implementation」という考えが良いと思いました。過剰なラッパーは良くないですね。
APIKit x RxSwift x ライブコーディング
APIKit は良いライブラリだと思いますが、まとまった説明が案外なかったので、改めて理解する良い機会になりました。また、RxSwift との組み合わせが上手で、さらにはライブコーディングが華麗でした。
ところで、「川」ってどこで誰が言い出したんでしょう。というのを ishkawa さんに聞こうと思ってて忘れてたということをこの記事を書きながら思い出した。
try! Haskell
今回のカンファレンスの中でも特にマニアックなセッションだった印象です。途中で、Swift でなく Haskell のコードを見ている気分になりました。Haskell も好きなのでこれはこれで面白かったです。
サーバサイド
サーバサイド Swift って、まあ話としてはあるんだろうけどそんなに興味はないかなあ、と思っていました。でもセッションを聞いてるとなんだか楽しそうな気がしてきました。ていうか、セッション中にライブデプロイとかやっちゃうんですね。すごい。
デザイナーを巻き込む
デザイナーに Xcode を触ってもらおう、という話。エンジニアとデザイナーがもっとお互いを理解して連携できればいいのになあ、という想いはずっと持っていて、とても興味深い話でした。Q&A セッションでも話をうかがいました。
デザイナーさんにとって、Photoshop などに比べたら Xcode は操作しづらいツールなんじゃないか、と聞いてみた。回答は、すべてのデザイナーさんに Xcode を覚えてもらうのは難しいので、意欲のある1〜2人に覚えてもらうのが良い、とのこと #tryswiftconf
— 宇佐見 公輔 (@usamik26) 2016年3月4日
また、他のデザイナーさんと仕事するときにも、その Xcode ができるデザイナーさんに協力してもらってコミットしてもらうというやり方も考えられるとのこと #tryswiftconf
— 宇佐見 公輔 (@usamik26) 2016年3月4日
なんか、そう考えると、その役目はデザイナーじゃなくエンジニアでもいいかも。ただ、何が簡単で何が難しいのかをデザイナーさんに分かってもらえるという効果もある #tryswiftconf
— 宇佐見 公輔 (@usamik26) 2016年3月4日
なお、この話はデザイナーがエンジニアに歩み寄る話でしたが、逆にエンジニアがデザイナーに歩み寄る必要もありますよね。それも今後の課題。
気づき
今回のカンファレンスを通じて、僕が興味があるのは「いかにすっきりとした設計のコードが書けるか」だ、という気づきを得ました。Swift という言語そのものに興味を持っているというよりも、すっきりとした設計のコードを書くためのツールとして Swift に興味を持っています。
Communications
これまで直接会ったことがなくオンラインでしか知らなかった人たちと、このカンファレンスで出会うことができました。みなさんありがとうございました。
スポンサー枠での参加ということで、2日目の夜の Speaker Dinner に参加することができました。しかし、スピーカーの多くは英語話者。何人かの方と会話を試みたものの、コミュニケーションにすごく苦労しました・・・。もともとコミュニケーションが下手な人間ですが、そこに英語への苦手意識が加わってパニックになるという。
3日目の夜の参加者全員での Party では、周りの方に英語のフォローをしていただいて、海外の方となんとかコミュニケーションをとることができました。参加者の中で日英両方できる人に通訳として入ってもらうというアイデアはすごく良かったです。
#tryswiftconf 最後のパーティで参加者同士の通訳はとても良く機能してたので、それを最初から思いついてやってたらよかったと思いました。
— kishikawa katsumi (@k_katsumi) 2016年3月5日
しかし、英語への苦手意識はどうにかしないといけないとも思いました。すぐパニックになるのを避けねば・・・。こんな現状で、前職では外資系な感じの会社にいて海外出張したこともあるというのが我ながら信じられないですね・・・。(まあ海外出張のときは、何日も同じ相手との打ち合わせだったし筆談も使えたからなんとかなったんですがね)
Thanks & Next
この素晴らしいカンファレンスを企画&運営してくださった主催者の方々に感謝します。
とても良いイベントでした。try! Swift 2017 へつながればいいですね。現在はノープランだそうですが。次回は関西がいいんじゃないかな・・・?