Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
SiriKit
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
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
66
React Native
singjie
1
100
Arduino
singjie
0
48
Software Engineering
singjie
0
63
Advanced Core Data
singjie
0
48
Amazon Echo and Home Integration
singjie
0
120
CS3216 Garena Project X
singjie
0
59
Life
singjie
0
47
Other Decks in Technology
See All in Technology
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
330
QA4AI 2026-Oct 生成AI時代の品質保証
tokuty
1
860
Claude の新機能を、 出た日に触って社内に届けるまで
rfdnxbro
1
170
10年後、Engineering 行為を剥奪されるとして、わたしたちは、どう、何を創ればいいだろうか。 / If Engineering Is Taken Away in 10 Years, How and What Should We Create?
bitkey
PRO
1
190
USB PDを使ってスマホを労わりたい
raspython3
0
180
WasmをRustにする
sansantech
PRO
0
250
Local CI × GitHub Actions
gogutan
2
190
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
170
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
1
190
Temporal 最高!でも改めて「日付」について調べたら人類の負債すぎる件
riyaamemiya
0
140
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
DGX Spark でどこまでハッキングができるのか?
kash1064
3
1.3k
Featured
See All Featured
Evolving SEO for Evolving Search Engines
ryanjones
0
330
Making Projects Easy
brettharned
120
6.8k
What the history of the web can teach us about the future of AI
inesmontani
PRO
2
740
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
2
2.2k
The Cult of Friendly URLs
andyhume
79
7k
Done Done
chrislema
187
17k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
800
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
BBQ
matthewcrist
90
10k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
1k
Building Adaptive Systems
keathley
44
3.2k
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