M Cubed Blog

The iPhone Economy
Posted by on 18/07 at 12:21 PM in General
OK, before I start let me explain my position. I don’t currently own an iPhone (the black 16GB are illusive little buggers in O2 stores) but I’ve had an iPod touch for several months. I think it’s the best handheld device out there and has one of the best development environments available. It really is Apple’s crowning achievement. I have some iPhone applications planned. I’ve also spent way more money than I should have on the AppStore. But I have some niggles.
For me the iPhone/iPod touch platform (I’ll just say iPhone from now on) isn’t a very appealing platform for an app developer. I mean, there are some apps that are ideal for it but most of these already seem to have been done, there is only so much you can do with photos, so many ways of making a ToDo app etc. Maybe I’m just lacking imagination but I can’t really think of that many applications that could go on the iPhone. Sure, I can think of all sorts of custom stuff for businesses, but that’s boring work. In terms of stuff you make, pack up and sell to customers the idea pool is very limited.
But why? One answer is the hardware. Multi touch is great but requires large target areas. This limits what you can show on a single screen, limiting the complexity of an application. Yes you can have sub categories and stuff hidden away, but while that works fine on the Mac and is actually the recommended way of doing things, there is only so much stuff you can hide before it pisses off users.
The other part of this equation is that while multi touch controls require quite a bit of screen space, the screen space is limited on the iPhone. Even if you could use a keyboard an mouse, there is only so much you can do on such a tiny screen.
Does this mean that the iPhone sucks for applications? Not at all, in fact it is ideal for some sorts of applications, it is just pants for others. It doesn’t give you the flexibility to build as wide a range of applications as the Mac and it doesn’t let you make an application as feature filled as on the Mac, but this is also an advantage, because it means developers can focus on making what they can do with the device the best user experience out there.
But it’s not all doom and gloom about what you can develop for the iPhone, because I’ve only been talking about applications up until now. Where the iPhone will excel is gaming. It is an almost perfect hand held gaming device. In gaming terms, it is like if the PS3 and Wii has a lovechild which was also genetically modified with DNA from the GameBoy. It is the most powerful in it’s class with a unique selection of input devices and is incredibly portable (I’ve had my iPod touch for over 9 months now and I still can’t get over how bloody thin it is).
The iPhone is brilliant because it forces developers to be innovative and try to get around the fact that there’s no D-Pad. The iPhone is unique in this regard, even the Wii has a D-Pad. Of course, developers won’t get this right the first time but innovation isn’t always a nice process to watch. I’m going to be spending half of my last year of University looking into the various ways you can control games trying to find out what works best in what situation, but even then there won’t be one set of controls that work best in one situation.
So what about the economy part of things? Well some people seem to think that the iPhone will be a bigger platform than the Mac in a few years. I tend to agree with them, but it will be an entirely different platform. The Mac’s bread and butter is content creation and content creation requires some degree of accuracy and a decent amount of screen space. The iPhone will consist more at applications you just want to pull out and look at briefly while you’re on the go, but it will shine most as a gaming device. And while the Mac commands an average price of around $25-30, the iPhone will be more around $8-10.
It isn’t really right to compare the Mac to the iPhone, they are designed for two completely different scenarios. It would be like comparing Stickies.app to Word. One is designed for quick and simple stuff, the other is designed to sit down and immerse yourself in work. Yes, the iPhone will be a bigger platform in terms of unit sales, revenue, profit and everything that matters to anyone trying to make money. But don’t think that you can just transfer straight straight from the desktop and expect it to be the same sort of market. It’s a different class of applications, aimed at a different type of user in a different type of situation.
(3) Comments • Permalink
Code Collector Pro 1.2.4 and MacWorld Review
Posted by Pilky on 15/07 at 03:32 PM in Code Collector
Code Collector Pro 1.2.4 is now available for your consumption. It is a just a collection of minor bug fixes and a few UI improvements which should hopefully make things a bit more pleasant until 1.3 is released.
I am also pleased to announce that Code Collector Pro got its first review in a major Mac magazine. The latest issue of MacWorld UK contains a very positive review giving a CCP a 4 star rating out of a possible 5.
(2) Comments • Permalink
Build numbers from Bazaar [UPDATED x 2]
Posted by Pilky on 30/06 at 11:31 AM in Coding
Things have been pretty quiet on the public front of M Cubed for the past month or two, but rest assured I'm working on some pretty cool stuff that I'll hopefully get to show off soon. One thing that has changed recently is that I've started to use Bazaar as my version control system of choice.
Now I've had a pretty tarnished history with version control software, often resorting to use zip archives because they were less hassle. I've fallen in love with Bazaar though and have managed to integrate it pretty well into my workflow.
One thing I've started to find a use for recently though has been build numbers for releases. There are many ways people use to create build numbers, the one I've settled on is using the latest revision number of my Bazaar repository. This is both a very simple way of working out build numbers, but also tells me where in my repository this version came from.
Searching t'interweb I found several useful pages detailing how to automate build numbers in Xcode and integrate them with version control systems. I spent a 15 minutes learning the basics of Perl (which is surprisingly easy to learn) and another 30 minutes playing around and I finally had a build script that takes the latest revision number from a Bazaar repository and puts it in the Info.plist of the current project.
So how do you add this to your Xcode project? Simple:
1. Right-click on your build target and choose Add->New Build Phase->New Run Script Build Phase.
2. Set the Shell to /usr/bin/perl
3. Copy the following script to the script field:
# Created by Martin Pilkington on 29/06/2008.
# Copyright 2008 M Cubed Software. All rights reserved.
#Check if we're versioned under bzr
if (-d ".bzr") {
#get the revno minus the new line
my $revno = `/usr/local/bin/bzr revno`;
substr($revno, -1, 1, "");
#open the info plist
open(my $input, "<", "Info.plist") or die "Can't open Info.plist: $!";
my $outputstring = "";
#loop through each line until we find CFBundleVersion, then substitute the next line
while (<$input>) {
$outputstring .= "$_";
if (/[\t ]+<key>CFBundleVersion<\/key>\n/) {
my $line = <$input>;
$line =~ s/([\t ]+<string>)(\d+)(<\/string>)/$1.($revno).$3/eg;
$outputstring .= $line;
}
}
#write back out to Info.plist
open(my $output, ">", "Info.plist") or die "Can't open Info.plist: $!";
print $output $outputstring;
} else {
print "This project is not versioned\n";
}
4. Set your CFBundleVersion setting to 1. 
5. Move the Run Script phase to the top of your target.
There you have it, automated build numbers straight from your Bazaar repository. If you have any improvements or find any bugs then please leave a comment below, this is my first foray into Perl so some things may be wrong but it works for me.
Update: Jeremy Knope has provided a ruby version of the above script which can be found here: http://www.codecollector.net/view/1736/Bazaar_revno_build_phase_script . I've also updated my Perl script to check if the project is versioned with bzr. I've also fixed the comments which didn't seem to be working before.
Update 2: Fixed some more bugs
(0) Comments • Permalink
Code Collector Pro 1.2.3
Posted by on 21/05 at 01:26 PM in Code Collector
This is just a quick bug fix. I discovered that there was an issue when sending a '+' to codecollector.net. Obviously for programming related stuff this is quite a big issue, hence this version. I also just like the version number... what can I say, simple things amuse me.
I'd also like to make a plug for On the Rain-slick Precipice of Darkness: Episode One. It was also released today and so far it has been a great game. If you read Penny Arcade you probably already know about it. If you don't then you should really try the game anyway.
(0) Comments • Permalink
About
M Diced is the weblog of M Cubed Software. If you'd like to know more about us head to our about page.

