try! Swift Tokyo 2018に参加しました

Riko かわいい

3月1〜3日に開催されたtry! Swift Tokyoに行ってきました。東京でのtry! Swiftは今回が3回目のはずですが、ぼくは今回が初参加になります。1回目の開催時から存在は知っていて、その頃から行ってみたいと思っていたところ、今年やっと行くことができました🙂

iOSDCやDroidKaigiと違ってトークのトラックが1つなので、どのトークを聞こうかと迷わなくて済むのはうれしいところ。そして、海外からの参加者が多いのも特徴です。トークに関しては同時通訳があり、レシーバーを借りることで、日本語、英語のどちらかの好きな言語で聞くことができます。

どのトークも素晴らしかったのですが、個人的に印象に残ったものをいくつか紹介します。

関心の分離と単純化のためのSwiftコードの最適化

Javier Soto

ソースコードは書くよりも読むほうに時間がかかる。だから、ただ動くコードよりも、何をしているものなのか、読んでわかりやすいコードにしようという話でした。それぞれ事例を挙げながら、意味が伝わるコードに書き換えていくというものでした。

コードレビューなどの実務面でも有効なものだと思いましたが、ぼくはプログラムにはアートの側面があると考えているので、その点からも、読み手に意図が伝わるコードは美しくてよいと思いました。

コーダーがデザインすべきなのか

Sash Zats

単なる見た目ではなくて、いかに機能するかということがデザインだというスティーブ・ジョブズの言葉の引用を元に、エンジニアがデザインに貢献できる点を挙げていました。例えば、エンジニアなら最新のAPIに精通していたり、技術的に何が可能かということを伝えることができるということでした。

究極的には誰もがデザインもコーディングもできるというのが理想ですが、現実にそうはいかないから、デザイナーとエンジニアがそれぞれの立場で協力しあって「いかに機能するか」を作り上げていくのが大事ってことかなと理解しました。

👾

Kohki Miki

「👾」はトークタイトルです。読めない。

Xcodeはゲーム開発ツールだ!という(ぼくにとっては)衝撃的な話で、SpriteKitやGameplayKitを使ったゲーム開発の紹介でした。どうしてもRiko(try! Swiftのマスコットキャラクター)を爆発させたいらしく、ユーモアを交えた内容でした。

おそらく、本業としてゲーム開発をやるならプラットフォームの多さも考えてUnityとかになるんでしょうが、Xcodeだけでこんなことができるんだと知って、個人ゲームを作ってみたいなあと思うくらい、印象に残ったトークでした。

AST メタプログラミング

Katsumi Kishikawa

SwiftのAST(Abstract Syntax Tree; 抽象構文木)の話です。いろんな手段で出力される様々なASTの紹介と、それらをきれいにまとめて比較していました。また、ASTを活用したツールを作ろうという話もあって、その中でSwiftPowerAssertも出てきました。

SwiftでPower Assertを作る話は、残念ながら実現しなかったPEAKSの「Inside Swift」(書籍)にも入る予定だったので個人的に気になっていたことでした。

SwiftのコンパイルフェーズではASTを書き換える手段がないので、上記のPower Assertではソースコードを書き換えてコンパイルにかける(最後に元のソースコードに戻す)という方法をとっています。ASTを直接書き換えることができるようになれば、もっといろんなツールが世の中に作られそうだなと思いました。

Swift によるアルゴリズムの可視化

Ben Scheirman

3次ベジェ曲線の描画アルゴリズムをSwift Playgroundを使って解説するというものでした。ライブコーディングでアルゴリズムを表現するプログラムを書いてゆき、その結果をリアルタイムにPlaygoundで確認するという流れで、すごく良い学習体験が得られました。たぶん、参加できなかった方にはこの興奮は伝わらないので、動画が公開されたらぜひ見てみてください。すごく上手に解説するなあと思っていたら、NSScreencastの人らしく、こういった解説は手慣れたものなんでしょうか。

Swift PlaygroundでUIを含むものはFlappy Birdのサンプルなどで知ってはいましたが、活用しているところを見たのは初めてでした。すごくわかりやすい、よい活用例だと思いました。

UIImageView vs Metal

Shuichi Tsutsumi

タイトルに「vs」と入っていますが、実際にはUIImageViewはMetalを使って構築されています。堤さんがUIImageViewのようなものをMetalを使って自作してみようとした経験を元に、Metalが何をやっているのかという部分を通じて、GPUレイヤーに目を向けてみようという話でした。Step by Stepで話が進行してゆき、わかりやすく納得感のある内容でした。

なお、ぼく個人はMetalの知識を全然持っていないのですが、そんな人が興味を持つ導入としての話になっていたのではないかと思います。PEAKSの「iOS 11 Programming」の第13章に堤さんによるMetalの解説があります。おそらく、それがこの導入の続きになると思います。

上記書籍では、Metalの基礎から細かく解説してあって、ぼくはざっとしか読めていなくて人に偉そうなことは言えないのですが、興味のある方はぜひ読まれてみてはと思います。「iOS 11 Programming」をまだ持っていないという方は、上のリンクから購入していただけるとぼくに紹介料が入ります🙂

おわりに

上に紹介した以外にも、共変性や反変性などの変性の話や、なんとKotlinの話など興味深いものもたくさんありましたが紹介しきれないのでこれくらいで。

なお、このようなトークセッションは2日間で、3日目は都内各所に分かれて開催されるワークショップとピアラボ(もくもく会)でした。ぼくはFirebase Cloud Firestoreのワークショップに参加したのですが、その話は機会があれば別に書こうと思います。

トークやワークショップ以外にも、いろんな方々に出会えたり、いろんなノベルティがもらえたり、自分の英語力のなさに落ち込んだりと、普段できない体験がありました(英語力については、普段なんの努力もしていないので、できなくて当たり前ではあるのですが、努力しなきゃなあと痛感しました😖)。

try! Swiftに参加してよかった!🤣

Like what you read? Give Hiron a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.