iOS 開發:SiriKit 應用入門
眾皆所知 ,Siri 是來自 Apple 產品內提供的虛擬助理服務,像是網路聊天機器人,你跟它說話它會回應你,只要按壓 Home Button 說說話,住在手機裡的 Siri 能幫你達到你的需求。
貼心的 Apple 也在官方網站提供了許多 Siri 教學,而由於它是看裝置設定的地區語言,使用不同的能觸發 Siri 句子,下面的網站是官方提供的 “Siri 台灣區教學”,大家可以試試看 Siri 有多麽的方便使用
→ 🖐🏻 https://www.apple.com/tw/ios/siri/ 🖐🏻 ←
簡單介紹完 Siri,接著介紹今天的主角 SiriKit,登愣!
在 Apple 提供的支援項目中,有下列這幾種領域(Domains)可以 import 到專案開發內,SiriKit 就是讓你的 App 能使用 Siri 的好用工具包
很可惜的是,語音助理目前只支援上述領域的功能,Apple 在 iOS 10 之後官方才提供 SiriKit 給開發者做開發使用,大家可以打開手機來看看有哪幾個 App 支援(設定 → Siri → App Support),現在採用 SiriKit 的 App 其實也不多,整體還未成熟,不過以速度來看這些領域,其實已經算支援蠻廣的了,在 2017 WWDC SiriKit 影片中 ,也提及會陸續開放其他領域給不同的 App 做使用。
Siri 的基本介紹到這邊,接著我們工程師就是要來實作拉~在文章下方我有錄製一段實作的影片教學,影片中主要針對 Messaging 領域,內容包含:在專案裡採用 SiriKit、處理 Siri 資訊的傳入、製作 Siri UI 畫面、連結到傳入訊息給 App 的生命週期,依照影片的步驟就能輕鬆上手 Siri。
在實作之前需要先跟大家補充一些知識,讓各位快速了解 SiriKit 運作:
首先,要介紹的是 Intent/IntentUI,在專案採用 Intents Extension (for SiriKit) 後,Xcode 會幫你自動加入 Intent & IntentUI。
♦︎ Intent : Siri 處理使用者資訊的地方
順序為 Resolve -> Confirm -> Handle
Resolve : 解析傳入資訊
Confirm : 確認需求
Handle : 完成之後動作
♦︎ IntentUI : Siri 呈現給使用者的畫面
與一般 App 畫面一樣,有個 ViewController 與 Storyboard,差別是在於不
能互動,Button 點擊、ScrollView 滑動都不會有反應
第二,在 Siri 解析內容時,通常關鍵字是已設定的幾組,不管是接收來自使用者的訊息,或者是回應的訊息,所以目前只用於一些常見、反覆的服務需求,能做 Customize 的地方在於資訊內容,不在於觸發 Siri 這個動作。
舉例來說,使用者向 Siri 說: “傳 Line 給 Ether 今天過得好嗎?”,Siri 對這句話的解析結果如下:
- 傳:觸發 Siri MessageIntent,不得做客製化更改,如果是 PayBillIntent 可能會是付款,掃 QRCode 的掃 … 之類的。
- Line : App Name
- Ether : 在 MessageIntent 中的對象、接收者
- 今天過得好嗎 : 訊息內容
傳、Line 這兩個關建字都是固定不得作更改的,而 Ether、今天過得好嗎?分別是接收者與訊息內容,是可以客製化的,在 Apple 官方影片也提到 Pronuciation 也可以客製化,可依照地區給予不同的內容。
了解了上述兩點,其實就已經抓住處理 Siri 訊息的要點,再來看看實作範例影片吧:
希望這篇文章和影片有幫助新手入門 SiriKit,這裡是相關參考資料:
https://developer.apple.com/sirikit/
https://developer.apple.com/videos/play/wwdc2016/217/
https://developer.apple.com/videos/play/wwdc2016/225/
https://developer.apple.com/videos/play/wwdc2017/214/
如果有同好也在玩 SiriKit,歡迎留言與我討論交流喔!
【AppWorks School 新班 — Android Class #1 與 iOS Class #6 限時招生中】
遠距 4 週、駐點集訓 16 週,全程免費,幫助你成為新時代的軟體工程師。
Android Class #1 >> https://goo.gl/Efi23t
iOS Class #6 >> https://goo.gl/Xz27kK
歡迎申請加入,來讓我們幫助你加速學習!(申請只到 01/07/2018 喔)