Big Bucket Software you like to use
spacer

The Incident

spacer

TV Forecast

spacer

Pocketball

The Confused Cop in Arcade Fire’s Sprawl I
February 23rd, 2012

In Arcade Fire’s Sprawl I (Flatland), some childhood friends ride their bikes out to the town where they grew up. They’re spotted by some cops (at 1:44). That’s when things get weird.

Cop: “Do you kids know what time it is?”
Kid: “Well sir, it’s the first time I’ve felt like something is mine, like I have something to give.”
Cop: “Well where do you kids live?”
Kid: “Well sir, if you only knew what the answer is worth, been searching every corner of the earth.”

I can only assume the cops got right back into their patrol car and drove away as quickly as they could.

The Incident: Now with iCloud Sync
December 8th, 2011

spacer

So you know iCloud? Well we’ve just gone and added it to The Incident. With The Incident 1.4, your progress is synced between your iOS devices. Unlock a level on your iPhone and it’ll be unlocked on your iPad. It’s just that simple.

Oh, but if it ever causes you grief and you find yourself cursing at your iOS device, “Where are my missing gems!?” maybe just give it a reboot. iCloud is still super new and Apple hasn’t quite got all the kinks out yet.

TV Forecast iCloud Troubleshooting
November 17th, 2011

spacer

If you’re having trouble getting TV Forecast to sync across your iOS devices, here are some tips:

Make sure you’re using iOS 5 and that your iCloud account is setup.

For iCloud sync to work, your devices have to be updated to iOS 5. If you’re on iOS 5, you’ll notice an iCloud item in the Settings menu. Make sure that all of your devices are connected to the same iCloud account.

iPhone crashing on startup?

Some people have reported crashes or freezes on startup. If you’re getting this, try clearing the TV Forecast cloud data. You can do this from:

Settings > iCloud > Storage & Backup > Manage Storage > TV Forecast

From there, tap Edit and Delete All. You shouldn’t lose any data; the next time you launch TV Forecast, your forecast will be re-uploaded to the cloud.

iPad not syncing?

If your iPad is refusing to sync, try restarting it. Seriously, it works.

If you’re still having trouble, please send me a support email or tweet me.

TV Forecast: Now With iCloud
November 16th, 2011

Good news! New versions of TV Forecast (for iPhone) and TV Forecast HD (for iPad) are now available on the App Store. The biggest new feature: iCloud support.

With iCloud, your forecast is stored in the cloud and automatically pushed it to all of your devices.

Like the iPad version, the iPhone version now includes episode bookmarking and manual time zone adjustment. And for those of you with very large forecasts who have been having trouble with iOS 5.0, that’s fixed too.

So go get TV Forecast and TV Forecast HD and be sure to follow @tvforecastapp on Twitter for news and support.

Enjoy!

spacer

Update: If you’re having trouble getting iCloud working on TV Forecast HD, try restarting your iPad.

BBCloudController
October 29th, 2011

I’ve been implementing iCloud syncing lately. It’s been tricky, but I’ve mostly got it sorted now. I’ve done my best to encapsulate the complexity in a class called BBCloudController. I’ve uploaded it to my github. Here’s how it works.

First of all, you need to create a class that inherits from UIDocument. A UIDocument is “an abstract base class for managing the data of documents.” I won’t go into how that’s done, you’re better off reading the docs for that. Once you’ve got your UIDocument, you’re pretty much set. In the example below, I’m assuming that there’s a UIDocument subclass called “MyDocument”.

In your application:didFinishLaunchingWithOptions:

// ensures that iCloud storage is available
if ([BBCloudController isSupported])
{
    m_cloudController =
        [[BBCloudController alloc] initWithDocumentClass:[MyDocument class]
                                                filename:@"note.txt"];

    m_cloudController.delegate = self;

    [m_cloudController openOrCreateDocument];
}

That will create a controller encapsulating a document named “note.txt”. The openOrCreateDocument will look for note.txt in the cloud/ubiquity container (using an NSMetadataQuery). If it can’t find it there, it will create it locally and move it there (by calling setUbiquitous).

The openOrCreateDocument method is asynchronous so the BBCloudController‘s delegate will be called once the file has been opened/created. The BBCloudController delegate needs to implement these methods:

-(void)cloudController:(BBCloudController*)controller
       documentDidOpen:(UIDocument*)document
{
    // UIDocument subclasses typically have a delegate. Hook that up here.
    ((MyDocument*)document).delegate = self;
}

-(void)cloudController:(BBCloudController*)controller
  documentFailedToOpen:(UIDocument*)document
{
}

Whenever you want to make a modification to the document:

-(void)makeAModification
{
    MyDocument* document =
        (BBTvForecastDocument*)m_cloudController.document;

    // ...diddle with the document...

    [document updateChangeCount:UIDocumentChangeDone];
}

And that’s pretty much it. When something changes in the cloud, your UIDocument subclass will have its loadFromContents method called on it. It’s up to your UIDocument subclass to notify you when it reloads. If a conflict occurs, the BBCloudController will handle it silently by taking the latest version.

So grab it and let me know how you like it. Please don’t hesitate to let me know if you discover any bugs or can think of how it might be improved. I figure it will get an optional “handleConflict” method in the future but for now, taking the latest version is sufficient for my needs.

How I think an iTV might work
October 29th, 2011

Let’s assume that an Apple branded television would be called an iTV. Here’s my pitch for the iTV.

