LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog

Blog


try! Swift NYC 2019 登壇レポート

はじめに

みなさん、こんにちは。LINE Fukuokaで新卒エンジニアとしてLINE Creators StudioのiOSクライアントを開発しているfreddi(@___freddi___)です。

2019年9月9日と9月10日(9月8日にワークショップ)にアメリカ・ニューヨークで開催されたtry! Swift NYC 2019で登壇しましたので、登壇者としての目線から見たレポートをお届けします。

try! Swift NYCについて

try! Swiftは、東京・ニューヨーク・サンノゼ・バンガロール(インド)で開催されている、Swiftを扱うカンファレンスの中でも世界で最大級のカンファレンスです。
各地域で年に1回行なわれており、SpeakerとしてAppleのエンジニアや、Open Sourceのコントリビューター、iOS Tech Leadなどを世界中から招待しています。

カンファレンスの内容もレベルが高く、かつバラエティ豊富で、iOSの話だけではなくサーバーサイドSwiftや、電子工作にSwiftを使った話などといった、とても興味深い内容がたくさんあります。

2020年のtry! SwiftもすでにTokyoとNYCは発表されており、TokyoはSuper Swift Birdチケット(一番安いチケット)がすでに売れきれるほどの人気なので、チケット購入はお早めに検討したほうが良いです。

try! Swift Tokyo 2019でのLightning Talkの登壇からNYCへの登壇決定まで

まず、NYCで登壇するきっかけとなったのは、try! Swift Tokyo 2019のLightning Talk(LT)でした。
Tokyoでは「脱リテラル初心者」というタイトルのLTで登壇しており、Swiftのリテラルを低レイヤーの面からフォーカスしたお話をさせていただきました。

Deep Dive into Swift Literal from Yuki Aki

Tokyoの登壇が終わってしばらくたったあとに、try! Swiftの主催の方から発表内容が面白かったという旨とNYCでの登壇のお誘いがあり、私からもぜひ発表したいと返事をさせていただきました。

なかでも、try! Swift NYC 2019は個人的に注目度が高く、登壇が決定していなくても参加するのは検討していました。
理由としては、WWDC2019ではSwiftUIやCombineといった注目すべき技術が発表され、直後に開催されるカンファレンスであるこのイベントで詳しく取り上げられる可能性が高いと思ったからでした。
その期待も叶い今年はSwiftUIやCombine、中にはダークモードなどのiOS13からの機能にフォーカスしたトークがありました。

ニューヨークまで

登壇2日前に、福岡から合計16時間のフライトでニューヨークまで飛びました。私は飛行機恐怖症なので、無事にニューヨークに着くか不安でしたがなんとかなりました。
到着日の翌日は時間があったのでニューヨークの街中を周りました。

自由の女神を見に行ったり、タイムズスクエアにあるLINE Friends StoreでBrownのぬいぐるみを買ったりなど、ニューヨークを満喫しました。

ワークショップ

観光も楽しんだ翌日は、SwiftUIのワークショップがあったので参加しました。このSwiftUIのワークショップは、世界でも有名なSwift学習者向けサイトであるHacking with SwiftのPaul Hadsonさんが講師でした。

ワークショップ自体の内容は、隣の人とペアになり、Paulさんから出されたいくつかのSwiftUIの課題を一緒に進めて、1つのアプリを完成させるという内容でした。
Paulさんから提供された教材と教え方はとてもわかりやすく、SwiftUIに慣れていない私でも十分理解することができました。
私は英語に関してはいつも自信がないので、ペアの人とうまく一緒に進行できるか不安でしたが、殆どの課題を無事進めることができました。

ワークショップの雰囲気を知りたい方は、https://www.flickr.com/photos/tryswift/albums/72157711133078448 で写真を見ることができます。

余談ですが、PaulさんはSwiftUIを学習したい人向けに100 days of SwiftUIという教材も無償で出しており、コチラもわかりやすいのでおすすめです。私は今もこれでSwiftUIについて勉強しています。

スピーカー向けに用意されたホテルまでPaulさんとLyftに乗って雑談する機会があり、「ぼくの発表は難しいレイヤーの話だからみんな聞いてくれるかな?」と心配事について相談したら、「難しい話と易しい話両方あるのがカンファレンスのいいところだから、難しい話を話すことは良いことだと思うよ」とアドバイスをくださいました。Lyftの中でのPaulさんとの会話で、私の登壇への不安が幾分か解けました。

