Building apps that integrate with people and eventsZainab HakimProgram Manager3-007
• Connecting with people.• Integrating with calendar.• App + code demos.
Agenda
Windows Store apps use contracts to declare interactions they support with other apps and with Windows.
“Contracts”
Connecting with people.
The people we communicate
and share with are important
to how we use modern devices.
7/19/2013
“There is no easy way for me to lookup my contacts and interact with them from any of the other Windows Store apps!”
Contact card: App demo
Contact card workflow
Contact card
Source app
• App with contact info that starts the flow to show contact card.
My demo app Target app
• App that fulfils the contract to handle one or more actions.
Windows Contacts Store
• Aggregates and manages contacts.
• Provides contacts data to Windows.
Windows runtime
Match found!
Query
View Profile
No match
Add Contact Action type + object
Great user experience
Contextual.Consistent.Lightweight.
♥ Your activity was loved by Ben Miller
View Profile
Puts user in control
“57% of all app users have either uninstalled an app over concerns about having to share their personal information, or declined to install an app for similar reasons”—Survey conducted by Pew Research Center’s Internet & American Life Project.
Hey Jake, give me a call Later.(206) 555-0134
Meaningful data and actions
• Email• Call• Message• Video call• Map address• Post View Profile View Profile
Meaningful data and actions
• Email• Call• Message• Video call• Map address• Post
Add Contact
View Profile
View Profile
View Profile
View Profile
What apps should use the contact card?
Social groups (class, club, sports, etc.).Maps and location.Event management.Mail and messaging.Birthday assistants.Fitness tracking and sharing.Career and job search.Dating and matrimony.
Email, phone
Has rich people data
Imports people data
Using APIs:ContactManager.showContactCard
Contact card: code demo
1. Create input contact object.2. Get the rectangular area of user
selection.3. Optionally, specify a preferred
placement of the contact card.
ContactManager.showContactCard
Query and show Contact Card
Use only if your app needs to retrieve contact data with a noticeable delay.
ContactManager.showDelayLoadedContactCard
Query and show Contact Card
Pluggable model for apps
Action Target Apps
Holly Holt
View Profile
Use the Windows Contact Card to easily bring the power of people into your apps.
Integrating with Calendar.
Get events into my Calendar
Weekend in Vancouver
Calendar: App demo
View Calendar workflow
• App that starts the flow to view availability in user’s Calendar.
• Main view activation. App launched along-side source app in the requested timeframe.
Your appWindows runtime
Calendar provider app
Your app
Add to Calendar workflow
Start the flow to add event to Calendar.
Calendar provider app
Appointment is saved to Calendar provider app.
Body: Hosted view activation of Calendar provider app’s UI in fly-out.
Header: Windows UI showing Calendar provider app’s name and logo.
Windows runtime
Calendar ▼ [email protected]
Frank's Birthday Party
7/6/2013 6:00PM – 11:00PM
Ben Miller’s home118 Christopher St,New York, NY 10011
Organizer – Ben MillerThis is a surprise birthday party for Frank! Hoping you all you can join...
Demo Calendar
Launch action verb+
Appt. object
Using APIs:AppointmentManager.showTimeFrameAsyncAppointmentManager.showAddAppointmentAsync
Calendar: code demo
1. Input parameters.- timeToShow- duration
2. No result returned.
AppointmentManager.showTimeFrameAsync
View Calendar
1. Create input appointment object.2. Get the selection rect. of the
invocation point.3. Optionally, specify a UI placement.4. Returns unique id for the added
appointment.
AppointmentManager.showAddAppointmentAsync
Add to Calendar
4. Additionally, provide the appointment Id for the appointment to be replaced.
5. Returns unique id for the replaced appointment.
For recurring appointments, also specify the instance start date of the appointment instance to be replaced.
AppointmentManager.showReplaceAppointmentAsync
Update Calendar
1. Provide the appointment Id for the appointment to be removed.
2. Returns a boolean indicating whether the appointment was removed or not.
AppointmentManager.showRemoveAppointmentAsync
Remove from Calendar
Use appointment APIs to easily integrate events with your user’s Calendar.
Call to action
Hey Jake, give me a call Later.(206) 555-0134
Call to actionYour app
Calendar Provider App
Calendar ▼ [email protected]
Frank's Birthday Party
7/6/2013 6:00PM – 11:00PM
Ben Miller’s home118 Christopher St,New York, NY 10011
Organizer – Ben MillerThis is a surprise birthday party for Frank! Hoping you all you can join...
Resources
MSDN documentation• Windows.ApplicationModel.Contacts.ContactManager • Windows.ApplicationModel.Appointments • Windows.ApplicationModel.Appointments.AppointmentsProvider • Windows.ApplicationModel.Activation
SDK samples• Contact manager API sample.• Contact picker app sample.• Handling contact actions.• Appointments API sample.
Evaluate this session
Scan this QR code to evaluate this session and be automatically entered in a drawing to win a prize!
© 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.