AbemaTV でiOSアプリ開発を担当しております、shoheiyokoyamaと申します。

「GitHubスターインセンティブ」制度で海外カンファレンスに参加した新卒の話の記事でも取材を受けさせて頂きましたが「GitHubスターインセンティブ」制度を活用して初の海外カンファレンス「Swift Summit San Francisco」に参加させて頂いたので内容を記事にまとめました。

 

Swift Summitとは

swift summit

サンフランシスコで毎年行われている世界有数のiOSエンジニア向けカンファレンスで、今年は10/30、31の二日間で行われました。

会場はパレス・オブ・ファインアーツという場所で、会場の外では市のランドマークとも言われる神秘的な建築物をみることができます。

Photo by Leticia Roncero
Photo by Leticia Roncero

こちらは1915年にパナマ運河の誕生を記念として造られたらしく、古代ギリシャ風の建物が池に面して建てられています。市民の散歩コースとしてよく利用されてるそうです。

swft summit helloween

今年は二日目がハロウィンということもあり、ハロウィン仕様の食事が準備されたり、ハロウィンのコスプレして登壇されている方もいました。

サンフランシスコ市内でもハロウィン仕様に飾られた家やお店が多かったのが印象的でした。

続いて、セッションの中で、いくつか気になった発表について紹介していきます。

 

Fast and Reliable Swift APIs with gRPC

Fast and Reliable Swift APIs with gRPC

こちらはgrpc-swiftのメインコントリビューターであるGoogle社のTim Burksさんによる発表になります。gRPCとはGoogleが開発しているRPC規格のフレームワークで、Protocol Buffersというデータのシリアライズフォーマットで通信を行うため、型安全なデータを扱うことができます。このフォーマットは定義ファイルを元に様々な言語へのモデル定義を生成でき、実際にAbemaTVの通信部分でも採用されています。

現在はSwift Package Managerのみのサポートですが、今後CocoaPodsやCarthageも対応予定のようです。

発表資料:Fast and Reliable Swift APIs with gRPC

 

Server-Side Swift from Scratch

Server-Side Swift from Scratch

こちらは元KickstarterリードエンジニアのBrandon Williamsさんによるトークです。関数型プログラミングに精通していてFunctional Swift Conference Fall 2017でも登壇されてます。

ミドルウェア周りから、ルーティング、viewレンダリングの実装まで関数型のアプローチで説明されています。型安全なルーティング処理の実装方法や、HTML、CSSをSwiftで構築する方法などが紹介されていて、サーバーサイドに興味がない方でも参考になる部分が多いかと思います。設計やインターフェースの定義方法などは非常に勉強になりました。

発表資料:Server-Side Swift from Scratch

Reader or Weep: Mock-free, Compile-time checked, Dependency Injection with Reader

Reader or Weep: Mock-free, Compile-time checked, Dependency Injection with Reader

Pinterest社のBrandon Kase さんのトークです。彼も関数型プログラミングに精通しており、2018年3月に開催されるTOKYO – try! Swift Conferenceでも登壇される予定です。

資料ではDI(Dependency Injection)の内容が主で、関数型プログラミングのアプローチでDIについて説明されています。この資料では関数をカリー化してDIを行う方法が紹介されており、コンポーネント単位で遅延的にDIを行うことが可能になっています。

AbemaTVでは設計上多くのグローバルな値が扱われていることもあり、テスタビリティを高めるためにDIを意識した実装が多いので、非常に参考になりました。

 

発表資料:Reader or Weep: Mock-free, Compile-time checked, Dependency Injection with Reader

サンプルコード:bkase swift-di-explorations

 

 

iOS Architectures in Context

iOS Architectures in Context

Tinder社 Garo Hussenjianさんの発表資料になります。

MVCやMVP、MVVM、 Clean、Viperなどから、DCI、Flow ControllerなどiOSではあまり聞かないアーキテクチャの話も聞けて非常に勉強になりました。アプリケーションの規模が大きくなるにつれて、責務分けや依存関係などは複雑になりがちなので、改めてアプリケーションのアーキテクチャについて考えるいい機会になりました。

発表資料:iOS Architectures in Context

 

カンファレンスを終えて

今回の発表は、Swift言語やOS、ツール、プロジェクトに関するものなど、様々な内容のトークがあったので、誰もが興味のあるトークが聞けるカンファレンスだったかなと思います。また、AppleやGoogle、FaceBook、IBMなど世界で有名な企業のエンジニアが登壇・参加されていてメンバーもかなり豪華な印象を受けました。

同伴してくださった世界のinamiyさんのお陰もあり、カンファレンス以外でもAppleやFaceBookをはじめ、いくつかの有名企業のオフィス見学へ行かせていただいたり、世界の有名なエンジニアと繋がることができ、普段ではできない多くの経験ができました。

実際に海外カンファレンスに参加してみて、発表を聞くこと以外にも様々な経験ができ、そこにも大きな価値があったように思えます。

今後も世界にも視野を広げて精進していこうと思いました。