その後、スピーカーディナーに参加して、try! Swiftの主催者や他のスピーカーとお酒を飲みながら会話しました。スピーカーやワークショップの講師のうち数人も日本から来ていたエンジニアだったのを知って驚きました。

1日目

時差ボケと発表への興奮でこの日は朝5時に起きてしまったので、早めに会場に向かいました。会場入り口のモニターには、try! SwiftのマスコットであるRikoちゃんがいました。

この日は私の登壇の日でした。なので、登壇までは他の人のトークを見つつ、ずっとソワソワしていました。

ステージの様子

ステージ外の会場の様子、BitriseやIBMといったスポンサーブースがたくさんありました。

私の登壇内容はtry! Swift Tokyo 2019でのLTの拡張版で、SwiftのリテラルがSwiftのオブジェクトになるまでにどのようにコンパイルされているかを話しました。
また、Tokyo 2019から追加のトピックとして、Swiftのリテラルから作られるオブジェクトの型が、どのようにSwiftのバックエンド(LLVM)と紐付いているかを解説しました。

A Deeper Deep Dive into Swift Literal from Yuki Aki

今回のNYC 2019の中で唯一Swiftコンパイラの挙動を見たりLLVMとの間にある中間言語を見たりするトークだったので、それなりに難易度が高い発表の一つだったとおもいます。ですが、私のトークを聞いた多くの参加者から好評価をいただけたのでよかったです。
登壇の途中で、私がページ送りに使っていたiPhoneが動作をフリーズするなどのトラブルが有りましたが、なんとか乗り越えました。

登壇者として紹介されている時の私の写真です、とても楽しそう。

登壇会場は普段はミュージカルなどをやっているコンサート会場で、いつも登壇しているような普段の形式の会場とはまた違って面白かったです。

トークの後は25分間のオフィスアワーがあり、海外のエンジニアと私のトークについて密に話す機会がありました。「なぜこんなこと学んでるの?」とか「君の発表はどのように業務に生きているの?」などの質問をされました。

ディープな話を通訳なしに英語で議論するのは少々難しかったですが、相手も私のつたない英語を聞きながら一生懸命議論しようとしてくれいて、本当に楽しくオフィスアワーを過ごすことができました。

この日の面白かったと思ったトークを一部紹介します。

Parsing natural languages in Swift

Swiftで自然言語処理を行う話ですが、細かいところまでの自然言語処理に関するアルゴリズムの解説があり、わかりやすかったです。
Swift For TensorFlowを使って自然言語処理を行っているので、Swift For TensorFlowに興味がある人は必見だと思います。

Getting Started with Combine

RxSwiftのコントリビューターであるShai Mishaliさんが、Combineについてわかりやすく解説しています。このトークを聴けばRxSwiftを知らない人でもCombine入門できると思います。また、Combineを使う際に便利なLibraryも紹介されています。

Deeper into ARKit with CoreML and Turi Create

韓国から来たiOSエンジニアであるSoojin RoさんのTuri CreateとCoreMLを利用した発表です。カメラでリアルタイム認識した顔をお札の偉人の顔に合成するiPhoneのアプリを作っており、そのアプリに利用した技術としてTuri CreateとCoreMLといったライブラリを紹介しています。

アプリ開発でTuri CreateとCoreMLを使ったときの知見を詳しく紹介しており、とても勉強になりました。

1日目終了後

カンファレンスが終わった後、私が受けたワークショップの講師で登壇者であるPaulさんやShaiさん、他のワークショップの講師だったPaulさんとスペインのiOSエンジニアの方、そして偶然会場で出会った日本人のiOSエンジニアの方と一緒にピザを食べに行きました。登壇者ならではの交流ができてとても楽しかったです。

https://twitter.com/freak4pc/status/1171199025049210881

そのあと、カンファレンスのパーティでボーリングに行きました。何ゲームか楽しんだあと、時差ボケがひどく早めに帰ってしまいました。

2日目

私の登壇は終わっていたこともあり、この日のトークは穏やかな心で聴くことができました。

コーヒーブレークの間はこんな感じのお菓子があったり、

登壇の間にはプチマジックショーがあったりと、トーク以外もなかなか充実していました。

ちょうどこの日はAppleの新製品発表とかぶっており、お昼休憩のときは発表の中継を行っていました。

登壇の様子。

この日の面白かったと思ったトークを一部紹介します。

Extending UIColor to Support Custom Styling

