[ WWDC2018 ] - 來自一線開發者的技術筆記
7 人贊了文章
2018年6月4日,蘋果全球開發者大會(WWDC)在美國聖何塞如期舉行。今年的WWDC聚集了來自77個國家的6000多名開發者,與此同時,全球蘋果開發者的數量已經超過了2千萬。作為一年一度的開發者盛會,本次WWDC發布了以iOS12為代表的新版操作系統,開設了80多個session課程以及工程師現場答疑活動。今年,位元組跳動也有iOS開發者代表前往美國當地現場參與了WWDC,同時iOS開發者們也就session課程進行了深入學習和總結,期待與國內的iOS開發者們共同交流。
01.發布會
本次WWDC發布了iOS12、macOS Mojave、watchOS 5以及tvOS 12在內的新版操作系統。兩個半小時的發布會亮點豐富,驚喜不斷。
iOS12 -性能與新特性齊頭並進
iOS12主打對性能和穩定性的改進,同時在AR、Siri、emoji等方向做出了重大更新。
1.專註性能優化:所有支持運行iOS11的設備都將支持運行iOS12。得益於CPU的響應機制的優化,iOS12在新舊機型上都能得到良好的表現,具體的優化將在下文詳述。
2.AR:蘋果聯合皮克斯在內的3D巨頭創造了一種新的AR格式,USDZ,同時對ARKit進行了多項升級使其更好的融入生活。
3.Siri快捷短語:致力於讓siri能在合適的時間被喚醒和服務用戶
4.防沉迷:用戶可以為某個app設置防沉迷時間,家長還可以跨越設備訪問獲取孩子的活動報告,為孩子開啟防沉迷功能。
5.Memoji:支持用戶創建屬於自己的emoji表情。
watchOS 5 - 成為更好的智能助手
watchOS立志成為人類更好的智能助手,此次也在人工智慧方面做出了改進。
1.更好的健身助手:通過大數據分析,watchOS能更準確的估計運動消耗,並支持好友間的競賽。
2.更智能的Siri:和iOS12同步支持快捷語句、提供更準確的預測功能。
3.對講機功能:支持一對一的對講。
tvOS 12 - 視覺和聽覺的盛宴
最新發布的tvOS 12為Apple TV 4K加入了杜比全景聲支持,使用戶在4K和HDR畫質的基礎上得到更好的觀影體驗。
macOS Mojave - 更專業,也更親民
新版macOS主打著既能滿足專業人士工作需要、也能更好的服務大部分用戶的理念。基於這樣的理念,macOS Mojave引入了特別的更新內容。
1.夜間模式:暗色的背景為專業的圖像處理人員、視頻編輯人員和開發者帶來了更舒適的體驗;
2.桌面文件智能分組,讓用戶從雜亂的桌面中解脫出來
3.全新的Mac App Store
4.iOS app的移植 - 包括股市、語音備忘錄和家庭:macOS Mojave發力了一項令開發者期待已久的實驗,通過與iOS共享Foundation等底層框架,讓iOS app在僅需少部分代碼改動的情況下被移植到Mac OS上。這項矚目的功能目前在蘋果原生app上得到了實踐,並預計在2019年開放給廣大第三方開發者們。
02.Sessions
對於iOS開發者而言,蘋果在WWDC上為開發者帶來的一系列課程則更有實踐意義。通過這些課程,開發者可以更細緻的了解iOS12的新特性以及其在開發上的應用;而課程中對原理和最佳實踐的講解也對開發者提供了豐富的指導。下面我們將以iOS開發者的角度窺探WWDC 2018帶來的革新。
正如蘋果的高級副總裁Craig Federighi在發布現場所說的,iOS12在專註於性能和穩定性的同時,對ARKit、Siri、通知中心進行了改進。想要了解iOS12具體帶來了哪些新特性,Cocoa Touch革新 一文是一個精準的切入點。從這篇文章中,我們能了解iOS12在以下幾個方面做出了重大更新:
性能提升
iOS12對性能和穩定性的專註,使得它即將成為支持設備最多的iOS系統版本。
高性能 AutoLayout High Performance Auto Layout
iOS12對AutoLayout做出了革命性的性能優化。此前,AutoLayout一直是業務開發中一大性能瓶頸,以至於部分app不得不忍痛捨棄對AutoLayout的使用來緩解掉幀等性能問題。而這些問題在iOS12之後很可能成為歷史。
文章通過對AutoLayout底層原理的講解,向讀者展示了AutoLayout的運作方式。同時給出了AutoLayout使用上的最佳實踐,幫助開發者編寫一個高性能的布局。
優化 App Assets Optimizing App Assets
在一個iOS app中,資源文件也是及其重要的一部分。如何在應用中通過使用assets達到最好的視覺效果和最高效的使用視圖資源,也是每個開發者應該關注的部分。
文章概述了iOS12針對資源文件產出的新特性。介紹了如何使用asset catalog來最優化的組織、優化、製作視圖資源,如何更好的簡化設計和開發人員之間工作流程。通過使用視圖asset,可以提高應用的交付質量,佔用更小的空間,受益到更多的用戶。
使用Xcode做更快的構建 Building Faster in Xcode
除了iOS12運行上的性能提升,蘋果還在最新發布的Xcode10上對構建速度與開發效率進行了優化。
文章講述了Xcode 10與提高構建速度和開發效率相關的新特性,從工具、環境、代碼以及語言語法等多個方面介紹了加快構建速度的細節。通過了解Xcode在構建速度上的優化原理,開發者可以更好更高效地進行日常開發工作。
Swift
Swift從誕生以來就是每年WWDC備受關注的焦點之一。越來越多的開發者和企業開始轉向於使用Swift進行開發,Swift相關的課程也越來越受到包括位元組跳動的工程師們在內的開發者的重視。
Swift 4.2革新 Whats new in Swift
WWDC2018發布了Swift 4.2版本。主打兩方面的更新:一是關注提升開發人員生產力,開發者可以看到項目構建速度的提升和利於開發的語言改進;二是在二進位兼容性方面進行了大量的努力。
文章介紹了Swift 4.2在這兩方面的革新,同時對部分改進細節進行了原理剖析。
Swift 泛型 Swift Generics
泛型設計對於Swift語言來說是一個很重要的特性,能夠既保持靜態類型的特點又能夠達到代碼重用的目的。
文章主要探討了Swift泛型特性設計上的思考和新特性的應用方法,幫助開發者更好的理解和使用泛型這一特性。
了解Swift Package Manager Getting to Know Swift Package Manager
包管理一直軟體開發和管理中重要的一環。Swift Package Manager是Apple官方提供的軟體包管理器。
文章深入介紹了Swift Package Manager的優勢、基本概念和常用用法,記憶它的架構和設計思想。同時闡述了為什麼Swift Package Manager是一個安全、高效而且使用簡單的軟體包管理器。
創建屬於你自己的 Swift Playgrounds 訂閱 Create Your Own Swift Playgrounds Subscriptio
蘋果推崇人人都能使用Swift編程,在Swift的教育方向上做出了持續的努力。Swift Playgrouds就是為此誕生的一款革命性的iPad應用。
文章介紹了如何利用WWDC2018中新推出的模板工具製作出屬於自己的 Playground Book 以及如何託管自己的訂閱源並分享給他人。
AR
今年的WWDC發布會上,ARKit的更新作為iOS12的一大亮點被隆重介紹。
ARKit2 革新 What』s New in ARKit 2
ARKit 2是本次WWDC重點推出的更新,它使得開發生動的AR體驗的程序變得更容易,並提供了全新的方式與真實世界進行交互。
文章主要講述了ARKit 2的新特性。ARKit 2開始支持多台iOS設備同時查看同一AR場景或享受多人AR遊戲,及提供2D圖像和3D物體的檢測與跟蹤等新能力。
AR Quick Look 概覽 AR Quick Look
AR Quick Look 是iOS12推出的在AR場景中快速展示3D模型的新技術,使用便捷。
文章主要介紹了預覽頁QLPreviewController的使用以及新型的3D模型文件格式.usdz,並且介紹了官方對於創建並優化3D模型的建議。開發者可以使用Xcode10自帶的usdz Converter工具,輕易地將現有的3D模型資源打包成.usdz文件,集成到App或者Html中,快速預覽AR場景中的3D效果。
最佳實踐
WWDC中,除了對iOS12新特性的介紹,還有不少課程為開發者提供各iOS版本通用的原理和最佳實踐的講解,指導開發者提升代碼穩定性、優化性能。
高效使用集合 Using Collections Effectively
集合是日常開發中頻繁接觸的對象,理解集合、使用好集合也是每個iOS開發工程師必備的技能。
文章介紹了和集合相關的概念, 用法, 以及一些性能上的注意點, 從而指導開發者高效, 安全, 優雅的使用集合。
深入解析iOS內存 iOS Memory Deep Dive
內存是有限且系統共享的資源。對內存不合理的使用很有可能會引發OOM等嚴重問題。
文章介紹了虛擬內存分配機制以及開發者需要控制的內存佔用部分,並推薦了通過命令行工具分析記錄內存信息memgraph文件的調試方式。此外,蘋果工程師也在此給出了一些不同場景下如何合理使用內存的建議。
圖像最佳實踐 Image and Graphics Best Practices
在日常app開發中,圖片處理是開發者們經常遇到的挑戰。如何讓圖片展示更快、佔用內存更少?
文章重點關注iOS系統如何處理圖片,包括UIImage,UIImageView,custom drawing in UIKit,advanced CPU and GPU techniques四部分,旨在幫助app提高性能,減少內存佔用。
測量和優化HLS性能 Measuring and Optimizing HLS Performance
HTTP Live Streaming是蘋果推出的流媒體網路傳輸協議。
文章通過對流媒體直播回放過程的解刨,講述如何準確測量HLS流媒體性能,定位和優化HLS性能瓶頸以及如何正確使用Master Playlists來提升用戶觀看體驗。
Web安全策略 Strategies for Securing Web Content
帳號登錄
web是app中經常使用的,也是很容易受到安全攻擊部分,它遠遠沒有大家想像的安全。本文列出了常見的三種攻擊手段:跨域攻擊、預測執行攻擊、窗口控制攻擊,尤其是預測執行攻擊,對於大家常用的UIWebView來說是根本無法防禦的。本文總結了以往的安全防禦手段,並介紹了新推出的Cross-Origin-Resource-Policy 和 Cross-Origin-Window-Policy,針對這三種攻擊手段,給出了全面的防禦手段。
計算機視覺和物體追蹤 Vision with Core ML and Object Tracking in Vision
Vision提供了一個易於使用的API來處理許多計算機視覺任務,我們深入一個特彆強大的特性在視頻流中視覺跟蹤對象,更好地理解如何請求處理程序的生命周期函數,性能和內存利用率。以及,使用CoreML模型在Vision框架上計算機視覺應用,學習使用自定義訓練分類器和對象識別模型在一個相機捕捉和識別物體。
03.Lab
WWDC中還有蘋果工程師現場答疑的活動。位元組跳動的工程師也參與了現場答疑。與蘋果工程師寶貴的交流記錄也將在這裡分享給大家。
WWDC 2018 Lab:哪些是我們最關心的問題?
04.結語
無論是產品發布、特性介紹,還是原理講述、最佳實踐,WWDC對開發者來說都是寶貴且實用的學習資料。位元組跳動的開發者們期待著在共享WWDC學習資料的同時,也能有機會與國內眾多的iOS開發者互相交流學習。
如果你喜歡科技,崇尚創新
如果你追求極致,認同工程師文化
請和我們一起,歡迎加入位元組跳動頭條研發客戶端團隊。
有興趣的同學可以發送簡歷到:liujin.tina@bytedance.com
請在郵件標題標註意向工作城市(可選城市:北京/上海/深圳)
同時也期待能與各路小夥伴進行技術交流,技術交流相關事項可聯繫: yuxin@bytedance.com
推薦閱讀:
※《月亮的另一面》的筆記-第15頁
※怎樣用Evernote來管理事務
※善用 Evernote 數位筆記術 的10個必備觀念 ? A
※【應用說明書】印象筆記:Evernote 使用教程