跳到主要內容

WWDC 2014 紀要 3 — Dev 開發工具方面的新玩意

螢幕快照 2014-06-04 上午1.19.51螢幕快照 2014-06-04 上午1.17.10

本文所有的圖片,皆截自 Apple WWDC 2014 Keynote 視訊串流

庫克又回主場,一開始就強調開發者在 Apple 這邊可看到的市場有多大,App Store 現已有超過 1200 支 app 在其中,每週有超過 3 億位訪客進到 App Store 裡頭。這些訪客不是只有瀏覽,也會不斷地在下載,截至目前為止,累計的 app 下載次數已超過 750 億次。

App Store 的功能將會更加完善,並加入軟體套組購買、介紹影片還有免費的 TestFight Beta App Testing 的平台。App Store 的搜尋功能一向為人所詬病,希望在這一次更新後,會有比較好的表現,讓開發者的 app,更容易為目標使用者接觸到。

克雷大又上場了,這次幾乎完全是他老兄的秀。一開始他就開宗明義地指出,這次的 iOS 有推出多達 4000 個 API。哇咧!這,大家又有得消化了。每天看一個,也要…嗯…10 幾年。:P。

首先是 Extensibility,其概念是將現有 App 的沙盒(sandbox),藉由系統的支援,讓其他程式可以取用,讓 app 可提供服務給其他的 app 來使用。要做到這樣且要兼顧 iOS 的安全性,其實並不是那麼容易,這個需要系統層級的支援。下圖顯示 Extensibility 的概念。由此,app 可以用系統為中介將服務提供出來,而這種作法也讓通知中心的 Widgets 變成可行。

螢幕快照 2014-06-04 上午1.34.06

比方說在 photo app 中可取用其他程式所提供的濾鏡,編輯完後,會回到 photo app 中。

螢幕快照 2014-06-04 上午1.39.58

通知中心的 Widgets 模組。

螢幕快照 2014-06-04 上午1.42.17

在 Safari 瀏覽的網頁中調用翻譯軟體進行即時文字翻譯。

螢幕快照 2014-06-04 上午1.44.19

Extensibility 還包括了第三方鍵盤,這讓使用嘸蝦米輸入的小弟出現了不用再學習拼音輸入法的曙光。第三方鍵盤需要的權限,需要通過使用者授權才行,這也可以確保安全性,至少是使用者同意過的。但您可以想想看,為何一個輸入法需要您允許它使用網路呢?

螢幕快照 2014-06-04 上午1.49.51

好用的 TouchID 終於有 API 開放了,這讓開發者為之興奮,因為以往需要使用者輸入帳密的情況,現在都可以用一個手指與 Home 鍵接觸的動作來完成。簡單說,就是更容易進行安全的付款,這對 開發者而言,當然是一件大事。:P

螢幕快照 2014-06-04 上午1.52.18

Camera API 也開放更多功能,手動對焦、曝光與白平衡的控制並加入 PhotoKit API,讓攝影類的 app 能提供更多更有彈性的功能。

螢幕快照 2014-06-04 上午1.58.05

接著是 HealthKit 與 HomeKit,Health Kit 已於前篇介紹過了,HomeKit 則是一種可將現有智慧家電整合的一種架構,這套架構可讓廠商的家電產品為 iOS 所支援,App 開發商也就不需要一一地去解決各種單一型智慧家電的控制問題。iOS 有支援汽車環境的架構,也有支援家用環境的架構,則單一 app 能夠幫使用者處理的事就變多了,未來整合型的多功能 app 應該會愈來愈多,而且搭配 Siri 後,就可以一語定天下了。:P

iPhone 變得愈來愈重要時,偷兒可能先設法弄到您的 iPhone,然後再弄到您的指紋,然後就通行無阻了。(亂入的)

螢幕快照 2014-06-04 上午1.59.31螢幕快照 2014-06-04 上午2.04.51

