WWDC2018發(fā)布會(huì)
本次WWDC發(fā)布了iOS12、macOS Mojave档桃、watchOS 5以及tvOS 12在內(nèi)的新版操作系統(tǒng)瞬哼。
iOS12 -性能與新特性齊頭并進(jìn)
1潜圃、專注于性能優(yōu)化贩据。所有兼容iOS11的機(jī)型都將能使用iOS12.得益于CPU響應(yīng)機(jī)制的優(yōu)化,iOS12在新舊機(jī)型上都有良好的表現(xiàn)码撰。據(jù)蘋果介紹渗柿,iOS 12 將使得 iPhone 或 iPad 的操作更加快速和靈敏,比如應(yīng)用啟動(dòng)速度最高提升 40%脖岛;鍵盤顯示速度最高提升 50%朵栖,鍵盤調(diào)出的速度比以往更快,輸入也更加靈敏柴梆;從鎖屏界面中啟動(dòng)相機(jī)的速度最高提升 70%陨溅;高負(fù)載下 app 啟動(dòng)速度最高提升 2 倍。
2绍在、AR:蘋果聯(lián)合皮克斯在內(nèi)的3D巨頭創(chuàng)造了一種新的AR格式门扇,USDZ雹有,同時(shí)對(duì)ARKit進(jìn)行了多項(xiàng)升級(jí)使其更好的融入生活。
3臼寄、Siri Shortcuts(快捷短語)霸奕。Siri支持在App中創(chuàng)建或定制命令,以便快捷的執(zhí)行操作吉拳。
4铅祸、防沉迷。iOS新增了屏幕使用時(shí)間功能合武。具體來說,這項(xiàng)功能通過統(tǒng)計(jì)你花在各個(gè)app涡扼、網(wǎng)頁瀏覽上的時(shí)間稼跳,以及接收通知和拿起手機(jī)的頻率,讓你能夠系統(tǒng)的了解自己使用手機(jī)的習(xí)慣吃沪,從而幫助你合理安排花在設(shè)備上的時(shí)間汤善。
5、動(dòng)畫表情(Animoji)和擬我表情(Memoji)票彪。在iPhone X及以上機(jī)型支持創(chuàng)建擬我表情红淡,可以通過選擇皮膚、發(fā)型降铸、頭型在旱、眼睛、眉毛等特征來創(chuàng)建自己的卡通形象推掸,然后用在信息 app 或者 FaceTime 通話中桶蝎。
6、FaceTime通話谅畅。在iOS12中新增了群聊功能登渣,最多可支持32人同時(shí)進(jìn)行通話。其次毡泻,還新增支持動(dòng)畫表情和擬我表情胜茧。
watchOS 5 - 成為更好的智能助手
watchOS立志成為人類更好的智能助手,此次也在人工智能方面做出了改進(jìn)仇味。
1呻顽、更好的健身助手:通過大數(shù)據(jù)分析,watchOS能更準(zhǔn)確的估計(jì)運(yùn)動(dòng)消耗丹墨,并支持好友間的競(jìng)賽芬位。
2、更智能的Siri:和iOS12同步支持快捷語句带到、提供更準(zhǔn)確的預(yù)測(cè)功能昧碉。
3英染、對(duì)講機(jī)功能:支持一對(duì)一的對(duì)講。
tvOS 12 - 視覺和聽覺的盛宴
最新發(fā)布的tvOS 12為Apple TV 4K加入了杜比全景聲支持被饿,使用戶在4K和HDR畫質(zhì)的基礎(chǔ)上得到更好的觀影體驗(yàn)四康。
macOS Mojave - 更專業(yè),也更親民
1狭握、夜間模式:暗色的背景為專業(yè)的圖像處理人員闪金、視頻編輯人員和開發(fā)者帶來了更舒適的體驗(yàn);
2论颅、桌面文件智能分組哎垦,讓用戶從雜亂的桌面中解脫出來。
3恃疯、全心的Mac App Store漏设。
4、iOS app的移植 - 包括股市今妄、語音備忘錄和家庭:macOS Mojave發(fā)力了一項(xiàng)令開發(fā)者期待已久的實(shí)驗(yàn)郑口,通過與iOS共享Foundation等底層框架,讓iOS app在僅需少部分代碼改動(dòng)的情況下被移植到Mac OS上盾鳞。這項(xiàng)矚目的功能目前在蘋果原生app上得到了實(shí)踐犬性,并預(yù)計(jì)在2019年開放給廣大第三方開發(fā)者們。
針對(duì)開發(fā)者的教程
對(duì)于iOS開發(fā)者而言腾仅,蘋果在WWDC上為開發(fā)者帶來的一系列課程則更有實(shí)踐意義乒裆。通過這些課程,開發(fā)者可以更細(xì)致的了解iOS12的新特性以及其在開發(fā)上的應(yīng)用推励;而課程中對(duì)原理和最佳實(shí)踐的講解也對(duì)開發(fā)者提供了豐富的指導(dǎo)缸兔。下面我們將以iOS開發(fā)者的角度窺探WWDC 2018帶來的革新。
正如蘋果的高級(jí)副總裁Craig Federighi在發(fā)布現(xiàn)場(chǎng)所說的吹艇,iOS12在專注于性能和穩(wěn)定性的同時(shí)惰蜜,對(duì)ARKit、Siri受神、通知中心進(jìn)行了改進(jìn)抛猖。想要了解iOS12具體帶來了哪些新特性,Cocoa Touch革新 一文是一個(gè)精準(zhǔn)的切入點(diǎn)鼻听。從這篇文章中财著,我們能了解iOS12在以下幾個(gè)方面做出了重大更新:
性能提升
iOS12對(duì)性能和穩(wěn)定性的專注,使得它成為支持設(shè)備最多的iOS系統(tǒng)
1撑碴、scrolling撑教。在iOS12中首先對(duì)scrollview的滑動(dòng)做了預(yù)加載數(shù)據(jù)和CPU計(jì)算優(yōu)化。在iOS12中有了prefetch API醉拓,這個(gè)API可以提前異步的去進(jìn)行數(shù)據(jù)的獲取伟姐,所以在滑動(dòng)的時(shí)候繪制Cell那一幀時(shí)間里就省去了數(shù)據(jù)獲取的步驟收苏,只負(fù)責(zé)cell的繪制就夠了,這樣就大大節(jié)省了CPU的開銷愤兵。
在UITableViewDataSourcePrefetching這個(gè)protocol中鹿霸,也就兩個(gè)方法:
protocol UITableViewDataSourcePrefetching {
func tableView(_ tableView: UITableView, prefetchRowsAtindexPaths: [IndexPath])
func tableView(_ tableView: UITableView, cancelPrefetchingForRowsAt: indexPaths [IndexPath])
}
這兩個(gè)方法中必須實(shí)現(xiàn)的就是prefetchRowAt這個(gè)方法,你可以把一些耗時(shí)的數(shù)據(jù)獲取工作放在這個(gè)方法中秆乳。這樣就可以在cell顯示之前提前獲取數(shù)據(jù)而不用等到cell繪制的時(shí)候另外占用CPU開銷懦鼠。
2、iOS對(duì)圖片的內(nèi)存優(yōu)化屹堰。Automatic Backing Store肛冶。在iOS12的SDK中默認(rèn)會(huì)在下面這三個(gè)方法中進(jìn)行。
UIView.draw()
UIGraphicsImageRenderer
UIGraphicsImageRenderFormat.Range
所有與圖片渲染相關(guān)的API都可以使用Automatic Backing Store扯键,如果想要了解詳細(xì)使用情況的話睦袖,可以看這個(gè)sessionImage and Graphics Best Practices
3、高性能 AutoLayout High Performance Auto Layout
iOS12對(duì)AutoLayout做出了革命性的性能優(yōu)化忧陪。此前,AutoLayout一直是業(yè)務(wù)開發(fā)中一大性能瓶頸近范,以至于部分app不得不忍痛舍棄對(duì)AutoLayout的使用來緩解掉幀等性能問題嘶摊。而這些問題在iOS12之后很可能成為歷史。
文章通過對(duì)AutoLayout底層原理的講解评矩,向讀者展示了AutoLayout的運(yùn)作方式叶堆。同時(shí)給出了AutoLayout使用上的最佳實(shí)踐,幫助開發(fā)者編寫一個(gè)高性能的布局斥杜。
4虱颗、優(yōu)化 App Assets Optimizing App Assets
在一個(gè)iOS app中,資源文件也是及其重要的一部分蔗喂。如何在應(yīng)用中通過使用assets達(dá)到最好的視覺效果和最高效的使用視圖資源忘渔,也是每個(gè)開發(fā)者應(yīng)該關(guān)注的部分。
文章概述了iOS12針對(duì)資源文件產(chǎn)出的新特性缰儿。介紹了如何使用asset catalog來最優(yōu)化的組織畦粮、優(yōu)化、制作視圖資源乖阵,如何更好的簡化設(shè)計(jì)和開發(fā)人員之間工作流程。通過使用視圖asset,可以提高應(yīng)用的交付質(zhì)量夜郁,占用更小的空間沉噩,受益到更多的用戶。
5对蒲、使用Xcode做更快的構(gòu)建 Building Faster in Xcode
除了iOS12運(yùn)行上的性能提升钩蚊,蘋果還在最新發(fā)布的Xcode10上對(duì)構(gòu)建速度與開發(fā)效率進(jìn)行了優(yōu)化贡翘。
文章講述了Xcode 10與提高構(gòu)建速度和開發(fā)效率相關(guān)的新特性,從工具两疚、環(huán)境床估、代碼以及語言語法等多個(gè)方面介紹了加快構(gòu)建速度的細(xì)節(jié)。通過了解Xcode在構(gòu)建速度上的優(yōu)化原理诱渤,開發(fā)者可以更好更高效地進(jìn)行日常開發(fā)工作丐巫。
Swift
Swift從誕生以來就是每年WWDC備受關(guān)注的焦點(diǎn)之一。越來越多的開發(fā)者和企業(yè)開始轉(zhuǎn)向于使用Swift進(jìn)行開發(fā)勺美,Swift相關(guān)的課程也越來越受到包括字節(jié)跳動(dòng)的工程師們?cè)趦?nèi)的開發(fā)者的重視递胧。
Swift 4.2革新 What's new in Swift
WWDC2018發(fā)布了Swift 4.2版本。主打兩方面的更新:一是關(guān)注提升開發(fā)人員生產(chǎn)力赡茸,開發(fā)者可以看到項(xiàng)目構(gòu)建速度的提升和利于開發(fā)的語言改進(jìn)缎脾;二是在二進(jìn)制兼容性方面進(jìn)行了大量的努力。
文章介紹了Swift 4.2在這兩方面的革新占卧,同時(shí)對(duì)部分改進(jìn)細(xì)節(jié)進(jìn)行了原理剖析遗菠。
泛型設(shè)計(jì)對(duì)于Swift語言來說是一個(gè)很重要的特性,能夠既保持靜態(tài)類型的特點(diǎn)又能夠達(dá)到代碼重用的目的华蜒。
文章主要探討了Swift泛型特性設(shè)計(jì)上的思考和新特性的應(yīng)用方法辙纬,幫助開發(fā)者更好的理解和使用泛型這一特性。
了解Swift Package Manager Getting to Know Swift Package Manager
包管理一直軟件開發(fā)和管理中重要的一環(huán)叭喜。Swift Package Manager是Apple官方提供的軟件包管理器贺拣。
文章深入介紹了Swift Package Manager的優(yōu)勢(shì)、基本概念和常用用法捂蕴,記憶它的架構(gòu)和設(shè)計(jì)思想譬涡。同時(shí)闡述了為什么Swift Package Manager是一個(gè)安全、高效而且使用簡單的軟件包管理器啥辨。
創(chuàng)建屬于你自己的 Swift Playgrounds 訂閱 Create Your Own Swift Playgrounds Subscriptio
蘋果推崇人人都能使用Swift編程涡匀,在Swift的教育方向上做出了持續(xù)的努力。Swift Playgrouds就是為此誕生的一款革命性的iPad應(yīng)用溉知。
文章介紹了如何利用WWDC2018中新推出的模板工具制作出屬于自己的 Playground Book 以及如何托管自己的訂閱源并分享給他人渊跋。
AR
今年的WWDC發(fā)布會(huì)上,ARKit的更新作為iOS12的一大亮點(diǎn)被隆重介紹着倾。
ARKit2 革新 What’s New in ARKit 2
ARKit 2是本次WWDC重點(diǎn)推出的更新拾酝,它使得開發(fā)生動(dòng)的AR體驗(yàn)的程序變得更容易,并提供了全新的方式與真實(shí)世界進(jìn)行交互卡者。
文章主要講述了ARKit 2的新特性蒿囤。ARKit 2開始支持多臺(tái)iOS設(shè)備同時(shí)查看同一AR場(chǎng)景或享受多人AR游戲,及提供2D圖像和3D物體的檢測(cè)與跟蹤等新能力崇决。
AR Quick Look 概覽 AR Quick Look
AR Quick Look 是iOS12推出的在AR場(chǎng)景中快速展示3D模型的新技術(shù)材诽,使用便捷底挫。
文章主要介紹了預(yù)覽頁QLPreviewController的使用以及新型的3D模型文件格式.usdz,并且介紹了官方對(duì)于創(chuàng)建并優(yōu)化3D模型的建議脸侥。開發(fā)者可以使用Xcode10自帶的usdz Converter工具建邓,輕易地將現(xiàn)有的3D模型資源打包成.usdz文件,集成到App或者Html中睁枕,快速預(yù)覽AR場(chǎng)景中的3D效果官边。
最佳實(shí)踐
WWDC中,除了對(duì)iOS12新特性的介紹外遇,還有不少課程為開發(fā)者提供各iOS版本通用的原理和最佳實(shí)踐的講解注簿,指導(dǎo)開發(fā)者提升代碼穩(wěn)定性、優(yōu)化性能跳仿。
高效使用集合 Using Collections Effectively
集合是日常開發(fā)中頻繁接觸的對(duì)象诡渴,理解集合、使用好集合也是每個(gè)iOS開發(fā)工程師必備的技能菲语。
文章介紹了和集合相關(guān)的概念, 用法, 以及一些性能上的注意點(diǎn), 從而指導(dǎo)開發(fā)者高效, 安全, 優(yōu)雅的使用集合妄辩。
深入解析iOS內(nèi)存 iOS Memory Deep Dive
內(nèi)存是有限且系統(tǒng)共享的資源。對(duì)內(nèi)存不合理的使用很有可能會(huì)引發(fā)OOM等嚴(yán)重問題山上。
文章介紹了虛擬內(nèi)存分配機(jī)制以及開發(fā)者需要控制的內(nèi)存占用部分眼耀,并推薦了通過命令行工具分析記錄內(nèi)存信息memgraph文件的調(diào)試方式。此外胶哲,蘋果工程師也在此給出了一些不同場(chǎng)景下如何合理使用內(nèi)存的建議畔塔。
圖像最佳實(shí)踐 Image and Graphics Best Practices
在日常app開發(fā)中潭辈,圖片處理是開發(fā)者們經(jīng)常遇到的挑戰(zhàn)鸯屿。如何讓圖片展示更快、占用內(nèi)存更少把敢?
文章重點(diǎn)關(guān)注iOS系統(tǒng)如何處理圖片寄摆,包括UIImage,UIImageView修赞,custom drawing in UIKit婶恼,advanced CPU and GPU techniques四部分,旨在幫助app提高性能柏副,減少內(nèi)存占用勾邦。
測(cè)量和優(yōu)化HLS性能 Measuring and Optimizing HLS Performance
HTTP Live Streaming是蘋果推出的流媒體網(wǎng)絡(luò)傳輸協(xié)議。
文章通過對(duì)流媒體直播回放過程的解刨割择,講述如何準(zhǔn)確測(cè)量HLS流媒體性能眷篇,定位和優(yōu)化HLS性能瓶頸以及如何正確使用Master Playlists來提升用戶觀看體驗(yàn)。
Web安全策略 Strategies for Securing Web Content
帳號(hào)登錄
web是app中經(jīng)常使用的荔泳,也是很容易受到安全攻擊部分蕉饼,它遠(yuǎn)遠(yuǎn)沒有大家想象的安全虐杯。本文列出了常見的三種攻擊手段:跨域攻擊、預(yù)測(cè)執(zhí)行攻擊昧港、窗口控制攻擊擎椰,尤其是預(yù)測(cè)執(zhí)行攻擊,對(duì)于大家常用的UIWebView來說是根本無法防御的创肥。本文總結(jié)了以往的安全防御手段达舒,并介紹了新推出的Cross-Origin-Resource-Policy 和 Cross-Origin-Window-Policy,針對(duì)這三種攻擊手段瓤的,給出了全面的防御手段休弃。