SlideShare uma empresa Scribd logo
1 de 17
CREATING APPLE
WATCH EXPERIENCES
WITH WATCHKIT AND XAMARIN
ED SNIDER
@edsnider
NORTHERN VA MOBILE C# DEV GROUP – APRIL 8, 2015
INTRO
I AM ED SNIDER
Senior Developer at InfernoRed Technology
Organizer of Northern VA Mobile C# Developers Group
Xamarin MVP
@edsnider
www.edsnider.net
AGENDA
• Setup requirements
• The Apple Watch model
• WatchKit apps
• Architecture
• Lifecycle
• Design
• Navigation
• Parent app
• Glances
• Notifications
• Apple Watch and WatchKit limitations
SETUP REQUIREMENTS
• OSX Mavericks or Yosemite
• Xcode 6.2
• iOS 8.2 Simulators
• Xamarin.iOS 8.8
• Xamarin Studio 5.8 and/or Xamarin for Visual Studio 3.9
• Complete setup and installation instructions available at:
http://developer.xamarin.com/guides/ios/watch/installation/
THE APPLE WATCH MODEL
Core Components of an Apple Watch app:
Parent / Containing iPhone App
WatchKit Extension
WatchKit App
Glance
Notifications
Apple Watch apps are bundled with (and require) an iPhone app – no 3rd party stand
WATCHKIT APP ARCHITECTURE
WatchKit app
• Lives on the Watch
• Contains UI elements only
WatchKit
app
WatchKit
extension
WatchKit app
+
WatchKit
extension
WatchKit extension
• Lives on the iPhone
• Controls app interface
• Contains app logic
• Communicates with parent app
Parent iPhone
app
WATCHKIT APP ARCHITECTURE :
INTERFACE OBJECTS
Watch app interfaces are manipulated and controlled via interface
objects in the WatchKit extension controllers (WKInterfaceController)
Interface objects provide a proxy between the WatchKit extension
and the actual views (aka controls) in the Apple Watch app
Setters only – you cannot get a view’s (aka control’s) attribute
values at runtime
Automatically created (in *InterfaceController.designer.cs) based on
the storyboard outlets and actions
WATCHKIT APP ARCHITECTURE : APP
LIFECYCLE
Awake(NSObject context)
4. WKInterfaceController Lifecycle
WillActivate()
1. Launch App
2. Load scene from Storyboard
3. Create WKInterfaceController
WATCHKIT APP DESIGN : USER EXPERIENCE
Controls:
• Label, Button, Switch, Slider, Separator, Image, Map
• prefixed with WKInterface
Layout:
• Group
• Table – similar to a ListView; provides row selection handling (DidSelectRow())
Text Input:
• Pre-defined phrases
• Dictation
• Emoji
WATCHKIT APP DESIGN : SCREEN SIZES
136 x 170
pixels
156 x 195
pixels38mm 42mm
WATCHKIT APP DESIGN : CONTEXT MENUS
Each interface controller can have its own
context menu
Display up to 4 menu items (each with a title
and image)
Activated by user with “Force Touch”
WATCHKIT APP NAVIGATION
Page based navigation
• User navigates by swiping left
and right through a “carousel” of
pages
• Dot indicator shows current page
Hierarchical navigation
• User navigates by clicking
through pages
• Pages are pushed on and
popped off a navigation stack
WATCHKIT APP : WORKING WITH PARENT APP
• Use OpenParentApplication() to offload long running /
background tasks to the parent iPhone app
• Use app groups to share data between the WatchKit extension
and the parent iPhone
GLANCES
A Glance is part of the WatchKit app and WatchKit extension
The Glance’s interface is contained within the WatchKit app’s storyboard
and has its own special interface controller
Only one glance interface per WatchKit app
Same life cycle as WatchKit apps’ standard interface
Use timer to update the Glance’s interface and keep its data relevant
NOTIFICATIONS
Apple Watch displays notifications based on its parent iOS app’s
notification settings
By default, nothing is required to support notifications on Apple
Watch apps, including actionable notifications
Two interfaces - Short-look interface, then Long-look interface if the
user continues to look at it
Apple Watch notifications can be customized (long-look interface
only)
LIMITATIONS
• Watch apps require a parent iPhone app to be present
• Cannot dynamically add UI elements at runtime
RESOURCES
• XAMARIN WATCHKIT DOCUMENTATION:
http://developer.xamarin.com/guides/ios/watch/
• DEMO CODE: http://www.github.com/edsnider
Apple Watch frames: http://infinitapps.com/bezel/
iPhone frames: http://mockuphone.com/

