Thoughts and Ramblings

General things I find of interest.

What Objective-C can learn from Java, Part 2 (Abstract Classes)

This is the second is a series of blog posts I’m writing on things that Objective-C can learn from Java. The other parts can be found here: Part 1 (Generics) Part 2 (Abstract Classes) Part 3 (Single Source File) Part 4 (Namespace) Part 5 (Exceptions) When one is using object oriented design, a common practice is to lump similar classes together with a common super-class and include the common functionality in that super-class.

What Objective-C can learn from Java, Part 1 (Generics)

This is the first is a series of blog posts I’m going to write over the next several days on things that Objective-C can learn from Java. I’ve been programming in Java since 1997, and in Objective-C since 2001. The two languages have a lot of similarities, but there are a few design principles in which Java excels and Objective-C is left behind. This is understandable considering that Objective-C is older than Java, and Java borrowed heavily from Objective-C when it was designed.

Working With Core Data

When I redesigned Sapphire, I decided that the metadata back end would be best served by Apple’s Core Data Framework. While the framework has a lot of power, several shortcomings in the implementation hindered its potential. First, I should start with the many things that Apple did correctly in Core Data. The whole data model with relationships and properties is quite powerful. With this data model, one can represent many data sets in a simple manner, such as the example below: core-data-model This example shows part of the data model within Sapphire pertaining to TV shows, where a TV shows contains multiple seasons, each of which contains multiple episodes.