iOS 開發:SiriKit 應用入門

Bomi Chen
AppWorks School
Published in
5 min readSep 1, 2017

--

眾皆所知 ,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 官方支援 Domains

很可惜的是,語音助理目前只支援上述領域的功能,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 說: “ LineEther 今天過得好嗎?”,Siri 對這句話的解析結果如下:

  1. :觸發 Siri MessageIntent,不得做客製化更改,如果是 PayBillIntent 可能會是付款,掃 QRCode 的掃 … 之類的。
  2. Line : App Name
  3. Ether : 在 MessageIntent 中的對象、接收者
  4. 今天過得好嗎 : 訊息內容

Line 這兩個關建字都是固定不得作更改的,而 Ether今天過得好嗎?分別是接收者與訊息內容,是可以客製化的,在 Apple 官方影片也提到 Pronuciation 也可以客製化,可依照地區給予不同的內容。

了解了上述兩點,其實就已經抓住處理 Siri 訊息的要點,再來看看實作範例影片吧:

SiriKit 教學影片

希望這篇文章和影片有幫助新手入門 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 喔)

--

--