WWDC 2015

KKBOX staff at WWDC 2015

今年 WWDC 在 6 月 8 日至 12 日舉辦,KKBOX 共有 5 位工程師與一位 PM 參加。

WWDC 分成 sessions 與 labs 兩個部分,在 Moscone West 這個可以容納五千人的會議廳中,sessions 在二、三樓舉辦,一樓則是報到區、用餐區以及好幾個 lab 區塊,sessions 就是你可以在蘋果網站上。而這幾年發展下來,如果你去了 WWDC 現場,你應該要把重點放在 labs 而不是 sessions。

WWDC 的價值: Labs

回到 2011 或 12 年,能夠在現場聽到 Session 還相當重要。那時候蘋果還不會預先公告售票時間、或是用抽獎方式告訴你是否有購票權利,而是在一個奇怪的時間(像是台北時間凌晨兩點)就突然開始賣票,當你一覺起來,只知道門票已經搶購一空,與當年 WWDC 絕緣。

而當 WWDC 開始,你可能用訊號斷斷續續的直播看完 Keynote,而 Keynote 大部分的內容其實還是靠 Engadget 或 Gizmodo 的 live blog 知道,接下來從 Platforms State of Union 1開始的所有 session 的影片,要過了一個月之後才公布,如果你想馬上知道 WWDC 上發佈了什麼,只能夠從 Twitter 上面的片段推文找出些蛛絲馬跡,猜測新的 Xcode 有什麼功能,ARC 又是怎樣的技術,而當年的蘋果還很奇怪,會要求參加 WWDC 的 Developer 簽署 NDA,在新的 OS 推出之前不可以隨便討論 WWDC 上的內容,你得要隔了一陣子才能掌握有哪些新技術。

可是過去兩年 WWDC 影片在活動結束後就立刻上網,今年更是哪場 session 結束,網路上就馬上有影片,而且議程進行時,其中兩軌更是直接有線上直播。就算你在台北,只要你有辦法連續一個星期半夜都不睡覺,盯著蘋果的直播看,你也可以在遠端全程參與 WWDC,因為這兩軌是在兩個最大的會議廳舉辦(三樓的 Presidio 與 二樓的 Mission),也等於直接參加了最重要的幾場 session。那你何必還要花上實在不便宜的門票、機票與住宿,去舊金山一趟呢?

其實你在現場聽這些最大廳的 session 也不怎麼舒適。Presidio 與 Mission 都可以容納上千人,如果你想聽這些大廳的 session,最好先帶上飲水、上過洗手間,最好「今天上午或下午我就要在這個位子坐上三個小時」的心理準備:這些大廳的每場 session 開始前,都有數百人排隊入場,好不容易進了場,中間想出來上個洗手間,想回去又得重新排隊。當你在會議廳裡頭,幾百人甚至上千人所排放出的二氧化碳,也讓你在狹小的座位上昏沉欲睡,有時你不禁覺得在家看影片還舒服些。而其實,就算你在現場聽過 session,要完全掌握技術,回來之後還是得再把影片看過一遍。

排隊進入 Presidio

但是 WWDC Labs 可能是你一年當中唯一有機會可以找到蘋果工程師可以面對面解決問題的地方,你用到的系統 API 遇到問題,你可以在這個地方遇到 API 的作者,你可以帶著 MacBook,打開程式碼,和對方直接討論程式中的問題。

WWDC 的 lab 會分時段,當時段開始時,就可以去 lab 的櫃檯排隊,跟櫃檯先粗略說明你遇到的問題,櫃檯就幫你分配哪位工程師可能可以解決你的問題,你就再去那位工程師所在的那桌排隊,排到了就是你的時間。但很多時候櫃檯的人員也不是很確定哪位工程師可以解決問題就是了,蘋果是家大公司,對裡頭的人來說,也很難搞清楚哪塊功能現在是屬於哪位同事負責。

通常每天都有 UI lab 與 Swift lab,UI lab 是最多人排隊的 lab,什麼時候都是大排長龍,你可以帶著你的 App 排隊去找 Apple 的設計師,讓對方從 Apple 的角度,來看你的 App 在設計上有些什麼問題。Swift lab 也很大,不過因為我們的專案還只有少部分使用 Swift,通常不會往那邊跑,因為我們做的是音樂服務,最長跑的是 Audio Lab,以及像是 IAP 的 lab 等。另外還有許許多多專門主題的 lab,像是 Mac App 的 Installer lab,driver 的 lab,Localization 相關的 lab…。

而每年每一版 iOS 都會有些細微的改動,這些改動對大多數人來說可能沒有重要到得放在 session 中,可是你就是用到了這些 API,這些問題就非要跑 lab 才問得出答案,而且可能要跑好幾個 lab,或是同一個 lab 要跑好幾趟。