If you’re like me, you don’t care about networks, you care about your shows. We like our Apple TVs because they think the way we do. You don’t flip through channels on an Apple TV, you scroll through shows. It’s fantastic and yet the Apple TV is just a hobby. Why? Because most people aren’t like us.

Most people have a different relationship with their TV. They sit down, turn it on and flip through the channels until they find something interesting. They don’t want to figure out what they want to watch. They just want to relax. There is absolutely nothing wrong with this behaviour.

Here’s what I’m picturing. Keep in mind, it’s pure speculation.

When you turn it on an iTV, there is something playing. And just like a normal TV, you can flip through channels, or iTV networks. You subscribe to networks directly from your iTV. No packages or bundles, it would be just like buying an app. Maybe the networks appear as icons on a springboard, who knows. The network content would be streamed over the Internet but it would be similar to, if not the same as, what you’d see if you were watching them on a regular TV. Probably with interstitial ads and all. It would have Genius in it too. Instead of channel surfing, why not ask Genius what’s on that you might like?

spacer

Regarding the Daring Fireball post on App’s as channels:

Imagine watching a baseball game on a TV where ESPN is a smart app, not a dumb channel. When you’re watching a game, you could tell the TV to show you the career statistics for the current batter. You could ask the HBO app which other movies this actress has been in. Point is: it’d be better for both viewers and the networks if a TV “channel” were an interactive app rather than a mere single stream of video.

My issue there: it is reminiscent of the time before iBooks when books were sold as apps. Every book had its own way to bookmark or turn the page. They didn’t always work in landscape and so on. It’s important for networks to behave predictably, like a TV version of iBooks. In other words, I see networks as being dumb channels with smart apps built on top of them.

With an iTV, you should be able to instantly stream any show that aired within a given period. Let’s say, one week. It would be like a DVR that records everything, with a weekly self destruct. The UI should make it easy to mark your favorite shows so that you don’t have to scroll endlessly to find them. If you want to watch something that aired more than a week ago, you buy it on the iTunes Store. If it aired on an iTV network, then you can find it on the iTunes Store, no exceptions. You’d probably get the show cheaper if it aired on a network you’ve subscribe to.

The iTV would, of course, integrate with iTunes. You can’t stream the network on your iPhone or iPad, but you can stream anything that aired in the last week.

With most Apple launches, the (imaginary) iTV would likely launch with only a few networks, say, ABC, HBO, Bloomberg and Comedy Central. There’s nothing technically revolutionary about what I’ve described here but this dream device is a big ask, hinged almost entirely on content deals. Apple is historically good at this sort of thing; iTunes Match is kind of extraordinary. This rethinking of TV is harder still, but here’s hoping.

Cidercast
September 21st, 2011

Recently, @yagankiely and @theguycalledtom, a couple of cool guys from Perth, invited me to join them for the 13th episode of their Cidercast podcast. I had a great time chatting with them. You can download the episode here. We discuss Star Wars, Windows 8, The Incident and more. Much more. It’s a long one folks, so get comfortable.

One More Thing
August 31st, 2011

A few weeks ago, I travelled to Melbourne to speak at the One More Thing conference. The conference was aimed at iOS developers who have an idea but are uncertain about going solo. My talk was about taking small steps and minimising risk. I also spend a fair amount of time discussing how The Incident managed to get developed by two guys with day jobs.

All of the talks were really impressive and they’re now up on vimeo. You can see mine here.

The conference was seriously fantastic so congratulations to Anthony Agius, Lauren Watson, Peter Wells and everyone else who worked the magic behind the scenes. Thanks! It was great fun.

One More Thing…

Anthony is hoping to fund a 5 part online TV show about startup and solo iOS developers. He has a project up on Pozible (which seems to be like Kickstarter for Australia) so if that sounds interesting, why not go pledge him some money!

NSTexturedComboBoxCell
August 21st, 2011

Observe: TextEdit in OS X 10.7:

spacer

The paragraph style, family and typeface controls are NSPopUpButtons. The font size control is an NSComboBox. All of the controls are mini and are (more or less) sitting on top of an NSToolbar. But, if you were to create an NSToolbar and stick a mini NSComboBox onto it using Xcode, you’d end up with one of these:

spacer

Please note: The lack of rounded corners. I didn’t bother to reproduce the NSPopUpButtons since, as far as I could tell, they render identically in TextEdit and Xcode.

To track down the discrepancy, I injected F-Script into TextEdit to figure out what custom NSComboBox TextEdit must be using.

spacer

Turns out it wasn’t custom at all. So, it must’ve been configured differently. I eventually tracked down the difference in configuration to the NSComboBox’s cell class: NSTexturedComboBoxCell. Googling it turned up nothing. Presumably new to 10.7 and definitely private.

So if you want to use it, and don’t intend to sell your app on the App Store, you can make your NSComboBox’s look right by changing the class type in Interface Builder.

First, select the Combo Box’s Combo Box Cell from the object list:

spacer

And secondly, replace the cell class using the Inspector:

spacer

And you’re all set. The final result:

spacer

Pocketball
August 5th, 2011

spacer

Big Bucket’s first game, Pocketball is currently free on the App Store. So grab it quick, I’ll be switching it back to 99c soon.

I released Pocketball in 2009 and the experience of building, marketing and releasing a game definitely informed how Neven and I tackled The Incident. Not only that, nearly all of the graphic and sound framework I built for Pocketball found its way into The Incident. Also, if you listen for it, you’ll even find a sound effect that the two games have in common. And did you ever notice this?

spacer

Oh and one more thing: I’ve submitted an update to Pocketball; retina display support is coming soon!

gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.