Rediscovering CouchDB

I'm currently writing the materials for my presentation on Core Data & Synchronization of data for RWDevCon 2016. One of the requirements for the demonstration app is a web service that provides a REST API to sync with. One of the requirements of the talk is that I cannot rely upon an Internet connection. Every person going through the tutorial needs to be able to bring up a local web service to following along with while coding the iOS app on their machine. ...

November 11, 2015 · 2 min · Aaron

Natural Language Search with Core Data

Here's a super interesting write up on how to implement a natural language search using Core Data in a Mac or iOS app. Black Pixel needed to find a way to bring a more natural way for users of the Inspirato app to search for the right vacation. Pretty cool stuff here and something I was very excited to read about with my previous experience with search technologies. Developing Inspirato’s Search Tool

November 5, 2015 · 1 min · Aaron

Core Data by Tutorials

It is very surreal to see your name on a printed book.

December 18, 2014 · 1 min · Aaron

Core Data Object IDs can change

I thought I knew a lot about Core Data with having used it a lot over the past years. Today, I learned something new that I feel like I should have known for a long time. NSManagedObjectIDs can change. Seriously. If you want a different notion of identity, you can just add an UUID string as an attribute to your entity. A separate mapping table is not recommend. The 2 apps should agree to use the same UUIDs for the same identities.BenRef: https://devforums.apple.com/message/480640#480640 ...

October 22, 2014 · 1 min · Aaron

Asynchronous unit testing Core Data with Xcode 6

The WordPress for iOS project had a number of unit tests using Core Data and a custom asynchronous test helper. The helper used a semaphore in a global scope and a bit of method swizzling to give a wait/notify mechanism. The problem with this solution was the global semaphore and poorly written tests causing a conflict. Tests would call the ending wait and previous tests running Core Data would fire off notifies causing a mismatch between the original test and the recipient of the message to pass by the current semaphore. ...

August 6, 2014 · 4 min · Aaron

On the Importance of Glue

Glue is the thing that ... well ... glues everything together. You don't see glue (if the product is made right) but it plays an important role in the overall satisfaction with the product. If you buy a bird house that has bad gluing technique or not enough glue, you will be upset when the first bird flattens the house. The same hold trues for mobile apps as well as web and desktop applications. For sake of this discussion, I'm limiting myself to mobile apps and mentioning some specific iOS technologies. ...

April 25, 2014 · 3 min · Aaron

CocoaConf Chicago - Advanced Core Data

I was lucky enough to be able to speak at CocoaConf Chicago 2014 about some more advanced Core Data topics. The bulk of the talk surrounded concurrency and data model migrations but I did touch on a number of other things. Sadly the session wasn't recorded, but I am considering recording a screencast if there is enough interest. [slideshare id=32054049&doc=advancedcoredata-140307170729-phpapp01]

March 8, 2014 · 1 min · Aaron