Mais conteúdo relacionado

Mais procurados

Introduction of Monaca
Introduction of MonacaIntroduction of Monaca
Introduction of MonacaHideshi Ogoshi
 
Ionic 2: Mobile apps with the Web
Ionic 2: Mobile apps with the WebIonic 2: Mobile apps with the Web
Ionic 2: Mobile apps with the WebMike Hartington
 
Why you should care about Progressive Web Apps?
Why you should care about Progressive Web Apps?Why you should care about Progressive Web Apps?
Why you should care about Progressive Web Apps?Vytas Dargis
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noidaAmit Rawat
 
Use Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationUse Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationLucio Grenzi
 
Hybrid Mobile application
Hybrid Mobile applicationHybrid Mobile application
Hybrid Mobile applicationSanjay Patel
 
Apple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewApple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewSammy Sunny
 
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicHybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicErmias Bayu
 
App forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with IonicApp forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with Ionicrobgalvinjr
 
App開發執行力release
App開發執行力releaseApp開發執行力release
App開發執行力releaseAircon Chen
 
Mobile apps with Ionic 2
Mobile apps with Ionic 2Mobile apps with Ionic 2
Mobile apps with Ionic 2Khoa Nguyễn
 
Testing Your Android and iOS Apps with Appium in Testdroid Cloud
Testing Your Android and iOS Apps with Appium in Testdroid CloudTesting Your Android and iOS Apps with Appium in Testdroid Cloud
Testing Your Android and iOS Apps with Appium in Testdroid CloudBitbar
 
IONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App DevelopmentIONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App DevelopmentMalan Amarasinghe
 
Google Maps API for Android
Google Maps API for AndroidGoogle Maps API for Android
Google Maps API for AndroidMaksim Golivkin
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - AppiumMaria Machlowska
 
Safari App extensions cleared up
Safari App extensions cleared upSafari App extensions cleared up
Safari App extensions cleared upSanaa Squalli
 

Mais procurados (20)

[Lighting Talk] - Ionic 2 Tour
[Lighting Talk] - Ionic 2 Tour[Lighting Talk] - Ionic 2 Tour
[Lighting Talk] - Ionic 2 Tour
 
Introduction of Monaca
Introduction of MonacaIntroduction of Monaca
Introduction of Monaca
 
Ionic 2: Mobile apps with the Web
Ionic 2: Mobile apps with the WebIonic 2: Mobile apps with the Web
Ionic 2: Mobile apps with the Web
 
Why you should care about Progressive Web Apps?
Why you should care about Progressive Web Apps?Why you should care about Progressive Web Apps?
Why you should care about Progressive Web Apps?
 
Appium meet up noida
Appium meet up noidaAppium meet up noida
Appium meet up noida
 
Use Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationUse Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile application
 
Hybrid Mobile application
Hybrid Mobile applicationHybrid Mobile application
Hybrid Mobile application
 
LaunchKit
LaunchKitLaunchKit
LaunchKit
 
Alex jubien-think mobile
Alex jubien-think mobileAlex jubien-think mobile
Alex jubien-think mobile
 
Apple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewApple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical Overview
 
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicHybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
 
App forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with IonicApp forum2015 London - Building RhoMobile Applications with Ionic
App forum2015 London - Building RhoMobile Applications with Ionic
 
App開發執行力release
App開發執行力releaseApp開發執行力release
App開發執行力release
 
Mobile apps with Ionic 2
Mobile apps with Ionic 2Mobile apps with Ionic 2
Mobile apps with Ionic 2
 
Testing Your Android and iOS Apps with Appium in Testdroid Cloud
Testing Your Android and iOS Apps with Appium in Testdroid CloudTesting Your Android and iOS Apps with Appium in Testdroid Cloud
Testing Your Android and iOS Apps with Appium in Testdroid Cloud
 
Ionic framework
Ionic frameworkIonic framework
Ionic framework
 
IONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App DevelopmentIONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App Development
 
Google Maps API for Android
Google Maps API for AndroidGoogle Maps API for Android
Google Maps API for Android
 
Mobile Test Automation - Appium
Mobile Test Automation - AppiumMobile Test Automation - Appium
Mobile Test Automation - Appium
 
Safari App extensions cleared up
Safari App extensions cleared upSafari App extensions cleared up
Safari App extensions cleared up
 

Destaque

T3: apple watch - creating value out of the gate
T3: apple watch - creating value out of the gateT3: apple watch - creating value out of the gate
T3: apple watch - creating value out of the gateJames Lanyon
 
Smart WATCH PPT
Smart WATCH PPTSmart WATCH PPT
Smart WATCH PPTAnusha k
 
SMART WATCH REPORT
SMART WATCH REPORTSMART WATCH REPORT
SMART WATCH REPORTAnusha k
 
Smartwatch presentation
Smartwatch presentationSmartwatch presentation
Smartwatch presentationConnor Hause
 
Smart watch
Smart watchSmart watch
Smart watchSHEEMA90
 

Destaque (6)

T3: apple watch - creating value out of the gate
T3: apple watch - creating value out of the gateT3: apple watch - creating value out of the gate
T3: apple watch - creating value out of the gate
 
Smart WATCH PPT
Smart WATCH PPTSmart WATCH PPT
Smart WATCH PPT
 
SMART WATCH REPORT
SMART WATCH REPORTSMART WATCH REPORT
SMART WATCH REPORT
 
Smartwatch presentation
Smartwatch presentationSmartwatch presentation
Smartwatch presentation
 
Smart watch
Smart watchSmart watch
Smart watch
 
Smart Watch: a business model
Smart Watch: a business modelSmart Watch: a business model
Smart Watch: a business model
 

