Matt Galloway

My home on the 'net.

LiDG 7th October 2009

Yesterday, there was the monthly LiDG (London iPhone Developer Group) meet-up in the Apple Store, Regent Street. This month Ian Thain decided to allow developers to present for 1 minute (strictly!) about their apps. I chose to give a quick talk about BeerMap, giving the people there a quick run down on why they should download BeerMap and review some beers with it!

It seemed to get good feedback and along side other apps such as CurryFinder it was probably one of the most fun apps being showcased. I really enjoyed telling people about it and I hope that people will have downloaded and started using the app from seeing my presentation!

Below is a little photo of me presenting! Matt Presenting at LiDG 7th October 2009

Android vs. iPhone (+ other smartphones)

I found an article by Andrew Nusca on ZDNet which caught my eye. He gives 5 points as to why Android will beat other smartphones. I’d like to comment on them:

Google backs Android, a major pipeline for its cloud services.

Yes, true, but Apple backs the iPhone and clearly has cloudy things in the pipeline with it’s building of a new billion dollar data centre.

Android is improving rapidly. The Cupcake 1.5 release was well-received, and Donut 1.6 has already been sent over the air to handset owners.

iPhone OS is improving all the time as well. Granted Android is faster, but for developers I think it’s great how Apple release iPhone OS. It means you have time to get ready for each release to make sure all apps work properly on each version.

Android is open, making it easier to quickly gain developers’ support.

The iPhone SDK is free to download and only £59 to become a member of the full developer program. It’s really not that much of a barrier.

Android will run on phones from several manufacturers, which will help it quickly spread through the marketplace. HTC, Motorola and Samsung are already supporting handsets.

This is a bad thing in my opinion. I absolutely love the fact that with the iPhone you know exactly what devices the app will run on, and you know every exact specification. Only if the hardware manufacturer is the SDK provider, can this happen 100%.

Android combines the best of what’s out there. It’s open, but it offers iPhone-like menus and apps, with Windows Mobile-esque icons, with Palm Pre-like multitasking. There’s another arms race afoot — the battle among Android handset makers as to which company can squeeze the most out of the OS.

Is that a good thing to mix-and-match? I prefer having a rock solid, stable OS, built by one of the best software companies in the world. Furthermore, they build the hardware as well so they know how to eek every last bit of power out of the hardware to provide software developers with one of the best platforms to develop for.

iPhone Mail SSL / TLS is ridiculous

I found out today after large amount of digging at work that iPhone Mail.app is even more stupid than I originally thought. We first had issues with the fact that for listing folders it doesn’t support subscriptions, so the folder list shows our hundreds of shared folders. On a good IMAP client (even Mac Mail.app :-O) it will use LSUB instead of LIST to show only those folders which you are subscribed to. We marginally solved this issue by using a perl IMAP filtering proxy to filter out the LIST responses from the server to remove a large portion of the folder tree. This worked ok, but it doesn’t have any support for SSL.

So I set about hacking the perl to change the listening socket into an SSL socket… What I discovered shocked me. Usual IMAP clients have a security setting allowing you to choose none, SSL or TLS. The iPhone only has one which is labelled as “SSL”. So one would assume this means that you only have the option for SSL, right? No.

What it actually means is this:

1
2
3
4
5
6
7
if(ssl == on) {
    if(port == 993) {
        <ssl session>
    } else {
        <tls session>
    }
}

So, if you want to do IMAP/SSL then you HAVE to be connecting to port 993! How ridiculous is that! We needed to have our proxy running on a separate port.

I like competition!

Every now and then I check for the competition of Subnet Calc and Subnet Calc Pro on iTunes. Today I found a couple of new ones called IPSubnet and ITcalc4. Now, I don’t want to be rude but these just don’t seem as easy to use as Subnet Calc and what’s more, they both cost 59p / 99c whereas Subnet Calc is FREE! Granted, Subnet Calc Pro costs some money but I am hoping to always have the free version there for people who just want a quick and easy subnet calculator on their device.

Comments are welcomed for any points you have to make about Subnet Calc or any of its competitors.