再來是 CloudKit,著重在協助開發者處理網路伺服器後端的事務。我們常需要將資料庫、商業邏輯訊息推播、認證等放在伺服器端,然後為了可擴展性,可能也考慮將伺服器放在雲端服務上,這會需要許多技術考量、整合與成本。CloudKit 試著提供一些"有限制"的服務,解決開發者這類的問題。看一下底下的流量、容量的支援,其實算是滿有誠意的。

螢幕快照 2014-06-04 上午2.13.35

接下來是 3D 繪圖引擎的部份,現行的 iOS 是透過 OpenGL 來取用硬體的運算能力,但 OpenGL 太大,以致效能降。新推出的 Metel 架構,大大減少 OpenGL 的做虛功的部份(overhead),讓提升繪圖硬體的效率。

螢幕快照 2014-06-04 上午2.21.50螢幕快照 2014-06-04 上午2.17.29螢幕快照 2014-06-04 上午2.19.27

不知道是不是會有 3D 版的植物大戰殭屍。

螢幕快照 2014-06-04 上午2.25.49

EPIC 所推出的禪風庭園,櫻花樹瞬間開滿櫻花。在 iPad 的 A7 處理器上能看到這種 3D 繪圖的效果,真是令人吃驚。一張畫面上都需要執行幾千次的繪圖功能叫用(draw call)。Metal 的效能是 OpenGL 的 10 倍。

螢幕快照 2014-06-04 上午2.29.44

此外,還有與去年推出的 SpriteKit 搭配的 SceneKit,基本上它是讓您處理遊戲場景用的框架。

螢幕快照 2014-06-04 上午2.35.28

Xcode 當然也有更新,這次提升 6.0 了,其中推出了一種新的程式語言,Swift。這當然會對 app 的創作產生根本性的影響。Swift 的 Playground 讓您可以像直譯式語言般地測試 app,這種互動性高且執行效率佳的編程環境,應該可以提高不少程式設計人員的工作效率。看來優點不少,不知學習曲線如何,有興趣的朋友,趕快下載 Swift 電子書(iBook Store)及下載 Xcode 6.0 Beta(Apple Developer Center) 來試看看。

螢幕快照 2014-06-04 上午2.38.10螢幕快照 2014-06-04 上午2.46.17

以上是關於開發工具方面的革新。

螢幕快照 2014-06-04 上午2.51.50螢幕快照 2014-06-04 上午2.52.10

以上(包含前 2 po)是小弟所整理的 WWDC 2014 的重點,基本上是依據 Keynote 的順序來編寫的,給您作參考。未盡完善處,也請見諒。這些新東西,往後還有得討論呢!謝謝收看。

忘了補充,目前上述三套軟體都是在試用測試的狀態,正式版會在今年第三季推出,當然一定是跟著新裝置推出,這點不會再錯了。

留言

這個網誌中的熱門文章

何謂博士?

在 簡睿隨筆網誌 中閒逛,無意間發現了這一篇文章,個人覺得寫得很好,特此引用其中一張圖,希望傳佈給更多朋友知道。 這張圖是該文章提到 Ph.D 是什麼時所用的圖,黑線是表示人類目前所瞭解的知識領域,而紅色區域的部份就是個人透過不斷學習所累積的知識,而所謂的 Ph.D. 就是在知識領域的某一點有特別的進展,進而讓人類的知識領域又擴展「一點點」的人。 個人從這篇文章以及自身的體驗中看到至少三件事。首先,大自然是浩瀚無涯的,不管人類再怎麼發展進步,總還是會有未知的地方,所以人要謙卑。其次,要不斷地努力,才能有所突破。最後,在人類的知識領域中,既使您已經是某個領域或一些領域的 Ph.D 了,您不知道的事情還多著呢! 努力、謙卑,就是小弟看完這篇文章後感受到的。

iPod、iPhone 與 iPad 的螢幕自動亮度問題

