Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SiriKit
Search
Sing Jie Lee
July 22, 2016
Technology
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SiriKit
Sing Jie Lee
July 22, 2016
More Decks by Sing Jie Lee
See All by Sing Jie Lee
Infocomm Media Youth Festival 2016 - Career Talk
singjie
0
62
Sprite Kit
singjie
0
65
React Native
singjie
1
94
Arduino
singjie
0
48
Software Engineering
singjie
0
63
Advanced Core Data
singjie
0
47
Amazon Echo and Home Integration
singjie
0
110
CS3216 Garena Project X
singjie
0
59
Life
singjie
0
46
Other Decks in Technology
See All in Technology
Benchmarking Vector Databases: pgvector vs. LanceDB
tsho
0
150
Bet AI Day 2026丨バクラク Autopilot、業務システムの再設計
layerx
PRO
2
1.6k
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
280
[DroidKaigi 2026] Making UI specifications visible: Android UI development in the AI agent era supported by Compose Screenshot Testing and galleries
syarihu
0
610
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
150
enechainの内製セルフサービスプラットフォーム
hiyosi
0
140
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
140
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
560
「図書館」という名前のままでいいのか -Code4Lib JAPANカンファレンス2026 アンカンファレンス報告- / Code4Lib JAPAN Conference 2026: Unconference Report
ykiyota
0
110
AI活用の現在地、 ちゃんと見えてますか?/XPfest-2026
visional_engineering_and_design
0
170
synctest時代のhttptest Go 1.27で変わるHTTPサーバテストの裏側 / go conference2026 synctest and httptest
budougumi0617
1
230
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
280
Featured
See All Featured
A better future with KSS
kneath
240
18k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
The browser strikes back
jonoalderson
0
1.6k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
The Pragmatic Product Professional
lauravandoore
37
7.4k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
Designing for Timeless Needs
cassininazir
1
470
Faster Mobile Websites
deanohume
310
32k
Deep Space Network (abreviated)
tonyrice
0
290
Tell your own story through comics
letsgokoyo
1
1.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
The Cult of Friendly URLs
andyhume
79
7k
Transcript
SIRIKIT lee sing jie
SIRI 2011
SIRI • Interact with Apple's apps - Maps, Phone •
Launch 3rd party apps
SIRIKIT 2016
None
“Send payment using AirPay” “To whom?” “Vincent” “How much?” “$100”
“Send $10 to Vincent using AirPay”
“Please do me a favour and send $10 to Vincent
by launching the AirPay app”
“Hey Siri, please do me a favour and send my
precious earned $10 by launching the AirPay app”
“Hey Siri, please do me a favour and send my
precious earned $10 by launching the AirPay app” “To whom?” “Vincent”
SIRIKIT WORKS IN DOMAINS
Messaging VOIP calling Payments Workouts Ride booking Photo search DOMAINS
Messaging VOIP calling Payments Workouts Ride booking Photo search DOMAINS
ONLY
“Buy iPhone case on Shopee”
“Buy iPhone case on Shopee”
SIRIKIT Intents Intents UI App
SIRIKIT Intents Intents UI App
SIRIKIT Intents
SIRIKIT Intents Resolve Resolve Resolve
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve Confirm
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve Confirm Handle
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve Confirm Handle
RESOLVE Communicate with user Determine the values needed Provide response
“Send $10 to Vincent using AirPay”
RESOLVE Payee “Send $10 to Vincent using AirPay” Amount
needsValue RESOLVE PAYEE
confirmationRequired(with:) RESOLVE PAYEE
disambiguation(with:) RESOLVE PAYEE
unsupported RESOLVE PAYEE
needMoreDetails(with:) RESOLVE PAYEE
needMoreDetails(with:) RESOLVE PAYEE HUH?
needsMoreDetails(with:) RESOLVE PAYEE
notRequired RESOLVE PAYEE
RESOLVE PAYEE success(with:)
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve Confirm Handle
CONFIRM Overall impression Check details
SIRIKIT Intents Resolve Resolve Resolve Resolve Resolve Resolve Resolve Resolve
Resolve Resolve Confirm Handle
HANDLE Perform the requested action
IMPLEMENTATION
Messaging VOIP calling Payments Workouts Ride booking Photo search DOMAINS
INSearchForMessagesIntent.h INSendMessageIntent.h INSetMessageAttributeIntent.h Ride INGetRideStatusIntent.h INListRideOptionsIntent.h INRequestRideIntent.h Payment INRequestPaymentIntent.h INSendPaymentIntent.h
VOIP INSearchCallHistoryIntent.h INStartAudioCallIntent.h INStartVideoCallIntent.h Messaging INSearchForPhotosIntent.h INStartPhotoPlaybackIntent.h Photos Workout INCancelWorkoutIntent.h INEndWorkoutIntent.h INPauseWorkoutIntent.h INResumeWorkoutIntent.h INStartWorkoutIntent.h
INSearchForMessagesIntent.h INSendMessageIntent.h INSetMessageAttributeIntent.h Ride INGetRideStatusIntent.h INListRideOptionsIntent.h INRequestRideIntent.h Payment INRequestPaymentIntent.h INSendPaymentIntent.h
VOIP INSearchCallHistoryIntent.h INStartAudioCallIntent.h INStartVideoCallIntent.h Messaging INSearchForPhotosIntent.h INStartPhotoPlaybackIntent.h Photos Workout INCancelWorkoutIntent.h INEndWorkoutIntent.h INPauseWorkoutIntent.h INResumeWorkoutIntent.h INStartWorkoutIntent.h
@interface INSendMessageIntent : INIntent - (instancetype)initWithRecipients:(nullable NSArray<INPerson *> *)recipients content:(nullable
NSString *)content groupName:(nullable NSString *)groupName serviceName:(nullable NSString *)serviceName sender:(nullable INPerson *)sender; // Contacts to whom the message should be sent. @property (readonly, copy, nonatomic) NSArray<INPerson *> *recipients; // Body text of the message. @property (readonly, copy, nonatomic) NSString *content; @property (readonly, copy, nonatomic) NSString *groupName; // Specified service for the message. @property (readonly, copy, nonatomic) NSString *serviceName; // The person, or account, sending the message. @property (readonly, copy, nonatomic) INPerson *sender; @end INSendMessageIntent.h
protocol INSendMessageIntentHandling <NSObject> @required - (void)handleSendMessage:(INSendMessageIntent *)intent completion:(void (^)(INSendMessageIntentResponse *response))completion;
@optional - (void)confirmSendMessage:(INSendMessageIntent *)intent completion:(void (^)(INSendMessageIntentResponse *response))completion; - (void)resolveRecipientsForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(NSArray<INPersonResolutionResult *> *resolutionResults))completion; - (void)resolveContentForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(INStringResolutionResult *resolutionResult))completion; - (void)resolveGroupNameForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(INStringResolutionResult *resolutionResult))completion; - (void)resolveServiceNameForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(INStringResolutionResult *resolutionResult))completion; - (void)resolveSenderForSendMessage:(INSendMessageIntent *)intent withCompletion:(void (^)(INPersonResolutionResult *resolutionResult))completion; @end INSendMessageIntentHandling.h
LET'S BUILD
None
“Message Vincent I miss him using BeeTalk.”
“Message Vincent I miss him using BeeTalk.” Domain: Messaging
“Message Vincent I miss him using BeeTalk.” Domain: Messaging Intent:
sendMessage
“Message Vincent I miss him using BeeTalk.” Domain: Messaging Intent:
sendMessage User: Vincent
“Message Vincent I miss him using BeeTalk.” Domain: Messaging Intent:
sendMessage User: Vincent Content: I miss him
“Message Vincent I miss him using BeeTalk.” Domain: Messaging Intent:
sendMessage App: BeeTalk User: Vincent Content: I miss him
DEMO
APP VOCABULARY User-Specific Global Vocabulary Contact names Photo tags Photo
album names Workout names Ride options Workout names
DEMO
LOCALIZATION
DEMO
SIRIKIT Intents Intents UI App
SIRIKIT Intents UI Domains Ride Messaging Payment Workout
NO CONTROL
DEMO
Q&A