比方說,2013 年推出 iOS 7,對大多數人來說的重大影響是擬真化設計換成扁平化設計,但對我們而言,CFMessagePort 被標成 deprecated,對我們的專案影響可能更大,因為我們之前大量使用 CFMessagePort,這就非得要去 labs 才能夠問出來,但這類問題一開始還真不知道要去哪個 lab 問,只好去看起來好像有點相關的 labs 都問過一輪。

我們今年遇到一些 audio 的問題,首先遇到的工程師說,這個問題看來只有他們的主管知道,可是這位主管接下來是講者,所以要等他先講完,他才會回到 audio lab 這邊。所以我們也跑了好幾趟。

WWDC Labs

今年我們在 labs 中確認了這些問題:

  • 我們在拿到 Xcode 7 之後,突然就發現我們的 Mac App 編不起來,因為少了 openssl 的 header。去 lab 問了之後才知道,原來在 Mac OS X 10.11 El Capitan SDK 中,已經把 openssl 拿掉了。
  • El Capitan 的 Core Audio API 有些問題,與之前的作業系統不相容。如果你拿 El Capitan SDK 編出來的 Mac App,拿去 Yosemite 執行,會遇到無法從 AudioToolbox Framework 中載入 symbol 的錯誤。
  • 我們之前無法在 iTunes 的 sandbox 環境中,重現在家庭共享的環境下,「子女刷了父母的信用卡,要父母確認同意」這個流程;問了蘋果之後,確定無法在測試環境中模擬。另外用戶的 IAP 收據中,可能會出現重複的 Transaction ID,但是蘋果工程師自己也搞不太清楚這個狀況。
  • 我們發現了 CoreSpotlight 在圖片的部份有些問題,蘋果應該會在這陣子修正。

WWDC Parties

除了 Labs 之外,會讓你想去 WWDC 的另一個原因,就是除了這個場合之外,你大概沒有別的機會可以一次與來自世界各地的四五千位同行相聚,到了晚上就免不了有許多社交活動。為了要列出 WWDC 期間有哪些 Parties,甚至有專屬的網站與 App;前幾年的活動中還有不少很硬的技術講座,去年跟今年呢,絕大多數活動都是附近的矽谷公司請大家來喝啤酒,聽音樂聊天。

不過要參加這些 Paries,對台灣人來說,首先要先想辦法克服時差。大部分台灣人去 WWDC,會在前一週週六出發,到舊金山當地會是週六傍晚,吃個晚餐隔天去 Moscone 拿 Badge,週一早上五六點去排 Keynote…這樣安排,其實 WWDC 這週還是不斷被時差侵襲,往往早上三四點就睡不著起床,而大概到了下午四五點就已經精神不濟,session 與 lab 一結束,可能聽了六七場 session,或是跑了一天 lab,你就只想回旅館倒頭就睡。

我們在舊金山的那週,大概就只去了 AudioKit 的 meetup。如果你想在 Mac/iOS 上處理音訊,發明新的電子樂器,AudioKit 是一個相當 powerful 的 library。

WWDC 現場可以養成的能力

排隊聽 Keynote

WWDC 是目前業界最昂貴的技術研討會之一,幾個人在舊金山一個星期,就花掉了公司六、七十萬元。而我們的期許是在這一週的收穫,可以為公司創造超過這六、七十萬的效益:第一手掌握最新發表的技術、第一時間解決接下來在 Mac OS X 與 iOS 上會遇到的問題。

為了跑 lab,自然就必須要能夠與蘋果工程師交涉,我們讓一些新進的 iOS 工程師去這個場合,就是要讓成員可以在現場學會如何溝通。公司經常會希望派出英文能力比較好的成員參加這些國際研討會,但另一方面,也是要多去這些場合,才有辦法磨練英文能力;要去世界走走,才會知道世界有多大。

WWDC 也可以看到蘋果工程師的表達技巧。在台上的講者有些是 evangelist,但有更多其實是工程師,實際負責他所講述部分的開發工作;你可以在 WWDC 上看到蘋果工程師怎麼使用統一的風格描述他們做了什麼,呈現程式碼以及開發框架設計的意念。

還有,就是親身經歷國外的開發社群文化:除了前面提到的 parties 外,每年 WWDC 週四的晚上,蘋果在 Moscone 旁邊 Yerba Buena 公園安排的 Bash 上,總會邀請一流的樂團表演。在 sessions 與 labs 中,大家用力工作,結束之後,盡情享受歡聚一起的樂趣,一起認真享受生活。


  1. Platforms State of Union 是 WWDC 議程中緊接著 Keynote 後的下一場。Keynote 當中公布的是對所有用戶都會用到的 iOS 或 Mac OS X 新功能,但是 Developer 可以用到的新 API、新的開發工具…則是在 Platforms State of Union 公布。 

About zonble

iOS Developer at KKBOX.
This entry was posted in Events, iOS, Mac and tagged , , , . Bookmark the permalink.

One Response to WWDC 2015

  1. Pingback: KKBOX 的 iOS 開發訓練教材 | kkb0x.c0des

Leave a Reply

Your email address will not be published. Required fields are marked *