[objC autorelease]; t-shirts
Jun 10, 2014
At WWDC 2014 Apple introduced Swift, a new programming language for iOS and OS X developers. Objective-C has had a long and distinguished run with Apple, but times change and we move on.
Making your own Passbook Business Card
Jun 9, 2014
My Passbook and iBeacon enabled business card was something of a hit at WWDC last week. Some people wanted more detail on how it worked or how to create their own version. This post describes the process, from the perspective of a software developer. If you’re not a developer, there are numerous web sites that will help compose Passbook passes, but I can’t personally vouch for any.
The very basics: A Passbook pass is defined by a JSON file.
Passbook and iBeacon for a 21st Century Business Card
May 30, 2014
I’ll be in San Francisco during WWDC next week (though without a ticket). This is the only time of year I ever think about business cards, and this year I decided that paper business cards suck and it was time to do something cooler.
Instead I’ll have an electronic card distributed via Passbook. Electronic cards are hardly a new idea but (on iOS) they usually depend on both people already having the business card app.
Apr 12, 2014
Last year I did a series of posts here where I ran through problems I had encountered with Core Data’s iCloud integration, with various solutions and workarounds I had been able to devise. Then iOS 7 and Mac OS X 10.9 came out with numerous visible (and internal) updates and people started asking me, so, is it any better now? Can we use it?
Since then, the answer has been: I have no frickin’ idea.
Probably Approximately Correct Location for iOS
Oct 28, 2013
If you’re writing an iOS app and you need to know the user’s current location, the answer is straightforward: use Core Location. That fires up device GPS (when available). Apple’s A-GPS combines this with things like local Wifi networks and IP addresses to work out the device’s location. All of this, of course, assuming that the user allows your app to know their location.
That’s great if you actually need nearly-exact location information.
Mark Dalrymple on the Objective-C Run Time
Jul 18, 2013
Over at the Big Nerd Ranch blog, my friend Mark Dalrymple continues his 'Inside the Bracket' series with an article on practical uses of Objective-C's run time introspection.
Dropbox Datastore, the iCloud Killer? (updated)
Jul 10, 2013
This week was DBX, Dropbox’s first ever developer conference. The big news as far as I’m concerned is their new Datastore API. In a break from their file-oriented past, Dropbox now has an API for syncing structured data between devices. I’ve long been a happy Dropbox user and I’ve lately been a frustrated iCloud developer. So the question is, should I care? Should you?
Some of the hype has suggested that the new API is an “iCloud killer”.
Learning iPad Programming, 2nd Edition
May 21, 2013
Learning iPad Programming, 2nd edition, by the excellent Kirby Turner and myself, is *finally* available. This project has been in the works for a while and now it's finally actually shipping and in print and stuff instead of just being preorderable. If you order now you can probably have your copy before I get mine.
iCloud as She is Spoke, Spring 2013
May 14, 2013
In this latest installment of my iCloud series I’ll be taking a look at real world iCloud. Not in the sense of how you should write code to make effective use of iCloud, but in the sense of finding out how people are actually using it in real shipping apps. This was one of my primary purposes in writing momdec, my Core Data model decompiler, and I’ll use it here to see what turns up.
iCloud Complications, Part 3: I'm Waiting...
May 7, 2013
In today’s installment of my continuing series on using iCloud with Core Data I’m going to discuss how factors beyond your control may render iCloud unusable, even if everything is working normally. Even if everything is working correctly, the current API can still require complex workarounds to get decent app performance. Through this, keep in mind that as with my previous post, I’m sticking to how the API is designed to work in the absence of bugs in the implementation.