Address Book for iphone

Similar documents
CS193P - Lecture 13. iphone Application Development. Address Book - Putting People in Your App

Accessibility on ios. Developing for everyone. Frameworks #WWDC14. Session 210 Clare Kasemset ios Accessibility

Accessibility on OS X

Introducing the Contacts Framework

Building Watch Apps #WWDC15. Featured. Session 108. Neil Desai watchos Engineer

Introducing the Photos Frameworks

What s New in CloudKit

Mastering Xcode for iphone OS Development Part 1. Todd Fernandez Sr. Manager, IDEs

Creating Great App Previews

Game Center Techniques, Part 1

Mastering Xcode for iphone OS Development Part 2. Marc Verstaen Sr. Manager, iphone Tools

Sprint 1 Planning Document

CS193p Spring 2010 Wednesday, March 31, 2010

Adapting to the New UI of OS X Yosemite

Creating Content with iad JS

Introducing the Modern WebKit API

Introducing SiriKit. Hey Siri, say hello to apps #WWDC16. App Frameworks. Session 217

Cross Platform Nearby Networking

Storyboards and Controllers on OS X

Announcements. Paparazzi 3 assignment is due Wednesday 2/17 This Friday s extra session will feature Evan Doll

Power, Performance, and Diagnostics

Designing Great Apple Watch Experiences

Tips & Tricks on Ipad

Developing Applications for ios

Editing Media with AV Foundation

Technology Terms for 2017

How to Create and Use a Skype Account

How Do I Delete Multiple Text Messages On My

What s New in Notifications

Advanced Memory Analysis with Instruments. Daniel Delwood Performance Tools Engineer

Quick Interaction Techniques for watchos

Kevin van Vechten Core OS

Advanced Scrollviews and Touch Handling Techniques

Even better, you can have the Start Menu expand to full screen whenever you want, eliminating the need for a Modern UI Start Screen.

Designing for Apple Watch

ios Application Development Course Details

CS193P - Lecture 11. iphone Application Development. Text Input Presenting Content Modally

What s New in Core Location

View Controller Advancements for ios8

Apple Watch Design Tips and Tricks

Building a (Core) Foundation. Rob Napier

Extending Your Apps with SiriKit

GOING MOBILE: Setting The Scene for RTOs.

Manual Updating To Ios 7 Ipad 3 Not Working

MOBILE PAYMENT INSTRUCTIONS. saskatoon.ca/flexparking ǀ

Introducing CloudKit. A how-to guide for icloud for your Apps. Frameworks #WWDC14. Session 208 Olivier Bonnet CloudKit Client Software

Monetize and Promote Your App with iad

Seamless Linking to Your App

Contents. iphone Training. Industry Trainers. Classroom Training Online Training ON-DEMAND Training. Read what you need

Mobile Apps Introduction Getting Started Features Resources

User Guide Pdf Ipad 2 Ios 5.0 Software >>>CLICK HERE<<<

PrinterOn iphone and ipad app

Working with Metal Overview

Moodle Student Manual

Creating Extensions for Safari

Ipad Ios 7 Instruction Bookmark Safari Add. Favorite >>>CLICK HERE<<<

Building Applications with ArcGIS Runtime SDK for ios - Part I. Divesh Goyal Mark Dostal

Sam Weinig Safari and WebKit Engineer. Chris Marrin Safari and WebKit Engineer

Organizing and Sharing Distributed Web Objects with Menagerie

ios Accessibility Developing for everyone Session 201 Ian Fisch ios Accessibility

Paraben s Photo Backup Stick V2.1. User Manual

What s New in Device Configuration, Deployment, and Management

Building Apps with Dynamic Type

Iphone 4 Manual In Safari Slow 3g >>>CLICK HERE<<<

Manually Setup Yahoo Mail Iphone 5 Can't >>>CLICK HERE<<<

Improving your Existing Apps with Swift

CS193P - Lecture 11. iphone Application Development. Text Input Presenting Content Modally

MailCore Pro Set-Up - iphone

What s New in Testing

What s New in NSCollectionView Session 225

CSE 333 Lecture server sockets

Introduction to Siri Shortcuts

icloud - Apple s suite of

Apple Iphone 3g Users Guide

An Introduction to Microsoft Lync

Repair Guide Htc One X Wifi Problems After Update

Mail Folders Startup guide

ios in Practice MANNING BEAR CAHILL Shelter Island

ipad Training Field Management

Manual Update To Ios 7 Ipad 3 Cannot >>>CLICK HERE<<<

Billing PracticeMaster Financial. Tabs3 Connect Quick Guide

What s new in Moodle 3.1. Coming to a computer near YOU! December 12, 2016

Mary Kay Social Publisher. Sales Force Tutorial

Participating in a WebEx Meeting

Your Apps and the Future of macos Security

