Part of the online course that I took from Stanford on iPhone app development involved choosing a final project. My top-level criteria for choosing a project included:
- Incorporate several different iOS technologies.
- Make use of an external web service and API.
- Interaction with an external web site.
What I eventually settled on was a concept for allowing a user to view and edit their iPhone Address Book contacts both within an app as well as in a full web browser.
This functionality is already available as a service now at iCloud.com. My plan was to start with this capability and over time begin to add new functionality (social sharing, etc).
The Contacts2Web app is now available in the App Store. In this document, I will cover some of the details that went into developing the app.
Posted in iOS
Tagged address book, code coverage, core data, core foundation, debugging, google analytics, instruments, iOS, leak, memory allocations, parse, singleton
In creating my first iPhone app which uses the Address Book, I discovered the world of memory management with iOS. I wanted to share a few things I’ve learned and provide lots of links for your reference.
ARC, retain counts and CFRelease
Admittedly, if you stick strictly to Foundation code, you probably don’t need to be concerned too much about what happens under the hood. With the introduction of ARC (Automatic Reference Counting), iOS takes care of much of this for you. It’s when you also need to deal with Core Foundation (CF), which the Address Book uses, that things become tricky. CF has a concept of object ownership and memory management using retain counts. An object can have multiple owners (retain count > 1), but when you are done with that object the retain count had better be zero or you’ll create memory leaks. To accomplish this, you need to use CFRelease().
Posted in iOS
Tagged address book, apple, arc, core foundation, foundation, iOS, leak, memory, objective c, retain count, zombie