The Elegant Chaos Blog
News, thoughts, and other ramblings from the world of Elegant Chaos.

Let’s say that you are building with a modern SDK, but you are targeting some older platforms. For example, you’re using the iOS 5.0 SDK, but you want your app to run on iOS 4.2.

When you do this, you have to take care not to call routines which are only implemented on iOS 5. You can set your deployment target to 4.2, but that won’t prevent you from calling 5-only routines, they will simply be weak linked and will be nil on platforms that don’t support them.

Occasionally I slip up on this, and during testing I discover that I’m using a routine that doesn’t exist everywhere.

The simple solution when this happens is to stop using the routine in question, and find some workaround, but that’s a bit rubbish. After all, the routine has probably been added precisely because it’s useful.

Also, the routine, when it does exist, might be better than your workaround. Apple wrote it, so it must be good right? So you’d prefer to only use the workaround where necessary.

Finally, this is a temporary problem that will probably go away at some point. The routine is present on new systems, and eventually time will move on and you’ll stop supporting the ones where it is missing.

So rather than changing your code, how about finding a way to add the missing implementation when necessary? Luckily, Objective C is wonderfully dynamic, so this is entirely feasible.

Read more

Apple’s bug reporting system (imaginatively called Apple Bug Reporter to the outside world, but known as Radar internally I believe), is essentially closed.

What this means is that you can’t check up on a bug that you didn’t originate, you can’t share your bug report with other developers for testing, discussion or corroboration, and you can’t search for existing or similar issues.

This really really sucks.

Read more

December 03, 2011

A couple of new betas are available from the beta software page.

Neu 1.2b7 includes a couple of minor tweaks to the UI, and a revised manual. I know that there are a few typos to fix in the manual, but I’d definitely appreciate any other feedback on it, or the changes in Neu 1.2. I’m hoping to submit this version to the App store soon.

Ambientweet 1.0.2b1 fixes a stall that has been reportedly happening in Ambientweet - where it simply stops working after an hour or two. Again, all feedback greatly appreciated.

Read more

November 24, 2011

I’m pleased to announce that over this weekend, we’re running a 50% off offer on Neu. For this period it will be available for the bargain price of $5!

We’re also holding Ambientweet at it’s current price (free!) over this period - after which it will actually cost something!

Go get em whilst they’re hot…

Read more

November 22, 2011

Ambientweet 1.0.1 is out!

This version has a whole raft of improvements, including:

  • Reduced the frequency of refreshes, to avoid running over the Twitter call limit.
  • Post windows now use the same style as the main tweet window.
  • The length of posts is now calculated intelligently to account for link shortening. So if you paste in a long link, it won’t use up all of your character count, as the link will be shortened in the actual post.
  • Auto-completion list for @users in post window now includes all users that the app has encountered.
  • Now correctly restores cached tweets and users when loading.
  • Added subtle gradient to window backgrounds.
  • Fixed beta Sparkle feed URL (the app was looking at the non-beta feed instead).
  • Updated the manual with screenshots of new posting UI.
  • Fixed window resizing.
  • Improved sorting, refreshing with new items.
  • Changed user guide code to be sandbox-friendly (copies guide into the Caches folder and opens it from there).

There are lots more improvements and new features on the way in a future version, please give 1.0.1 a try!

Read more