私達がアプリで使う色についての解説があり、そこからiOS13で追加されたダークモードへの対応に便利なエクステンションなどの解説がありました。ダークモード対応を考えているiOSエンジニアは、特に必見だと思います。

Encoding and Decoding in Swift

MongoDBのエンジニアであるKaitlin Maharさんが、SwiftのEncodingとDecodingについて、仕組みの面からかなり詳しく説明しています。私達がEncodingとDecodingを利用するときにあまり意識しないことを解説しているので、新しい発見があるかもしれません。

SwiftUI in 25 Minutes

私が受けたワークショップの講師であるPaulさんのセッションです。なんとSwiftUIを使って、iOSアプリを登壇の制限時間である25分以内で作るというものでした。
Lyftで一緒にホテルに向かってるときは「時間内に終わんない」とPaulさんは言っていたのですが、本番では最後までやり遂げていて感動しました。
25分の中でSwiftUIの機能を利用して完成度の高いUIがどんどんと造られていく様は圧巻で、この動画を見返して勉強したいと思いました。
是非、この動画は最初から最後まで見てほしいです。

雰囲気と交流について

カンファレンス全体の雰囲気は、https://www.flickr.com/photos/tryswift/albums/72157711134470222https://www.flickr.com/photos/tryswift/albums/72157711166159657 をみると、より理解できると思います。

交流の面では、ヨルダンのエンジニアの方から流暢な日本語で話しかけられたり、フランスのエンジニアからも日本語で話しかけられたりと、予想以上に日本語を多く使った日でした。

また、歩くたびに「君の昨日のトークおもしろかったよ!」というお声がけを何度も頂いたので、本当に嬉しかったです。

カンファレンスも終わって、片付けの後はスポンサーブースがスッキリしててなにか寂しく感じました。

所感

登壇の面

今回の登壇は、カンファレンスで話すロングトークとしては初めてで、しかも初めて英語で話すということだったので、かなり準備と練習をしました。
スライドの英語の表現で怪しい所があれば、すぐに会社の英語講師の方や同僚のEnglish Speakerにひたすら聞いたり、毎日空いている会議室に引きこもって何回も練習しました。
当日は緊張してうまく話せませんでした。ですが、それでも聞いていて嬉しい感想を聞けたので、多く練習した甲斐はあったと思います。

また、登壇や資料作成を通じて、Swiftコンパイラへの知識やLLVMの知識ももっと深くなり、その後のSwiftコンパイラに関する勉強や登壇にも活きています。

登壇者としてカンファレンスに参加したことは特に良い体験でした。オフィスアワー以外でも登壇者同士で深く話したり、私の好きなことを世界のエンジニアに発信でき、参加者からも私の登壇/知識に対してかなり多くのフィードバックを貰えるなど、いつもとは違った感覚でカンファレンスを楽しめました。

カンファレンスについて

このカンファレンスでは多くの学びがありました。例えば、上記に並べたトークの中でも、"Extending UIColor to Support Custom Styling"を見ると、アプリをどのようにしてスマートにダークモード対応することができるかを学ぶことができます。また、"Getting Started with Combine"では、RxSwiftのコントリビューターがわかりやすくCombineを解説しているので、トークの中でCombineを理解することができました。

また、ワークショップでも、プロからSwiftUIのベースの知識を教えてもらうことができたので、今も継続しているSwiftUIの勉強にかなり活きています。

日本のカンファレンスももちろん良いですが、海外ともなるとその道のプロがたくさん情報を発信することが多いので、とても勉強になりました。

最後に

登壇に理解を示してれて、最後まで多くの面でサポートしてくれたLINE Fukuokaの皆さんにはとても感謝してもしきれません。

また、Natashaさんを始めとするtry! Swiftの運営メンバーに感謝を述べたいと思います。多大なるサポート、本当にありがとうございました。

宣伝

LINE Fukuokaでは登壇が大好きな新卒エンジニアも、登壇が好きではない新卒エンジニアも大募集しています。

LINE 新卒採用 2021

技術職はLINE㈱とLINE Fukuoka㈱合同募集です。
福岡勤務を希望の場合は、LINEグループ採用事務局より履歴書等の個人情報をLINE Fukuoka㈱に提供します。
初任給及び諸手当等は両法人同一です。

また、学生向けに長期インターンも募集しています。

LINE Fukuoka学生向け長期インターンはじめます。エンジニアとプランナーの2職種で募集開始!
エンジニア(学生向け長期インターン)