許多使用 iDevice 的網友應該有注意到螢幕自動亮度的問題,約在 iOS 5 或 iOS 6 時,自動亮度的運作方式似乎有些調整,不會再像以前那樣,螢幕亮度會隨環境不同而即時自動調整。目前觀察到的現象是,會自動調亮但不會自動調暗。 要確認您的 iDevice 裝置上的自動亮度運作是否有問題,可以依照下列的操作檢查看看,雖然有網友說這叫校正,但個人並不覺得下列操作是在進行亮度感應器的校正。 1。將機子帶到暗處(也可以將光感應器遮起來),將亮度滑桿拉到最暗的位置,並將自動調整亮度關閉。 2。將機子帶到亮處,開啟自動亮度。此時應可看到螢幕會漸漸變亮,而亮度滑桿也會往右滑。如果您的機子不會變亮,請 Reset 後(久按睡眠/開啟鍵與 Home 鍵至白蘋果出現)再試看看。如果您的機子像小弟的一樣亮度會變化,那應該就是正常的。如果 Reset 後還是不會作動,可能就是機子的問題。 但如果您又將機子帶到暗處,很抱歉,這時螢幕就不會變暗了。有人說這是 Bugs,有人說這是阿婆怕使用者將機器橫拿時遮到感應器而特別設定的,不論如何,不能自動變暗會讓習慣在晚上使用機子的朋友感到困擾,而這到底是蟲還是故意設定成如此,這就有待證實。 如果環境的照明條件變了但機子不會調暗時,您可以按一下睡眠/開啟鍵讓機子進入休眠,然後再開啟,這時畫面亮度應該就會停在適當的亮度狀態了。 後記:小弟在 iPad mini 與 iPad 2 上測試,iPad mini 運作正常(如大多數朋友所觀察到的狀況),但 iPad 2 在升級到 iOS 6 之後,亮度感應器就都沒有作動,不管怎麼調整都沒有辦法讓亮度自動改變。小弟的 iPad 2 是整修機,而且也過保了,如果您手頭上現還有 iPad 2 而且沒有過保,建議您測看看,有問題且這問題很困擾您的話,請換修吧!

以 Ad-Hoc 方式測試軟體 iOS 7.1 裝置需要使用具 SSL 憑證的伺服器

在進行 iOS 的 app 開發時,常需要讓一些團隊成員或測試者測試 beta 版的 app。如果您以 Ad-Hoc 方式發送測試用 app 給測試者下載安裝的話,使用者的裝置若已更新至 iOS 7.1,則您需要找個有 SSL 憑證,支援 HTTPS 的 host 來放置您的 app,否則測試者要下載測試軟體時,會遇上憑證無效的錯誤訊息而無法下載安裝。 提供給您參考,若您有相關的解決方法,也請不吝賜教分享給大家。 [更新] 可將 ipa 與 plist 檔上傳到 Dropbox 中的"公開檔夾(public)"中,然後連到 itms-services://?action=download-manifest&amp;url=<plist 檔的位置>,即可進行 Ad Hoc 的發佈。當然,測試者的裝置需經過開發裝置的 UDID 碼註冊才行。 另外,Google Site 因不支援以 itms-services:// 的協定連結,所以無法透過 Google Site 的連結來進行 Ad Hoc 的發佈。  [回覆 -> 天天網友] 請如圖所示般,複製 .ipa 檔的公開連結,將 .ipa 的公開連結加到 .plist 檔中。以同樣的方法複製 .plist 檔的公開連結,並將連到 .plist 檔的超連結寫成 itms-services://?action=download-manifest&amp;url=<plist 檔超連結> 的形式(沒有角括號),放在網頁中,或以電郵傳給測試者,點選之後,即可將 .ipa 檔下載安裝。不是以 HTML 的 <a href=""> 來連結。 您的問題應該是沒有在網頁的連結中使用 itms-services:// 的方式來進行連結,或不是連結到 .plist 的公開連結上。 .plist 的 URL 看起來會像是 https://dl.dropboxusercontent.com/u/xxxxxxx/xxxxxx/xxxxxxxx.plist。網頁中連結的寫法是 <a href=itms-services://?action=download-manifest&amp;url=https://dl.dropboxuserco...