Need To Find Manually Manage Music On Itunes 11 Without Erase

FileWave 10 Webinar Q&A

APS Mobile App Frequently Asked Questions

Using Grouped Notifications

CCC 2014 App Frequently Asked Questions

Moodle Student Manual

Implementing UI Designs in Interface Builder

Mobile Apps Introduction Getting Started Features Resources

What s New in Metal, Part 2

Creating Complications with ClockKit Session 209

Manual Add Music Ipod Shuffle 3rd Generation Without Itunes

SUBSCRIBING TO ICAL FEEDS

Stanford CS193p. Developing Applications for ios. Spring Stanford CS193p. Spring 2012

App Publishing with itunes Connect

Introducing On Demand Resources

Transcription:

Address Book for iphone The people s framework Alexandre Aybes iphone Software Engineer 2

3

Address Book for iphone The people s framework Alexandre Aybes iphone Software Engineer 4

What We Will Cover Today Overview of Address Book Integrating people into your application Adapting your application for the ipad Improving the user experience: responsiveness and multitasking No extensive API listings 5

What You Need to Do: RTFD Read the fantastic documentation 6

Overview What s Address Book? 7

Address Book Address Book UI Framework Address Book Framework 8

Address Book Framework Source Group Person Friends Mary Evan Sophie Work Steve Raoul 9

Address Book Framework Source Group Person 10

Address Book Central point for all things Address Book Your connection to the database Multiple instances, a single database 11

Address Book Framework Source Group Person 12

Source Identifies where contacts come from On My iphone (Local) MobileMe Microsoft Exchange CardDAV One source to many contacts relationship 13

Address Book Framework Source Group Person 14

Person Represents an individual or organization Properties Single value Multiple values 15

Linking Corporate Unified Personal 16

Linking Multiple records for the same individual Corporate source (MS Exchange) Personal source (MobileMe) Automatically linked when added You can access the linked people CFArrayRef people = ABPersonCopyArrayOfAllLinkedPeople(person); 17

Address Book Framework Source Group Person 18

Group Many-to-many relationship to person No ownership relation Not supported by all sources 19

Address Book UI Framework People Picker Navigation Controller Person View Controller Unknown Person View Controller 20

Let s Put It All Together Photo cutouts Pick a contact Get the contact s photo Present the contact s information 21

Photo Cutouts A fair in your iphone! Clare Kasemset iphone Software Engineer 22

What You Just Saw Ready to use view controllers ABPeoplePickerNavigationController ABPersonViewController Linked people CFArrayRef people = ABPersonCopyArrayOfAllLinkedPeople(person); 23

The Next Step Saving the user s creations Sharing the user s creations 24

Saving and Sharing The more the merrier Eric Gillum iphone Software Engineer 25

What You Just Saw Save record IDs Save extra info just in case Record IDs do not carry over to other devices Match using the name CFArrayRef people = ABAddressBookCopyPeopleWithName(addressBook, name); Fine tune the matching using other fields ABUnknownPersonViewController for contacts not in Address Book 26

Bigger Is Better Photo cutouts on the ipad 27

Popovers 28

Very Little Work Very few Address Book-related changes Use popovers when necessary Let the frameworks do the rest 29

Improving The User Experience Making your app more responsive Responding to background changes 30

Responsiveness Matching on a background thread Matching on a background thread Use a different instance of Address Book Send ABRecordID back to the main thread Use a different instance of Address Book Send ABRecordID back to the main thread + (void)detachnewthreadselector:@selector(backgroundmatching) - (void)backgroundmatching { } ABAddressBookRef ab = ABAddressBookCreate(); // match people NSArray *people = [self matchpeoplewithaddressbook:ab]; // extract recordids NSArray *recordids = [self recordidsofpeople:people]; [self performselectoronmainthread:@selector(found:) withobject:recordids]; CFRelease(ab); person = ABAddressBookGetPersonWithRecordID(mainAddressBook, recordid); 31

Multitasking Register to hear about external changes ABAddressBookRegisterExternalChangeCallback(ab, myfunctionpointer, context); Revert to get the latest changes ABAddressBookRevert(ab); Redo people matching Update the UI Save your changes ABAddressBookSave(ab, &error); 32

Summary Take advantage of the new linking features Multitasking means more background changes With just a little code you get a lot of functionality 33

More Information Mark Malone Integration Technologies Evangelist mgm@apple.com Documentation Address Book Documentation http://developer.apple.com/iphone Apple Developer Forums http://devforums.apple.com 34

Related Sessions Adopting Multitasking on iphone OS, Part 1 (Repeat) Adopting Multitasking on iphone OS, Part 2 (Repeat) Marina Friday 9:00AM Marina Friday 10:15AM 35

Labs Address Book and Contacts Lab Application Frameworks Lab A Wednesday 4:30PM 6:30PM 36

37

38

39