はじめに
エンジニアの濵田です。昨年に引き続き、カリフォルニア州サンノゼで開かれた WWDC 2018 に参加してきました。
前回の WWDC 2017 参加で悔しかったことの一つに、「ラボ」と呼ばれるイベントにほとんど顔をださなかったことがあります。あとから、「ラボには絶対行ったほうがいい」という話をきいて、惜しいことしたなと残念でした。幸運にも再度 WWDC に参加することができたので、今回はラボ参加を優先して5日間を過ごしました 💪。
効率よくラボを楽しむにはいくつかコツがあることもわかったので、参加する上でのチップスや会場での流れを簡単にまとめます。
What's Lab?
名前だけ聞くとどういうものかわかりにくいですが、ラボとは、 Apple のスタッフが常駐している相談ブースのことです。ブースごとに違うトピックが扱われており、分野ごとに詳しいスタッフ(フレームワークの開発エンジニアや、デザイナ、マーケターなど)が直接質問に答えてくれる、ほかにはない機会です。
一部のラボには予約が必要なものもありますが、今回は割愛し、予約不要で参加できる大多数のラボに絞って紹介します。
ラボ前の準備
行きたいラボの開設期間を確認
お目当てのラボが常に開設されているわけではありません。膨大なトピックがあるので、一定時間ごとにラボの種類は入れ替わります。
WWDC app を使ってタイムスケジュールを確認しておきましょう(Android 版はありません😇)。各ラボでどんなトピックを扱うかも記載されています。
同じトピックを扱うラボは、会期中2回程度ずつ開設される場合が多いようです。
質問をメモに箇条書きにしておく
ラボでは英語で相談をすることになります。とっさに言葉がでてこないこともありますので、あらかじめメモしておくことに越したことはありません。質問のしわすれも防げます。
答えがよく理解できなかった場合でも、頼めば、メモの下部に回答を書き下してもらえる場合があります。Mac のメモアプリなどに解答欄を空けてもっていくとスムーズです📝。
ソースコード/シミュレータの準備
質問するためにソースコードの提示やアプリの動作を見せる必要がある場合、あらかじめ Mac でそれらを開いた状態で会場に向かうのがおすすめです。
- 適切なバージョンのソースコードをチェックアウト
- コードの該当箇所を開いておく
- ビルドしてシミュレータで動作するかチェック
相談をしている最中にこれらの作業を行うと、以外に時間を食います。焦ってうまくいかないこともあります。会場内にはデスクとネットワーク環境が用意されたラウンジがいくつも設置されていますので、ラボに向かう前の数分でちゃちゃっと準備してしまいましょう。
同僚に待機しておいてもらう
質問したい話題について、社内に自分より詳しい人間がいる場合、オンラインで待機してもらうと助かる場合があります。リアルタイムで追加の質問を出してもらったり、Apple 側からの問いかけに答えてもらったりすることで、問題の深い部分に迫ることができるかもしれません。
おいしい健康の場合、社内のエンジニアとチャットで相談しながら質問した結果、アプリの配布方法についてよりつっこんだ疑問をぶつけることができました。
時差の問題(JST-1600)もありますが、現地時間夕方のセッションならこの手が使いやすいと思います。
ラボにて質問を受けるまで
行列 🚶🏻🚶🏻🚶🏻
予約は不要とはいえ、人気のあるラボの場合、行列ができています。40分ほど待たされることもありました。ひとつのラボの開催時間は 2 時間ほど。行列の長さによっては開始後 1 時間で受付締切となる場合もありますので、早めに行くのが吉です。例えば、UICollectionView Lab という人気のラボの場合、開始後 1 時間未満で受付終了となり、話を聞くことができませんでした😢。
行列に並んでいるあいだに、列整理をするスタッフに質問の内容を事前に尋ねられます。質問内容にふさわしいエンジニアが空いたタイミングでブース内に案内してもらえますので、しばし待機。
質問する 🙌🏻
エンジニアの方に自己紹介して握手したら質問セッション開始です。
質問に取ってもらえる時間は、1 回 15 分くらいです。トピックにもよりますが、ソースコードを一緒に調べるような複雑な質問でも、長くて 30 分ほどになると思います。時間を無駄にしないよう、効率的に質問をする必要があります。
逆に、質問が早めに途切れてしまうと、すぐにセッションは終了してしまいます。30分並んで 3 分しか質問ができないのはもったいないですから、メモを参照しながら、なるべくたくさんの質問をしてみてください。
問題が解決しなかったら 🤔
時間が足りなくてうまく解答を探し出せなかったときや、尋ねても確かな答えがわからなかったときは、フォローアップの情報をもらえることがあります。
- 担当エンジニアのビジネスカード(メールアドレス)
- サポートケースの投稿先
- 参考になる過去のセッションのページへのリンク
ネットに情報のないマイナーな問題を抱えている場合など、どうしても食い下がりたいときなどは、連絡先 📧 がもらえないかどうか尋ねてみるのがよいでしょう。Apple エンジニアの興味を引くようにうまく問題を説明できれば、チャンスがあるかもしれません。
何度も足を運んでみること 🔄
同じラボにいるエンジニアにも専門分野があり、話題ごとに回答の質が大きく変わります。たいてい一番詳しい方のところに連れて行ってもらえるのですが、タイミングによっては、他の方による対応となる場合も。
同じラボはたいてい2回以上違う日時で開催されるので、日を改めてもう一度訪れてみるのをお勧めします。
余談
話す内容に困ったら…おすすめの質問
質問することがなくて、ラボに行きにくい……という場合もあると思います。そんなとき、とりあえず訊いていた質問がこちら。
「今年のこのラボでのホットトピックはなんですか?」
会期中、ラボの Apple エンジニアには世界中の開発者から質問が投げかけられます。やはり年ごとに関心が集中するポイントがあるようで、この質問の答えを聞くうち、世界中の開発者のトレンドや、よくあるつまづきどころなどを大まかに把握できると思います。話の中に出てきたトピックで気になるものが見つかれば、深掘りして訊いてみると面白い話が聞けると思います。
ただの挨拶でもOK
興味があるんで話を聞きに来たよ、くらいの軽いノリでラボにいっても全然 OK です ✋。親切に話を訊いてくれます。手ぶらでいってもできる質問として、以下をよく訊いていました。
ゆるい質問でも、丁寧に答えを返してくださいます。フレンドリーな人がほんとに多かった。
参加ラボ
参考までに、参加したラボと質問の例を列挙しておきます。
- UI Design Lab
- おいしい健康アプリのレシピビューについての相談
- Marketing in Appointment Lab
- VPP (Volume Purchase Program) アプリ申請時の reject 要件について確認
- HLS and AVFoundation Lab
- HLS ビデオの初回読み込み時のパフォーマンス改善について
- AVPlayerLayer を CollectionView に載せたときのスクロールパフォーマンス改善についてのテクニック
- AVPlayerItem のキャッシュがクリアされるタイミングについて確認
- StoreKit Lab
- VPP の細かい手続き、注意点について
- HealthKit Lab
- 複数のアイテムを日をまたいで同時に取得/記録する方法
- UIKit Lab
- NavigationBar をスクロールに応じてなめらかに隠す方法について
- UICollectionView に無限スクロールを実装するときのセクションわけのベストプラクティス
- CoreML Lab
- CreateML の転移学習のベースのモデルはどんなもの?
- Swift Open Hours
- Swift 5 での新機能について解説してほしい
- Xcode Open Hours
- Scheme と build target の使い分け、その基準とは
おわりに
ラボでの質問の合間に、雑談になることがあります。もう長い間 Apple に勤めているというエンジニアの方と WWDC の会場変更について話していたとき、
「あたらしい会場での運営は落ち着きましたか?」(昨年から WWDC の会場がサンフランシスコからサンノゼに移った)
「まだ試行錯誤してるよ。でも、もっと昔、Steve が帰ってきたときはこのコンベンションセンターでやってたんだけどね」
「え? Steve ってどなたですか?」
「スティーブ・ジョブズ氏だよ。NeXT が買収された直後の WWDC はこの会場だったから、懐かしくてはりきってるよ……」
という話になりました。 ああ、歴史のあるイベントなんだな……と、なんだか感慨深くなり、いまでも印象に残っています。
ラボに参加してよかったと思うのは、単に役に立つ質問ができただけでなく、イベントへの参加経験にひとつ奥行きが生まれるような話ができたからかもしれません。
WWDC 参加の際には、躊躇せずにぜひラボ会場に足を運んでみてください。グッと濃密な5日間になることうけあいです😁