Gunosy Tech Blog

Gunosy Tech Blogは株式会社Gunosyのエンジニアが知見を共有する技術ブログです。

WWDC2015に参加してきました

こんにちは。Gunosy開発本部iOSチームの川邉です。

2015/6/8から6/12に開催されたWWDC2015に参加してきました。

WWDCはAppleが主催している年に一度の開発者向けのカンファレンスです。 (WWDC2015公式サイト

例年、新製品もしくは開発者向け新機能や、新言語が発表されるため世界中から注目されています。

準備

WWDCは毎年春になると、開催告知が開発者に送られます。2014年から、応募者の内抽選で参加者が確定し、今年から参加が確定すると自動で参加費が引き落とされるシステムになりました。

開催期間は五日間ですが、前日の朝からチェックイン開始です。身分証明書と、iPhoneのパスブックを持っていくとチェックインできました。チェックインすると、WWDC特製ジャケットが貰えます。例年、開催期間の前後は多数のイベントがやっています。今年はWWDC Parties 2015を参考に参加イベントを事前に申し込み渡米しました。

開催場所はカリフォルニア州サンフランシスコ、Moscone Center。モスコーニセンターと読むそうです。この時期のサンフランシスコは東京より断然寒く、シリコンバーレーの陽気な天気からは考えられない位寒いので、ジャケットは必須です。

日本と比べると治安の悪い地域もあるので宿泊先には注意が必要です。外務省のホームページで危険な地域を確認しておくことをおすすめします。今年はAirbnbで宿を探しました。宿泊先は、Nob Hillの南部。会場から徒歩15分程で、坂道が多い為会場との往復は思ったよりコストになりました。

初日(6/8)

Keynote

WWDCメインイベントのKeynoteはLive viewingで観ました。Google I/Oよりも入場できる数が少ないWWDCの基調講演ですので、入場するには早朝から並ぶ事が必須。私は、朝ご飯が食べれて、イケてる技術者と出会えるLive Viewingを選びました。

というわけで、Twitter社のヘッドクオーターに。

普通のカップにもハッシュタグが付いています。

最初のトピックは、新しいMac OSXのバージョンEl Capitan。パフォーマンス・チューニングを中心に、Safariや、Mail等が進化した。また、日本語インプットメソッドが大幅に進化し、スペース等で変換する必要がなくなりました。フォントも変更され、全体のイメージが少し変わっています。

次に、iOS9。iOS6の時と同様に、派手な機能追加は少なかったが、着実に進化しているという印象でした。この大幅な機能追加と堅実なアップデートを繰り返すサイクルはアプリ開発の現場でも参考になるのではとも思います。さて、機能面ではプロアクティブアシスタントや、スプリットビューが目立ったアップデートでした。プロアクティブアシスタントは、コンテクストを理解しやサポートする仕組み。例えば、イヤフォンを挿したらMusicアプリ起動時と同様の画面がロックスクリーンに出る等です。iPadにおける、スプリットビューは遂に登場したかという機能。Auto LayoutやSize Classの活用がより重要になってくる発表でした。

また、開発者として最も興味をそそられたのは、watchOS2.0、Swift2.0及びObjective-Cの進化あたりでした。

そして極めつけの「One more thing…」。Twitter社に集まった開発者のボルテージが一瞬にして高まり、発表内容が噂されていた音楽の定額配信だと知り一気にテンションが下がる姿が印象的でした。

keynoteの詳しい内容は、よくまとまっているギズモードさんの記事を参考にして下さい。

【Apple Music登場】#WWDC2015 様々な発表が飛び出たWWDC2015の内容はこちらでチェック!:ギズモードジャパン

Platform State of the Union

昼食後に行われるのが、技術者向けの発表です。

私としてはこちらがメインなので、会場へと向かいました。

会場に到着し、ラボがある一階をさまよっていると、ティム・クック発見。開発者に囲まれ質問に答えていました。特にApple Musicや、Swiftに関する話題が多かった印象です。

個人的に気になったPlatform State of the Unionの内容を数点記しておきます。

watchOS2

先日開催した勉強会(Apple Watch meetup @ HillsGarageを開催しました。)では、制限のある中でいかにWatchアプリを作ったかという話が多かった中、その制限を取っ払ったwatchOS2が発表されました。

まず、Watch上のアプリがスタンドアローンになったこと。これによりBLEでデータを転送することなく、直接Apple Watchで取得することが可能になりました。

これにより大幅にパフォーマンスが改善され、iPhoneがなくても腕時計だけで多くの体験を提供できるようになります。

セキュリティ他

意外と注目されていないものの、大きな変更の一つにNSURLSessionで自動的ににHTTPSを使用させるようになったことが挙げられます。また、iOSアプリがIPv6でも動く事を保証するように求めたりする内容でした。

Window Management

iPadが遂にSurfaceに追いついた。遂にiPad上で画面を分割して複数のアプリを起動することが出来るようになりました。これにより、Adaptive User Interfacesの理解や、Auto Layout、Size Classの必要性が上がる事が予想されそうです。

Swift 2.0

Swift 2.0はコンパイラ及びiOS、OS X用のライブラリコードがオープンソース化されることが発表されました。また、これらはLinux用にも提供され、今後ウェブや様々なFrameworkがSwiftで開発され、より多くの文脈で使用される言語に進化していく可能性を秘めています。それだけではなく、guard、Protocol Extension、Error Handling Model等より使いやすい言語に進化しました。また、それに伴いObjective-Cも、Genericsが使えるようになったり追いつく形で進化しはじめています。

二日目(6/9)

二日目以降はセッションとラボが開始します。ラボではKeynoteでの発表内容を中心に、Apple製品に関わる内容を質問することができます。私は、特にSwiftラボ、Cocoa Toutchラボに入り浸り、実装し、困ったら質問するを繰り返しました。

参加セッションは

  • Introducing WatchKit for watchOS2
  • What’s New in Swift
  • What’s New in LLDB
  • Getting Started with Multitasking on iPad

NDAがあるので詳しくは書けませんが、LLDBのセッションは普段気づかない発見とLLDBの進化がわかりやすかったです。

Yelp WWDC After Party

Yelp主催のMeetupに参加しました。DJあり、タップビールあり、美味しい食事ありの会でした。 VLCのコミッターや、Youtubeアプリ開発者等と会え、日本では会えないような開発者と交流できるのも、WWDC期間の魅力です。

三日目(6/10)

二日目と同じくセッションに参加。

  • WatchKit In-Depth, Part1
  • WatchKit In-Depth, Part2
  • Introducing Search APIs
  • Protocol-Oriented Programming in Swift

に参加。

「Protocol-Oriented Programming in Swift」はSwift2で導入されたProtocol Extensionを用いて、オブジェクト指向における課題を解決しようという内容でした。もちろんCocoaフレームワークはオブジェクト指向で作られているので、直接Cocoaフレームワークに関わらない箇所で試して欲しいとのこと。アップルのソフトウェアエンジニアリング担当上級副社長のクレイグ・フェデリギも個人的に見に来ていました。

また、この日はRealmのオフィスを訪問しました。Realm社はWWDCと同じ時期に開催しているAltConf2015のビデオ配信をサポートしているらしく、2つの会場からのプレゼンテーションを見れる環境でした。世界の中でもトップクラスの開発者達も、私と同じようにビデオを聞きながらひたすらbeta版で開発をするスタイルの人が多かったです。

四日目(6/11)

同様にセッションに参加。

  • Introducing Watch Connectivity
  • Mysteries of Auto Layout, Part 1
  • Mysteries of Auto Layout, Part 2

この日から、ラボに入り浸りはじめたのですが、これが正解でした。API diffWath’s New in iOSサンプルコード等を見ながら、自ら実装し、困った箇所を聞くと理解が急激に進みました。

Bash

WWDC4日目はお祭りイベントであるBashが開催されます。 これは、Appleが選ぶアーティストによる野外ライブと食事が提供されるイベントでMoscone Centerからすぐ近くのYerba Buena Gardensにて開催されます。 今年はWalk the Moonというバンド。クレイグ・フェデリギによると、iTunes Music Storeで年間ベスト10にランクインした唯一のバンドとのこと。

www.youtube.com

ライブイベント後は、残った開発者達でビール片手に追い出されるまで話をしていました。一人でぶらぶらしている人を捕まえて話してみると面白い話が聞けるかもしれません。

五日目(6/12)

この日はUI Labに参加しました。Appleのデザイナーが、UIデザインについて相談に乗ってくれるというラボです。朝9時に受付開始で予約制のこのラボ、昨年は朝7時に並んでようやく予約出来たので今年も早起きしました。

自分の予約した時間にラボに行き、一対一で議論を進めていきます。その場で、対象ユーザーや、コンテンツについて議論しながら、手書きでUI案を出していきます。アプリ上部のタブの扱い、ナビゲーションバーの扱いが、Appleのデザインガイドラインとは違うよねと、意見を頂き納得言ってない私に対してデザイナーは

Appleのデザインガイドラインは、多くの研究を重ねて導き出された一つの解。iOSというプラットフォーム上の体験をより良くするために、よく読んで欲しい。

話していました。

30分と短い時間の中で、ここには書けない内容含め、有意義な議論が出来たので、来年以降参加される方はおすすめです。

まとめ

今年のWWDCはWorldwide Developers Conferenceという名に相応しく、プレス向けではなく開発者にとって興味深い内容が多かったという印象です。Swiftの発表があった昨年に比べると派手さはないものの、watchOS2、Swift2.0を筆頭に、検索向けAPIを中心としたAppleの新たな試みや、密かにパワーアップしているライブラリもあり、どのセッションも見応えがありました。この一週間で早く試し、ラボで議論し、アウトプットをするかがこの内容を実務に活かすキーだと感じています。

また、会社の出張として行き、情報のインプットに集中できるのは、貴重な機会でした。そんな弊社では、iOSエンジニアを募集していますので、興味をお持ちの方は是非ご連絡下さい。