JAMES SUGRUE
A SWIFT INTRODUCTION TO IOS 10
@SUGRUE
SIRIKIT
▸ VoIP calling
▸ Messaging
▸ Payments
▸ Photo
▸ CarPlay (automotive vendors only)
▸ Restaurant reservations (requires additional support from
Apple)
DOMAINSSIRIKIT
▸ Workouts
▸ Ride booking
▸ CarPlay(automotive vendors only)
▸ Restaurant reservations 

(requires additional support from Apple)
▸ Data Model
▸ Networking
▸ User Interface
▸ Decision Making Logic
PREPARATIONSIRIKIT
If you are adding SiriKit to an existing app, consider 

Embedded Frameworks
SIRIKIT ADD EXTENSION
SIRIKIT EXTENSIONS
SIRIKIT ENABLING SIRI FOR YOUR APP
▸ NSSiriUsageDescription

key in Info.plist to describe what
your app plans to do with Siri
▸ Call requestSiriAuthorization
to display the alert to user.
SIRIKIT
INTENTS
IntentHandler inherits from INExtension and then specific Intent handlers
SIRIKIT
INTENTS
Declare intents supported by your extension in Info.plist
▸ Each Intent that you support will need to be listed in
IntentsSupported
▸ Use IntentsRestrictedWhileLocked to prevent
access to features when the phone is locked
SIRIKIT RESOLVE, CONFIRM, HANDLE
SIRIKIT RESOLVE, CONFIRM, HANDLE
SIRIKIT MAPS
MAPS
APPS
IMESSAGE
IMESSAGE
APP STORE
IMESSAGE STANDALONE APPS
IMESSAGE EXTENDING EXISTING APPS
IMESSAGE
CUSTOM INTERFACE
IMESSAGE CUSTOM INTERFACE
MSMessagesAppViewController inherits from UIViewController
Track messages with didReceive, didStartSending, didCancelSending
IMESSAGE CUSTOM INTERFACE
STICKERS
IMESSAGE
IMESSAGE APP STORE
IMESSAGE STICKER PACK
IMESSAGE STICKER PACK
IMESSAGE STICKER PACK
IMESSAGE STICKER PACK
“LINE SOLD $268
MILLION WORTH
OF STICKERS
LAST YEAR AMID
ASIA’S
MESSAGING
BOOM”
ANIMATIONS
ANIMATIONS
▸ UIViewPropertyAnimator

create reusable animations and trigger when required
▸ Animate changes to views and dynamically modify your
animations before they finish
ANIMATIONS DEMO
USER
NOTIFICATIONS
NOTIFICATION SERVICENOTIFICATIONS
SPEECH
RECOGNITION
▸ Import Speech Framework
▸ SFSpeechRecognizer 

handles recognition in a specific locale
▸ SFSpeechAudioBufferRecognitionRequest 

provides audio input to the recogniser
▸ SFSpeechRecognitionTask 

provides result of the request, allows cancelling task
▸ AVAudioEngine

provides audio input
REQUIRED PARTSSPEECH RECOGNITION
USER
PERMISSION
REQUIRED!
TheApp
SPEECH RECOGNITION
LIMITATIONS
▸ “Devices are limited by the number of recognitions that can
be performed in one day”
▸ “Individual apps may be throttled globally”
▸ “Speech recognition can place a relatively high burden on
battery life and network usage”
▸ “Utterance audio duration is limited to about one minute,
which is similar to the limit for keyboard-related dictation”
https://developer.apple.com/reference/speech

SWIFT 3.0
SWIFT 3.0 CHANGES
▸ Access control changes

private, fileprivate, public and open
▸ Verbs & Nouns

myArray.sort() //returns sorted version the
▸ User Interface
▸ Decision Making Logic
JAMES SUGRUE
A SWIFT INTRODUCTION TO IOS 10
@SUGRUE

A Swift Introduction to iOS 10