Semelhante a Apple Watch and Xamarin (NoVA Mobile C# Dev Group 4/8/15)

Apple Watch Kit trainning slide [team iOS - RikkeiSoft]
Apple Watch Kit trainning slide [team iOS - RikkeiSoft]Apple Watch Kit trainning slide [team iOS - RikkeiSoft]
Apple Watch Kit trainning slide [team iOS - RikkeiSoft]Hoang Ngo Anh
 
Session 16 - Designing universal interface which used for iPad and iPhone
Session 16  -  Designing universal interface which used for iPad and iPhoneSession 16  -  Designing universal interface which used for iPad and iPhone
Session 16 - Designing universal interface which used for iPad and iPhoneVu Tran Lam
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Developmenttechugo
 
Building your first iOS app using Xamarin
Building your first iOS app using XamarinBuilding your first iOS app using Xamarin
Building your first iOS app using XamarinGill Cleeren
 
MOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in JavaMOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in JavaGergely Kis
 
AppNotch Enterprise
AppNotch EnterpriseAppNotch Enterprise
AppNotch Enterpriseappnotch
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
Lightning Components and App Builder for admins
Lightning Components and App Builder for adminsLightning Components and App Builder for admins
Lightning Components and App Builder for adminsAlba Azcona Rivas
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDamir Beylkhanov
 
Android Development recipes with java.pptx
Android Development recipes with java.pptxAndroid Development recipes with java.pptx
Android Development recipes with java.pptxabdulqayoomjat2470
 
MyAppconverter platform mappings
MyAppconverter platform mappings MyAppconverter platform mappings
MyAppconverter platform mappings Kamal Youbi
 
Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015Mike Melusky
 
Build Your First Android App Session #1
Build Your First Android App Session #1Build Your First Android App Session #1
Build Your First Android App Session #1Troy Miles
 
Webinar: Impact of iOS 8 on App Marketers and App Developers
Webinar: Impact of iOS 8 on App Marketers and App DevelopersWebinar: Impact of iOS 8 on App Marketers and App Developers
Webinar: Impact of iOS 8 on App Marketers and App DevelopersJayneel Patel
 
Developing Hybrid Applications with IONIC
Developing Hybrid Applications with IONICDeveloping Hybrid Applications with IONIC
Developing Hybrid Applications with IONICFuat Buğra AYDIN
 
Xamarin.iOS introduction
Xamarin.iOS introductionXamarin.iOS introduction
Xamarin.iOS introductionGuido Magrin
 

Semelhante a Apple Watch and Xamarin (NoVA Mobile C# Dev Group 4/8/15) (20)

Hybrid app development with ionic
Hybrid app development with ionicHybrid app development with ionic
Hybrid app development with ionic
 
Apple Watch Kit trainning slide [team iOS - RikkeiSoft]
Apple Watch Kit trainning slide [team iOS - RikkeiSoft]Apple Watch Kit trainning slide [team iOS - RikkeiSoft]
Apple Watch Kit trainning slide [team iOS - RikkeiSoft]
 
Apple Watch Intro
Apple Watch IntroApple Watch Intro
Apple Watch Intro
 
Android Tutorial
Android TutorialAndroid Tutorial
Android Tutorial
 
Session 16 - Designing universal interface which used for iPad and iPhone
Session 16  -  Designing universal interface which used for iPad and iPhoneSession 16  -  Designing universal interface which used for iPad and iPhone
Session 16 - Designing universal interface which used for iPad and iPhone
 
Top 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App DevelopmentTop 4 Cross Platform tools for Mobile App Development
Top 4 Cross Platform tools for Mobile App Development
 
Building your first iOS app using Xamarin
Building your first iOS app using XamarinBuilding your first iOS app using Xamarin
Building your first iOS app using Xamarin
 
MOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in JavaMOE: Cross Platform Mobile Apps in Java
MOE: Cross Platform Mobile Apps in Java
 
AppNotch Enterprise
AppNotch EnterpriseAppNotch Enterprise
AppNotch Enterprise
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Lightning Components and App Builder for admins
Lightning Components and App Builder for adminsLightning Components and App Builder for admins
Lightning Components and App Builder for admins
 
Flutter workshop
Flutter workshopFlutter workshop
Flutter workshop
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
 
Android Development recipes with java.pptx
Android Development recipes with java.pptxAndroid Development recipes with java.pptx
Android Development recipes with java.pptx
 
MyAppconverter platform mappings
MyAppconverter platform mappings MyAppconverter platform mappings
MyAppconverter platform mappings
 
Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015Building Native “apps” with Visual Studio 2015
Building Native “apps” with Visual Studio 2015
 
Build Your First Android App Session #1
Build Your First Android App Session #1Build Your First Android App Session #1
Build Your First Android App Session #1
 
Webinar: Impact of iOS 8 on App Marketers and App Developers
Webinar: Impact of iOS 8 on App Marketers and App DevelopersWebinar: Impact of iOS 8 on App Marketers and App Developers
Webinar: Impact of iOS 8 on App Marketers and App Developers
 
Developing Hybrid Applications with IONIC
Developing Hybrid Applications with IONICDeveloping Hybrid Applications with IONIC
Developing Hybrid Applications with IONIC
 
Xamarin.iOS introduction
Xamarin.iOS introductionXamarin.iOS introduction
Xamarin.iOS introduction
 

Último

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Último (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Apple Watch and Xamarin (NoVA Mobile C# Dev Group 4/8/15)

  • 1. CREATING APPLE WATCH EXPERIENCES WITH WATCHKIT AND XAMARIN ED SNIDER @edsnider NORTHERN VA MOBILE C# DEV GROUP – APRIL 8, 2015
  • 2. INTRO I AM ED SNIDER Senior Developer at InfernoRed Technology Organizer of Northern VA Mobile C# Developers Group Xamarin MVP @edsnider www.edsnider.net
  • 3. AGENDA • Setup requirements • The Apple Watch model • WatchKit apps • Architecture • Lifecycle • Design • Navigation • Parent app • Glances • Notifications • Apple Watch and WatchKit limitations
  • 4. SETUP REQUIREMENTS • OSX Mavericks or Yosemite • Xcode 6.2 • iOS 8.2 Simulators • Xamarin.iOS 8.8 • Xamarin Studio 5.8 and/or Xamarin for Visual Studio 3.9 • Complete setup and installation instructions available at: http://developer.xamarin.com/guides/ios/watch/installation/
  • 5. THE APPLE WATCH MODEL Core Components of an Apple Watch app: Parent / Containing iPhone App WatchKit Extension WatchKit App Glance Notifications Apple Watch apps are bundled with (and require) an iPhone app – no 3rd party stand
  • 6. WATCHKIT APP ARCHITECTURE WatchKit app • Lives on the Watch • Contains UI elements only WatchKit app WatchKit extension WatchKit app + WatchKit extension WatchKit extension • Lives on the iPhone • Controls app interface • Contains app logic • Communicates with parent app Parent iPhone app
  • 7. WATCHKIT APP ARCHITECTURE : INTERFACE OBJECTS Watch app interfaces are manipulated and controlled via interface objects in the WatchKit extension controllers (WKInterfaceController) Interface objects provide a proxy between the WatchKit extension and the actual views (aka controls) in the Apple Watch app Setters only – you cannot get a view’s (aka control’s) attribute values at runtime Automatically created (in *InterfaceController.designer.cs) based on the storyboard outlets and actions
  • 8. WATCHKIT APP ARCHITECTURE : APP LIFECYCLE Awake(NSObject context) 4. WKInterfaceController Lifecycle WillActivate() 1. Launch App 2. Load scene from Storyboard 3. Create WKInterfaceController
  • 9. WATCHKIT APP DESIGN : USER EXPERIENCE Controls: • Label, Button, Switch, Slider, Separator, Image, Map • prefixed with WKInterface Layout: • Group • Table – similar to a ListView; provides row selection handling (DidSelectRow()) Text Input: • Pre-defined phrases • Dictation • Emoji
  • 10. WATCHKIT APP DESIGN : SCREEN SIZES 136 x 170 pixels 156 x 195 pixels38mm 42mm
  • 11. WATCHKIT APP DESIGN : CONTEXT MENUS Each interface controller can have its own context menu Display up to 4 menu items (each with a title and image) Activated by user with “Force Touch”
  • 12. WATCHKIT APP NAVIGATION Page based navigation • User navigates by swiping left and right through a “carousel” of pages • Dot indicator shows current page Hierarchical navigation • User navigates by clicking through pages • Pages are pushed on and popped off a navigation stack
  • 13. WATCHKIT APP : WORKING WITH PARENT APP • Use OpenParentApplication() to offload long running / background tasks to the parent iPhone app • Use app groups to share data between the WatchKit extension and the parent iPhone
  • 14. GLANCES A Glance is part of the WatchKit app and WatchKit extension The Glance’s interface is contained within the WatchKit app’s storyboard and has its own special interface controller Only one glance interface per WatchKit app Same life cycle as WatchKit apps’ standard interface Use timer to update the Glance’s interface and keep its data relevant
  • 15. NOTIFICATIONS Apple Watch displays notifications based on its parent iOS app’s notification settings By default, nothing is required to support notifications on Apple Watch apps, including actionable notifications Two interfaces - Short-look interface, then Long-look interface if the user continues to look at it Apple Watch notifications can be customized (long-look interface only)
  • 16. LIMITATIONS • Watch apps require a parent iPhone app to be present • Cannot dynamically add UI elements at runtime
  • 17. RESOURCES • XAMARIN WATCHKIT DOCUMENTATION: http://developer.xamarin.com/guides/ios/watch/ • DEMO CODE: http://www.github.com/edsnider Apple Watch frames: http://infinitapps.com/bezel/ iPhone frames: http://mockuphone.com/

Notas do Editor

  1. Parent / Containing iPhone App Regular iPhone app; contains WatchKit App bundles WatchKit App The main user interface Shares data with parent iPhone app via shared app group WatchKit Extension Glance Read only “quick” look – similar to the Today view in iOS apps Only one per app Notifications (local and remote) Customizable notifications displayed from the iPhone ** App groups are secure data container that apps from different sandboxed processes can access and share.
  2. The WatchKit app lives on the Apple Watch device and contains only user interface related elements The WatchKit extension lives on the iPhone and contains the logic for the WatchKit app Both are bundled together with an iPhone app
  3. Use the screen width to determine the screen size programmatically if needed. WKInterfaceDevice.CurrentDevice.ScreenBounds.Size.Width Designer and simulators support both 38 and 42
  4. App groups are secure data container that apps from different sandboxed processes can access and share.
  5. Short-look interfaces are not customizable, non-scrolling Long-look interface Contains a system provided dismiss button Contains notification details/content Contains app-defined action buttons