UITableViewCell Geometry

I keep needing to find this out, so I thought I’d post it here so I can refer to it. This is the geometry of the UILabels for each of the UITableViewCellStyles:

UITableViewCellStyleValue2 textLabel: 10.000000 : 14.000000 : 68.000000 : 16.000000 detailTextLabel: 83.000000 : 12.000000 : 207.000000 : 0.000000

Subnet Calc Sales

I thought I’d post the latest stats I have for my sales of Subnet Calc:

Subnet Calc Sales

Notice that there is a distinct jump towards the present. This was when I switched category from Utilities to Business. I thought it was quite surprising that it made such a difference just changing category, but it seems to have made a fair difference.

Multiple Developer Certificates

I had the need to code sign using a different developer accounts and my initial thoughts were that it was going to be tricky. But it seems that Apple have actually made it easy now!

The problem comes that during code-sign, it searches for certificates by the name, which leads to “iPhone Developer: Matthew Galloway” matching both certificates you have installed (one for each developer account). But Apple have at some point changed their certificate signing process and they add a number of the end of the common name on the certificate. This means that each certificate is unique even if it’s for the same physical developer.

One thing to note is that I used the same private key to generate the CSR for both certificates. I’m not sure what the implications would be for using separate private keys, but I can’t imagine it would make a difference.

I guess Apple had to do this really because lots of companies would have ended up with problems I’m sure.

So for anyone wondering if they can use multiple developer certificates, then just go for it, it should work!

Almost reached my next monetary target!

I estimate I am between 2 and 4 days from reaching my next monetary target which I set myself for my apps. To mark this occasion I have decided to do something which Malcolm Barclay talked about at the last iPhone and Smartphone Publishers and Developers meet up. It’s nothing too exciting, just I want to give it a try!

In other news I currently have 5, yes FIVE, apps in review with Apple. I’ve been quite busy over the past couple of weeks as I’ve been between jobs. I’ve released updates to 4 apps (another update to Subnet Calc Pro off the back of comments from users) and 1 completely new app which will be interesting for anyone out there who uses a Zen Internet broadband connection!

I’m continually impressed by Apple’s ability to keep the iPhone platform going so strong. It would be interesting to try doing it full time, but I don’t want to take that risk at the moment as I can’t guarantee I’d have enough money coming in and I actually am very much looking forward to starting my new job on Monday!

UPDATE: Well I reached it! And I have now almost reached my next target! I also have released the app for Zen broadband customers, it’s called ZeBbUs (Zen Broadband Usage) and it lets you know how much of your Zen broadband plan you have used this month.

UIImagePickerController returning nil image

I am having a strange issue with UIImagePickerController which is really bugging me. I’ve also found someone else with the same problem so I know it’s not just me!

When using UIImagePickerController, and the imagePickerController:didFinishPickingImage:editingInfo: delegate method gets called, I find that sometimes the returned image is nil, which depending on what you do with the image will cause a crash or at least not do what you expected. It seems to be a memory issue because when you reboot the iPhone and try again, it works and returns the image correctly. Also, I’ve not have the problem on iPhone 3G S which has more RAM, indicating again to a memory issue.

I’m wondering it the new imagePickerController:didFinishPickingMediaWithInfo: delegate method will work – as the other has been deprecated in 3.0 anyway.

But has anyone else had, and fixed, this problem?

Twitter to become SMS replacement?

I have a theory about Twitter and the iPhone in that once Apple’s push service is released (presumably with 3.0) it will pave the way for things like a Twitter client which informs you of new tweets in much the same way that the iPhone itself does with SMS messages. Therefore I can see the future being that iPhone users will increase their tweeting even more, thus not having to use SMS which has 2 advantages. One is that Twitter is free, and two is that if you happen to be on your PC rather than have your phone in front of you then you can receive messages or send messages using your favourite desktop Twitter client.

The problem comes of course that you still have to have polling in there somewhere because Twitter don’t have a push notification themselves, but perhaps Twitter will try to cash in and create their own iPhone app and add Apple’s push service to their own backend service.

Who knows…