AmebaアプリiOSエンジニアの木藤紘介です。
10月29、30日にサンフランシスコで行われたSwift Summitというカンファレンスに参加してきました。
今回はそのレポートを書かせていただきます。

Swift Summitの概要

Swift Summitはその名の通りSwift言語に関するカンファレンスです。
カンファレンスと聞くと堅い感じをイメージしてしまうかもしれませんが、実際に行ってみるとゆったりとした大きな勉強会のような雰囲気でした。

会場では積極的にコミュニケーションを取ろうとするエンジニアが多く、自分が知りたいことをどんどんいろんな人に聞く姿勢が印象的でした。



登壇者はSwiftに関する本を出版している方や、有名なライブラリの開発者、ブログが有名な方といったSwiftに精通している方々です。
1人20分から30分ほどの時間があり、初歩的な内容からコアな内容まで様々な発表がありました。
その中でも印象に残っているものをいくつかピックアップして紹介します。  

What I Learned From 55* Swift Standard Library Protocols



Swiftの標準ライブラリを参考にすると、protocolはこうあるべきであるというご自身の考えを発表されていました。
Swiftの標準ライブラリではprotocolは大きく分けて Can do タイプ, Is a タイプ, Can be タイプ の3種類あり、それぞれ -able, -Type, -Convertible を末尾につけた名前になっているようです。
また、Operations, Alternate views, Identity, Conversationはprotocolに含めるべきであるとおっしゃっていました。
適切なprotocolを書くためには世界中の様々なライブラリ、プロジェクトがどのようにprotocolを使っているかをたくさん読むことが大事だと強調されていました。

WWDC2015でもあったように、Swiftはprotocol-orientedな言語なので、protocolを題材にした発表は個人的にも興味深く、参考になりました。  

Speaker Deck

Simple asynchronous Swift code with ReactiveCocoa 4



日本のSwiftの勉強会でもよく耳にするReactiveの話でした。
if let文をネストしてcompletionHandlerを返して... という今まで面倒でかっこ悪かったコードがReactiveCocoaを使えばfunctionalに書けるよという話から始まり、ReactiveCocoaは難しいけど、シンプルで便利であるということをコードを交えて発表されていました。

AmebaアプリではReactive関連のライブラリを使っていないので自分が普段触れることはありませんが、このようなライブラリの使い方や中身の実装を知ってトレンドを抑えることも大切だなと再確認しました。  

Speaker Deck

Simpler Tables with Values, Enums and Protocols



発表者が開発したStaticというUITableViewに関するライブラリの紹介がメインの発表でした。
StaticはUITableViewにおけるMVVMの実現を目的に作られています。
UITableViewと言えば、UITableViewDelegateとUITableViewDataSourceのコードでViewControllerが太ってしまいがちですが、MVVMで実装することでこの問題を解消できます。

Amebaアプリでは弊社の@nghialvが開発したHakubaというUITableViewに関するライブラリを使っていますが、このライブラリも同じようにMVVMパターンを使ってUITableViewを実装することができます。
単純でシンプルなUITableViewCellがメインとなるUITableViewを実装するならStaticでもいいですが、カスタムなUITableViewCellがメインとなるUITableViewを実装するならHakubaの方が優れていると感じました。  

How to Build a More Compelling Watch App


Swift云々ということよりも、どのようなwatchアプリがよりユーザーに使われるのかということについての発表でした。
内容はwatchアプリ制作の基礎的な内容がメインでしたが、watchアプリのキーとなるのはアニメーション、音声入力を含む入力、デバイス間コミュニケーション、アクセシビリティだとして、コード付きでで説明されていたので、とても分かりやすかったです。

ちょうど最近watchOS 2を触ってみたり簡単なアプリを作ってみたりしていたので、内容がとても頭に入ってきていい勉強になりました。

スライド

Bring your apps to the big screen

これもSwiftの話というよりは、tvOSの初歩的な内容の紹介でした。
tvOSは触ったことがなく、何も知らない状態でこの発表を聞きましたが、意外と簡単に開発できそうだなという印象でした。
発表者も、UIKitを知っていればtvOSの開発は簡単に始められるとおっしゃっていました。

Apple WatchやApple TV (tvOS)などの新しいデバイスに対応するかどうかはプロジェクト次第ですが、それに関わらずエンジニアとして新しい技術に挑戦しておいて損はないと思うので、新しい技術にもっと挑戦していこうと思いました。  

Speaker Deck

Swift Summitを終えて

アメリカに行ったことすらなく、海外カンファレンスに参加するのも初めてで行く前はとても不安でしたが、実際に行ってみると様々な国のiOSエンジニアの考えや技術に触れることができ、とても学びが多いイベントとなりました。

Swiftに関する新しい学びがあったのはもちろんですが、一番感じたのは、日本も世界で戦える技術力を持っているということです。

今までは海外のエンジニア、特にシリコンバレーのエンジニアは自分とは比べものにならないくらいすごいエンジニアなのだと勝手に思っていました。
しかし、実際に会場のエンジニアの発表を聞いたり話したりしてみると、自分たちと同じ問題に頭を悩ませ、自分たちと同じ疑問を持っていました。

もちろん技術力が高いエンジニアばかりでしたが、日本にも技術力が高いエンジニアはたくさんいるので、日本でも世界と戦えるプロダクトは必ず作ることができると確信しました。

そして自分もそんなプロダクトを作り上げられるエンジニアになるために、日々励んでいきたいと思います。