-
Apr 21, 2010 (an Objective-C era article)
In this post, I'll talk about how multi-platform applications are structured and talk about some of the different ways that applications separate core logic from platform specific behaviors. I'll talk about how using a porting layer like The Cocotron fits into these designs and why using The Cocotron doesn't necessarily mean that you're ignoring best-practice or creating a second-class application.
-
Apr 15, 2010 (an Objective-C era article)
There are a few different options for porting Objective-C/Cocoa applications to Windows. Each option has different advantages and offers different capabilities. In this post, I'll give an overview of some of these options, their advantages and disadvantages.
-
Apr 7, 2010 (an Objective-C era article)
If your iPhone OS application makes heavy use of the network, there are a few extra settings your application will require to ensure the network works correctly and Apple will approve your application. These requirements are not always obvious (some are documented, others are only implied in documentation). I thought I'd share them so that you can avoid network dropouts and unnecessary App Store rejections.
-
Apr 3, 2010 (an Objective-C era article)
StreamToMe is on the App Store for the iPad from day 1, so you can watch video and play music stored on your Mac using your iPad wherever you are.
-
Mar 29, 2010 (an Objective-C era article)
This week I present some further additions to AudioStreamer, a class I first presented in Streaming and playing an MP3 stream and revisited with bug fixes in Revisiting an old post: Streaming and playing an MP3 stream. This time, I'll add the two of the most requested features: seeking and HE-AAC audio support.
-
Mar 22, 2010 (an Objective-C era article)
In the "modern" Objective-C runtime (that's iPhone OS or 64-bit Mac OS X), you can dynamically add ivars (instance variables) to a class without declaring them first. This allows a solution to the common "fragile base class" problem involving ivar layouts. Dynamic ivars can also help data hiding and abstraction and can even create a confusing situation where a base class and a sub class have ivars with the same names that don't refer to the same underlying data.
-
Mar 15, 2010 (an Objective-C era article)
In my last post, I showed how you might redesign the interface to the iPhone's UITableView
if you wanted to reimplement it on the Mac using Cocoa Bindings. This time, I'll show you how to make those bindings editable in Interface Builder so you can use the entire class with no code at all.
-
Mar 10, 2010 (an Objective-C era article)
Bindings are one of the best ways of connecting your view and model on the Mac but due to the layers of abstraction involved — and the fact that they don't exist on other platforms — bindings can seem foreign and confusing. In this post, I'll show a complex view that is traditionally implemented without bindings (the iPhone's UITableView
) and show how it might be redesigned for the Mac with bindings.
-
Mar 1, 2010 (an Objective-C era article)
You don't have to look far to find people suggesting that constructing views in code will increase the speed of your program. Since interface performance is a serious concern in iPhone development, I thought I'd look at the performance speed in creating complex iPhone UITableViewCells in code versus loading them from a NIB file.
-
Feb 26, 2010 (an Objective-C era article)
Two different things turning two different kinds of "2". Snap.