SlideShare a Scribd company logo
1 of 40
Download to read offline
Tom Soderling
Senior Mobile Developer
Zebra Technologies
@tomsoderling
1. Reasons for Apple Watch
2. Day to Day Experience
3. Cool Features
4. New Types of User Interactions
5. Overview of UI Elements
6. Anatomy of a Watch Kit Solution
7. Application Lifecycle
8. Your First Watch App
9. Working with the Parent App
10. Cautionary Tales
11. Answers to Common Questions
12. Resources & Links
O U T L I N E
W H Y ?
F I R S T T H I N G S F I R S T
W H A T C A N A P P L E WA T C H D O
T H A T M Y P H O N E C A N ' T ?
W H A T C A N A P P L E WA T C H D O
T H A T M Y P H O N E C A N ' T ?
• Monitor heart rate
1 . R E A S O N S F O R A P P L E WA T C H
1 . R E A S O N S F O R A P P L E WA T C H
1. Smartphone as a brain or hub for connected devices
1 . R E A S O N S F O R A P P L E WA T C H
1. Smartphone as a brain or hub for connected devices
2. Some interactions are way better/easier on the watch
• The temperature outside, next calendar event, prioritization
• General principle. ex: Laptop vs. iPad vs. Phone
1 . R E A S O N S F O R A P P L E WA T C H
1. Smartphone as a brain or hub for connected devices
2. Some interactions are way better/easier on the watch
• The temperature outside, next calendar event, prioritization
• General principle. ex: Laptop vs. iPad vs. Phone
3. Apple’s Reason
“Your phone is ruining your life. Many of us are subject to the
tyranny of the buzz—the constant checking, the long list of
nagging notification. People want that level of engagement, but
how do we provide it in a way that’s a little more human, a little
more in the moment when you’re with somebody?”
http://www.wired.com/2015/04/the-apple-watch/
• Great for texting using Siri
• Not usually brave enough to use when other people are around
• Handsfree Siri is great for creating reminders, setting
timer & conversions when cooking, simple questions
• Great for when I’m working on the car, or want my phone
to be safe/dry
• Handy for controlling music playing through phone or
connected speakers
• Extremely waterproof
• More than sufficient battery life for a day
• Dick Tracy-style phone calls! Speakerphone is especially
good for boring phone conference calls
• Listening to voicemails
2 . D A Y T O D A Y E X P E R I E N C E
Activity
Remote Viewfinder
Quick Contacts
Apple Pay
3 . C O O L F E A T U R E S
Demo
• Suggesting how long someone should use your app
• Lightweight, quick, brief interactions; a few seconds
• 3 New User Interactions
1. Normal interaction (watch app)
2. Glance
3. Notification
4 . N E W T Y P E S O F U S E R I N T E R A C T I O N S
1. Normal Interaction
• Don’t simply port phone app over to watch
• We’ll look at the controls available
4 . N E W T Y P E S O F U S E R I N T E R A C T I O N S
4 . N E W T Y P E S O F U S E R I N T E R A C T I O N S
2. Glance
• Non-actionable, single view of information
• Swipe up from bottom of watch face to view collection
3. Notification
• Actionable
• 2 views: based on interaction, will transition from
Short Look to Long Look
4 . N E W T Y P E S O F U S E R I N T E R A C T I O N S
Short Look Long Look
Short Look Short Look
Demo
WatchKitCatalog sample app by Xamarin
5 . O V E R V I E W O F U I E L E M E N T S
• Important note: Currently, Apple Watch is just an external
display for a program running on a connected iPhone
• The ability for apps to run on the Apple Watch itself will be
possible in WatchOS 2, released in fall of 2015
• Also, ability to access sensor data (heart rate,
accelerometer), use the taptic engine, digital crown,
speaker, mic. 3rd party watch complications
• Watch apps are made possible through use of the new iOS
8 Extensions
6 . A N A T O M Y O F A WA T C H K I T S O L U T I O N
• Extension Points
6 . A N A T O M Y O F A WA T C H K I T S O L U T I O N
Today Share Edit Photo Watch App
6 . A N A T O M Y O F A WA T C H K I T S O L U T I O N
• How they all work together
6 . A N A T O M Y O F A WA T C H K I T S O L U T I O N
• App Communication
1.
7 . A P P L I C A T I O N L I F E C Y C L E
The lifecycle of a
WKInterfaceController object
1. Awake()
2. WillActivate()
3. DidDeactivate()
1
2
3
• Don’t forget to add new device to member center!
• Think about Provisioning ahead of time
• 3 different App/Bundle IDs (same prefix)
1. com.something.MyPhoneApp
2. com.something.WatchKitApp
3. com.something.WatchKitExtension
• 2 Provisioning options:
1. Single Wildcard App ID - “com.something.*”
• Fewer Application Services: no App Groups, Push Notifications, HomeKit
2. Three Explicit App IDs
8 . Y O U R F I R S T WA T C H A P P
• Time for Add > New Project!
8 . Y O U R F I R S T WA T C H A P P
• Choose project and UI Interactions (scenes)
8 . Y O U R F I R S T WA T C H A P P
• This will add 2 new projects to your solution
8 . Y O U R F I R S T WA T C H A P P
• Project Reference Chain
8 . Y O U R F I R S T WA T C H A P P
iOS App
WatchKit App
Extension
• Bundle/App ID Linking
8 . Y O U R F I R S T WA T C H A P P
iOS App
WatchKit App
Extension
• Bundle/App ID Linking
8 . Y O U R F I R S T WA T C H A P P
iOS App
WatchKit App
Extension
• Bundle/App ID Linking
8 . Y O U R F I R S T WA T C H A P P
iOS App
WatchKit App
Extension
• The main storyboard is in the WatchKit App project
8 . Y O U R F I R S T WA T C H A P P
• Interfaces in the Watch App storyboard
1. Normal Interaction (App)
2. Glance
3. Notification
8 . Y O U R F I R S T WA T C H A P P
1
2
3
Short Look Long Look
• Interface Controllers
1. Normal Interaction (App)
2. Glance
3. Notification
8 . Y O U R F I R S T WA T C H A P P
Short Look Long Look
1
2
3
Long Look
9 . W O R K I N G W I T H T H E PA R E N T A P P
Demo
How Deep Is It?
Long Look
9 . W O R K I N G W I T H T H E PA R E N T A P P
• 3 Options
1. Run Code on iPhone
• Call WKInterfaceController.OpenParentApplication()
in the watch app extension
• Implement the HandleWatchKitExtensionRequest()
method in the iOS AppDelegate
• Opens the iPhone app in the background
9 . W O R K I N G W I T H T H E PA R E N T A P P
Short Look Long Look
• 3 Options
2. Shared Storage with App Groups
• Allows iOS 8 extensions to share data with parent app.
• App Groups are set up in the Apple Developer
Member Center, under the IDs section
• You can stash you watch app settings values, or files
• Doesn’t open iPhone app in the background
9 . W O R K I N G W I T H T H E PA R E N T A P P
• 3 Options
3. Message Passing
• Darwin Notification Center allows for communication
between iOS apps and extensions
• API of the Core Foundation framework
• WormHoleSharp supports these notifications
• C# port of open source project MMWormHole
• Allows you to listen for and subscribe to these
messages
wormHole.PassMessage("ButtonMessage",	
  new	
  ButtonMessage{	
  Id	
  =	
  	
  1	
  });	
  
