WWDC2018觀看筆記二:iOS12 新特性(WWDC2018)

網上搜了很多相關的文章,都是簡述,不符合自己的要求;更氣人的是花了9.9元,看了某人的一篇不疼不癢的WWDC2018新特性。所以最後下定決心看了個人覺得對開發者有幫助的三個session,以及一些開發者需要關注的改動。

1、性能提升

(1)速度提升

    應用啓動速度提升40%

    鍵盤響應速度提升50%

    相機啓動速度提升70%

iOS12 和 iOS11 的真機性能對比視頻:https://v.qq.com/x/page/o0681...

(2)Auto Layout

在iOS12中對自動佈局進行了很大的優化,如圖1.1,是官方測試後得到的 iOS 12 和 iOS 11 在特定場景下時間開銷的對比圖。可以明顯的看到 iOS 12 具有很大的優勢。同時,ken Ferry演講的session中有很多幹貨WWDC2018觀看筆記:Auto Layout

clipboard.png

2、功能迭代

(1)UIWebView棄用

在iOS12 中,UIWebView不在被使用,如圖2.1所示。

clipboard.png

爲什麼?

原因就是:iOS平臺跨域訪問漏洞,而造成平臺跨域訪問漏洞的罪魁禍首就是 UIWebView。

clipboard.png

(2)libstdc++廢棄

C++ 標準庫libstdc++相關的3個庫(libstdc++、libstdc++.6、libstdc++6.0.9 )廢棄,使用libc++代替

爲什麼?

蘋果的解釋是libstdc++已經標記爲廢棄有5年了,建議大家使用經過了llvm優化過並且全面支持C++11的libc++庫。

(3)userNotifications

在iOS12中通知提供了以下五方面的新特性:

  • Grouped notifications :推送分組
  • Notification content extensions: 推送內容擴展中的可交互和動態更改Action
  • Notification management :推送消息的管理
  • Provisional authorization: 臨時授權
  • Critical alerts :重要提醒

1)Grouped notifications

在iOS12中, 通知分組使用兩種分組方式:自動分組(Automatic grouping)和線程標識(Thread identifier).

自動分組不需要做額外的操作,系統會根據App的bundle id對推送進行分組。如果需要對通知做更細緻的分組就需要用線程標識, 也就是下面的threadIdentifier.

如圖2.2所示:

clipboard.png

代碼和實現效果,如圖2.3所示:

clipboard.png

clipboard.png

同時,在iOS12系統的手機中,可通過 setting -應用 - Notifications - Notification Grouping來設置通知的分組模式。如圖2.3所示。注意:只有設爲 Automatic時,設置Thread identifier屬性纔有效。
同時,iOS12 支持Summary 定製。當蘋果自動將推送消息的歸攏到一起的時候,最下邊會有一個消息摘要。默認格式是:n more notifications from xxx。如圖2.4所示

clipboard.png

修改方式: 設置categorySummaryFormat, 會顯示summaryFormat, 使用帶categorySummaryFormat的init方法,如圖2.5所示:

clipboard.png

數字定製

有時會出現另一個場景:比如發送了2條推送消息,一條是“你有3個邀請函”,另一條是“你有5個邀請函”。那摘要則會顯示你有2更多消息,我們想要的肯定是"你有8個邀請函"。那這種效果怎麼顯示呢?(summaryArgumentCount)

2)推送內容更改Action

  • 配置Notification Content Extention的UUNNotificationExtensionUserInteractionEnabled爲YES。
  • 通過File-New-Target中的 Notification Content Extension 來創建NotificationViewController。

3)增加推送消息管理

展現管理界面:通知消息左滑 或者 進入詳情中右上角的,管理界面如圖2.7所示:

Deliver Quietly 控制會不會播放聲音;Turn Off 關閉推送;

clipboard.png

4)Provisional Authorization

通知會出現在通知中心並在應用圖標上出現標記,但不會顯示在鎖定屏幕上,不會顯示橫幅,也不會播放聲音,之後可以選擇正常推送還是關閉,在申請權限的時候,加上provisional即可

5)Critical Alerts

無視勿擾模式和鈴聲開關的限制,收到這類通知時會伴隨一個系統或App設定的提示音 需要獲得授權。在申請權限的時候,加上criticalAlert。

(4) shortcuts

iOS12 提供了語音助手的快捷短語的開發,可以通過自定義一個短語,通過Siri來喚起特定的功能。

Shortcuts APIS

clipboard.png

1)NSUserActivity的使用

  • 首先,在Info.plist中聲明NSUserActivityTypes

clipboard.png

  • 然後,生成對應的NSUserActivity

clipboard.png

  • 最後,用戶點擊shortCut 的 處理入口

clipboard.png

2)自定義Intents

通過Intent實現的shortcut是不啓動APP不通過交互行爲即可以直接運行的功能,並且可以對運行的結果給出響應反饋。在工程中新建一個SiriKit Intent Definition File,點擊‘+’新建一個自定義的Intent,然後添加參數。之後在Shortcut Type中添加需要用的參數,並且定義在shortcut中的顯示內容

編輯器會通過這個文件自動生成對應的INIntent類

clipboard.png

clipboard.png
處理入口和NSUserActivity相同。

參考視頻和文檔:

https://developer.apple.com/v...

https://developer.apple.com/v...

https://developer.apple.com/v...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章