wormHole.ListenForMessage<ButtonMessage>("ButtonMessage",	
  (message)	
  =>	
  {	
  …	
  }	
  
9 . W O R K I N G W I T H T H E PA R E N T A P P
Some Errors I Tripped Over
Error: AMDeviceSecureInstallApplicationBundle returned: 0xe8003ffe
Answer: TBD
Error: "Failed to install" "Invalid Bundle - No Apple Watch Binary”
Answer: Just reboot the watch!
Error: The Watch App 'WatchApp' does not have a valid
UIDeviceFamily value. Expected 'Watch (4)' found 'IPhone, Watch (5)'.
Answer: Clean and re-build solution
1 0 . C A U T I O N A RY TA L E S
Q: I want make sure that notifications for my current iOS app
appear on the Apple Watch, what do I have to do?
A: Nothing - provided your app supports notifications. If your
phone is set to receive that notification, you can choose to
mirror it on your Watch via its notification settings.
Q: Can I build a stand alone Watch App?
A: No. A WatchKit app requires an existing iOS app
1 1 . A N S W E R S T O C O M M O N Q U E S T I O N S
Great Article on Apple Watch
http://www.wired.com/2015/04/the-apple-watch/
Watch Kit: Getting Started
http://developer.xamarin.com/guides/ios/watch/
Xamarin Sample Watch Kit Apps
https://developer.xamarin.com/samples/ios/Watch/
WatchOS 2 video:
https://developer.apple.com/videos/wwdc/2015/?id=105
Passing messages w/ WormHoleSharp
https://github.com/Clancey/WormHoleSharp
Apple Watch HIG
https://developer.apple.com/watch/human-interface-guidelines/
Bezel
http://infinitapps.com/bezel/
1 2 . R E S O U R C E S & L I N K S

More Related Content

What's hot

Withings activity pop
Withings activity popWithings activity pop
Withings activity popGEEKYWIK
 
I Watch Presentation
I Watch PresentationI Watch Presentation
I Watch Presentationbharat rawal
 
Apple Watch - Getting Started
Apple Watch - Getting StartedApple Watch - Getting Started
Apple Watch - Getting Startedintive
 
Why Apple Watch Matters
Why Apple Watch MattersWhy Apple Watch Matters
Why Apple Watch MattersDoug Robinson
 
I WATCH DOCUMENTATION
I WATCH DOCUMENTATIONI WATCH DOCUMENTATION
I WATCH DOCUMENTATIONAnurag Reddy
 
How Apple Watch Will Change Human Behavior in 2015
How Apple Watch Will Change Human Behavior in 2015How Apple Watch Will Change Human Behavior in 2015
How Apple Watch Will Change Human Behavior in 2015IsobarUS
 
Apple i watch
Apple i watch Apple i watch
Apple i watch yks123antm
 
Smart Watches - Changes in User Behaviour and Popular Use Cases
Smart Watches - Changes in User Behaviour and Popular Use CasesSmart Watches - Changes in User Behaviour and Popular Use Cases
Smart Watches - Changes in User Behaviour and Popular Use CasesLuke Szkudlarek
 
Smart watch
Smart watchSmart watch
Smart watchSHEEMA90
 
Apple watch a latest technology
Apple watch  a latest technologyApple watch  a latest technology
Apple watch a latest technologySikander Nazir
 
Introducing Apple Watch
Introducing Apple WatchIntroducing Apple Watch
Introducing Apple WatchJJ Wu
 

What's hot (13)

Withings activity pop
Withings activity popWithings activity pop
Withings activity pop
 
I Watch Presentation
I Watch PresentationI Watch Presentation
I Watch Presentation
 
Apple Watch - Getting Started
Apple Watch - Getting StartedApple Watch - Getting Started
Apple Watch - Getting Started
 
Why Apple Watch Matters
Why Apple Watch MattersWhy Apple Watch Matters
Why Apple Watch Matters
 
I WATCH DOCUMENTATION
I WATCH DOCUMENTATIONI WATCH DOCUMENTATION
I WATCH DOCUMENTATION
 
How Apple Watch Will Change Human Behavior in 2015
How Apple Watch Will Change Human Behavior in 2015How Apple Watch Will Change Human Behavior in 2015
How Apple Watch Will Change Human Behavior in 2015
 
Apple i watch
Apple i watch Apple i watch
Apple i watch
 
Control
Control Control
Control
 
Smart Watches - Changes in User Behaviour and Popular Use Cases
Smart Watches - Changes in User Behaviour and Popular Use CasesSmart Watches - Changes in User Behaviour and Popular Use Cases
Smart Watches - Changes in User Behaviour and Popular Use Cases
 
Apple Watch
Apple WatchApple Watch
Apple Watch
 
Smart watch
Smart watchSmart watch
Smart watch
 
Apple watch a latest technology
Apple watch  a latest technologyApple watch  a latest technology
Apple watch a latest technology
 
Introducing Apple Watch
Introducing Apple WatchIntroducing Apple Watch
Introducing Apple Watch
 

Similar to Apple Watch Development with Xamarin Watch Kit

Mobile App PPT_Updated
Mobile App PPT_UpdatedMobile App PPT_Updated
Mobile App PPT_UpdatedAmy Reed
 
72 hours usage of the apple watch
72 hours usage of the apple watch72 hours usage of the apple watch
72 hours usage of the apple watchAndreas E. Neuhold
 
Webinar Series - Customer Facing Devices: Putting the Pieces Together
Webinar Series - Customer Facing Devices: Putting the Pieces TogetherWebinar Series - Customer Facing Devices: Putting the Pieces Together
Webinar Series - Customer Facing Devices: Putting the Pieces TogetherMoki
 
Intro to Microinteractions: Foundation of Details that Delight
Intro to Microinteractions: Foundation of Details that DelightIntro to Microinteractions: Foundation of Details that Delight
Intro to Microinteractions: Foundation of Details that DelightPurple, Rock, Scissors
 
Apple Watch Technology & WatchOS 2
Apple Watch Technology & WatchOS 2Apple Watch Technology & WatchOS 2
Apple Watch Technology & WatchOS 2Saransh Viswari
 
Developing for Wearables with Xamarin
Developing for Wearables with XamarinDeveloping for Wearables with Xamarin
Developing for Wearables with XamarinGert Cominotto
 
Ambient computing at Lehigh University
Ambient computing at Lehigh UniversityAmbient computing at Lehigh University
Ambient computing at Lehigh UniversitySomesh Rahul
 
Effective feedback design
Effective feedback designEffective feedback design
Effective feedback designHarshal Patil
 
Creating Mobile Applications
Creating Mobile ApplicationsCreating Mobile Applications
Creating Mobile ApplicationsKathy Gill
 
Everything you need to know about Apple WatchOS 3
Everything you need to know about Apple WatchOS 3Everything you need to know about Apple WatchOS 3
Everything you need to know about Apple WatchOS 3techugo
 
Fitness Tracker Bracelet H11 – A Personal Workout Partner you can depend upon
Fitness Tracker Bracelet H11 – A Personal Workout Partner you can depend uponFitness Tracker Bracelet H11 – A Personal Workout Partner you can depend upon
Fitness Tracker Bracelet H11 – A Personal Workout Partner you can depend uponThinkRacePakistan
 

Similar to Apple Watch Development with Xamarin Watch Kit (20)

Why Apple Watch Matters
Why Apple Watch MattersWhy Apple Watch Matters
Why Apple Watch Matters
 
Mobile App PPT_Updated
Mobile App PPT_UpdatedMobile App PPT_Updated
Mobile App PPT_Updated
 
72 hours usage of the apple watch
72 hours usage of the apple watch72 hours usage of the apple watch
72 hours usage of the apple watch
 
Apple iwatches
Apple iwatchesApple iwatches
Apple iwatches
 
Are You Ready for iOS 8?
Are You Ready for iOS 8?Are You Ready for iOS 8?
Are You Ready for iOS 8?
 
Webinar Series - Customer Facing Devices: Putting the Pieces Together
Webinar Series - Customer Facing Devices: Putting the Pieces TogetherWebinar Series - Customer Facing Devices: Putting the Pieces Together
Webinar Series - Customer Facing Devices: Putting the Pieces Together
 
I-watch Mindbowser
I-watch MindbowserI-watch Mindbowser
I-watch Mindbowser
 
Intro to Microinteractions: Foundation of Details that Delight
Intro to Microinteractions: Foundation of Details that DelightIntro to Microinteractions: Foundation of Details that Delight
Intro to Microinteractions: Foundation of Details that Delight
 
Apple Watch Technology & WatchOS 2
Apple Watch Technology & WatchOS 2Apple Watch Technology & WatchOS 2
Apple Watch Technology & WatchOS 2
 
Developing for Wearables with Xamarin
Developing for Wearables with XamarinDeveloping for Wearables with Xamarin
Developing for Wearables with Xamarin
 
Context is King
Context is KingContext is King
Context is King
 
Ambient computing at Lehigh University
Ambient computing at Lehigh UniversityAmbient computing at Lehigh University
Ambient computing at Lehigh University
 
Effective feedback design
Effective feedback designEffective feedback design
Effective feedback design
 
Wearables
WearablesWearables
Wearables
 
Creating Mobile Applications
Creating Mobile ApplicationsCreating Mobile Applications
Creating Mobile Applications
 
Apple watch
Apple watchApple watch
Apple watch
 
Wearable technology
Wearable technologyWearable technology
Wearable technology
 
Everything you need to know about Apple WatchOS 3
Everything you need to know about Apple WatchOS 3Everything you need to know about Apple WatchOS 3
Everything you need to know about Apple WatchOS 3
 
Campaign designed for Apple Watch
Campaign designed for Apple WatchCampaign designed for Apple Watch
Campaign designed for Apple Watch
 
Fitness Tracker Bracelet H11 – A Personal Workout Partner you can depend upon
Fitness Tracker Bracelet H11 – A Personal Workout Partner you can depend uponFitness Tracker Bracelet H11 – A Personal Workout Partner you can depend upon
Fitness Tracker Bracelet H11 – A Personal Workout Partner you can depend upon
 

Recently uploaded

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 

Recently uploaded (20)

CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva2.pdf Ejercicios de programación competitiva
2.pdf Ejercicios de programación competitiva
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 

Apple Watch Development with Xamarin Watch Kit

  • 1. Tom Soderling Senior Mobile Developer Zebra Technologies @tomsoderling
  • 2. 1. Reasons for Apple Watch 2. Day to Day Experience 3. Cool Features 4. New Types of User Interactions 5. Overview of UI Elements 6. Anatomy of a Watch Kit Solution 7. Application Lifecycle 8. Your First Watch App 9. Working with the Parent App 10. Cautionary Tales 11. Answers to Common Questions 12. Resources & Links O U T L I N E
  • 3. W H Y ? F I R S T T H I N G S F I R S T
  • 4. W H A T C A N A P P L E WA T C H D O T H A T M Y P H O N E C A N ' T ?
  • 5. W H A T C A N A P P L E WA T C H D O T H A T M Y P H O N E C A N ' T ? • Monitor heart rate
  • 6. 1 . R E A S O N S F O R A P P L E WA T C H
  • 7. 1 . R E A S O N S F O R A P P L E WA T C H 1. Smartphone as a brain or hub for connected devices
  • 8. 1 . R E A S O N S F O R A P P L E WA T C H 1. Smartphone as a brain or hub for connected devices 2. Some interactions are way better/easier on the watch • The temperature outside, next calendar event, prioritization • General principle. ex: Laptop vs. iPad vs. Phone
  • 9. 1 . R E A S O N S F O R A P P L E WA T C H 1. Smartphone as a brain or hub for connected devices 2. Some interactions are way better/easier on the watch • The temperature outside, next calendar event, prioritization • General principle. ex: Laptop vs. iPad vs. Phone 3. Apple’s Reason “Your phone is ruining your life. Many of us are subject to the tyranny of the buzz—the constant checking, the long list of nagging notification. People want that level of engagement, but how do we provide it in a way that’s a little more human, a little more in the moment when you’re with somebody?” http://www.wired.com/2015/04/the-apple-watch/
  • 10. • Great for texting using Siri • Not usually brave enough to use when other people are around • Handsfree Siri is great for creating reminders, setting timer & conversions when cooking, simple questions • Great for when I’m working on the car, or want my phone to be safe/dry • Handy for controlling music playing through phone or connected speakers • Extremely waterproof • More than sufficient battery life for a day • Dick Tracy-style phone calls! Speakerphone is especially good for boring phone conference calls • Listening to voicemails 2 . D A Y T O D A Y E X P E R I E N C E
  • 11. Activity Remote Viewfinder Quick Contacts Apple Pay 3 . C O O L F E A T U R E S Demo
  • 12. • Suggesting how long someone should use your app • Lightweight, quick, brief interactions; a few seconds • 3 New User Interactions 1. Normal interaction (watch app) 2. Glance 3. Notification 4 . N E W T Y P E S O F U S E R I N T E R A C T I O N S
  • 13. 1. Normal Interaction • Don’t simply port phone app over to watch • We’ll look at the controls available 4 . N E W T Y P E S O F U S E R I N T E R A C T I O N S
  • 14. 4 . N E W T Y P E S O F U S E R I N T E R A C T I O N S 2. Glance • Non-actionable, single view of information • Swipe up from bottom of watch face to view collection
  • 15. 3. Notification • Actionable • 2 views: based on interaction, will transition from Short Look to Long Look 4 . N E W T Y P E S O F U S E R I N T E R A C T I O N S Short Look Long Look Short Look Short Look
  • 16. Demo WatchKitCatalog sample app by Xamarin 5 . O V E R V I E W O F U I E L E M E N T S
  • 17. • Important note: Currently, Apple Watch is just an external display for a program running on a connected iPhone • The ability for apps to run on the Apple Watch itself will be possible in WatchOS 2, released in fall of 2015 • Also, ability to access sensor data (heart rate, accelerometer), use the taptic engine, digital crown, speaker, mic. 3rd party watch complications • Watch apps are made possible through use of the new iOS 8 Extensions 6 . A N A T O M Y O F A WA T C H K I T S O L U T I O N
  • 18. • Extension Points 6 . A N A T O M Y O F A WA T C H K I T S O L U T I O N Today Share Edit Photo Watch App
  • 19. 6 . A N A T O M Y O F A WA T C H K I T S O L U T I O N • How they all work together
  • 20. 6 . A N A T O M Y O F A WA T C H K I T S O L U T I O N • App Communication
  • 21. 1. 7 . A P P L I C A T I O N L I F E C Y C L E The lifecycle of a WKInterfaceController object 1. Awake() 2. WillActivate() 3. DidDeactivate() 1 2 3
  • 22. • Don’t forget to add new device to member center! • Think about Provisioning ahead of time • 3 different App/Bundle IDs (same prefix) 1. com.something.MyPhoneApp 2. com.something.WatchKitApp 3. com.something.WatchKitExtension • 2 Provisioning options: 1. Single Wildcard App ID - “com.something.*” • Fewer Application Services: no App Groups, Push Notifications, HomeKit 2. Three Explicit App IDs 8 . Y O U R F I R S T WA T C H A P P
  • 23. • Time for Add > New Project! 8 . Y O U R F I R S T WA T C H A P P
  • 24. • Choose project and UI Interactions (scenes) 8 . Y O U R F I R S T WA T C H A P P
  • 25. • This will add 2 new projects to your solution 8 . Y O U R F I R S T WA T C H A P P
  • 26. • Project Reference Chain 8 . Y O U R F I R S T WA T C H A P P iOS App WatchKit App Extension
  • 27. • Bundle/App ID Linking 8 . Y O U R F I R S T WA T C H A P P iOS App WatchKit App Extension
  • 28. • Bundle/App ID Linking 8 . Y O U R F I R S T WA T C H A P P iOS App WatchKit App Extension
  • 29. • Bundle/App ID Linking 8 . Y O U R F I R S T WA T C H A P P iOS App WatchKit App Extension
  • 30. • The main storyboard is in the WatchKit App project 8 . Y O U R F I R S T WA T C H A P P
  • 31. • Interfaces in the Watch App storyboard 1. Normal Interaction (App) 2. Glance 3. Notification 8 . Y O U R F I R S T WA T C H A P P 1 2 3 Short Look Long Look
  • 32. • Interface Controllers 1. Normal Interaction (App) 2. Glance 3. Notification 8 . Y O U R F I R S T WA T C H A P P Short Look Long Look 1 2 3
  • 33. Long Look 9 . W O R K I N G W I T H T H E PA R E N T A P P
  • 34. Demo How Deep Is It? Long Look 9 . W O R K I N G W I T H T H E PA R E N T A P P
  • 35. • 3 Options 1. Run Code on iPhone • Call WKInterfaceController.OpenParentApplication() in the watch app extension • Implement the HandleWatchKitExtensionRequest() method in the iOS AppDelegate • Opens the iPhone app in the background 9 . W O R K I N G W I T H T H E PA R E N T A P P Short Look Long Look
  • 36. • 3 Options 2. Shared Storage with App Groups • Allows iOS 8 extensions to share data with parent app. • App Groups are set up in the Apple Developer Member Center, under the IDs section • You can stash you watch app settings values, or files • Doesn’t open iPhone app in the background 9 . W O R K I N G W I T H T H E PA R E N T A P P
  • 37. • 3 Options 3. Message Passing • Darwin Notification Center allows for communication between iOS apps and extensions • API of the Core Foundation framework • WormHoleSharp supports these notifications • C# port of open source project MMWormHole • Allows you to listen for and subscribe to these messages wormHole.PassMessage("ButtonMessage",  new  ButtonMessage{  Id  =    1  });   wormHole.ListenForMessage<ButtonMessage>("ButtonMessage",  (message)  =>  {  …  }   9 . W O R K I N G W I T H T H E PA R E N T A P P
  • 38. Some Errors I Tripped Over Error: AMDeviceSecureInstallApplicationBundle returned: 0xe8003ffe Answer: TBD Error: "Failed to install" "Invalid Bundle - No Apple Watch Binary” Answer: Just reboot the watch! Error: The Watch App 'WatchApp' does not have a valid UIDeviceFamily value. Expected 'Watch (4)' found 'IPhone, Watch (5)'. Answer: Clean and re-build solution 1 0 . C A U T I O N A RY TA L E S
  • 39. Q: I want make sure that notifications for my current iOS app appear on the Apple Watch, what do I have to do? A: Nothing - provided your app supports notifications. If your phone is set to receive that notification, you can choose to mirror it on your Watch via its notification settings. Q: Can I build a stand alone Watch App? A: No. A WatchKit app requires an existing iOS app 1 1 . A N S W E R S T O C O M M O N Q U E S T I O N S
  • 40. Great Article on Apple Watch http://www.wired.com/2015/04/the-apple-watch/ Watch Kit: Getting Started http://developer.xamarin.com/guides/ios/watch/ Xamarin Sample Watch Kit Apps https://developer.xamarin.com/samples/ios/Watch/ WatchOS 2 video: https://developer.apple.com/videos/wwdc/2015/?id=105 Passing messages w/ WormHoleSharp https://github.com/Clancey/WormHoleSharp Apple Watch HIG https://developer.apple.com/watch/human-interface-guidelines/ Bezel http://infinitapps.com/bezel/ 1 2 . R E S O U R C E S & L I N K S