Tony Million's Stuff

Mar 22

The spam of satan??

The spam of satan??

Mar 19

Do what you love, or stop doing it.

So, ZummZumm has been out a little while, and it has a decent user-base for an un-promoted, un-TechChrunched app/service, and you know what, every day working on it is a day filled with Joy.

Every time I see the comment count on the stats page jump up I feel a sense of deep satisfaction. Satisfaction that I’ve developed something that someone has found the software useful or joyful enough to use. I literally shake with excitement when I think of a cool new way of doing something, or something brilliant I can add behind the scenes that I hope people are going to, if not love, at least find cool.

Its still incredibly early days, and I’m glad of this time, with the friendly people using the service right now, and I love that they are finding worth in the software. The discussions it has brought up are amazingly deep and poignant considering no one knows who each other are.


Which brings me onto the reason for this post, to my last gig at Bababoo.

Now, Bababoo was an amazing idea, a seamless easy way to bypass the carrier when making calls. It was an great piece of technology and for the most part when it worked, it worked really well. I still get good feedback from people about it to this day.

But I never got any joy from it, and any complements I get about it these days sting.

It took over a year to develop, it shouldn’t have done, but it did and by the time it hit the market, I had been through the mill, pulled this way and that during the development process, hindered in my work, and generally exhausted by the whole process.

So when I saw we got several hundred users in a day, it didn’t fill me with joy that these people might be finding it a useful part of their lives, I simply felt despair at the fact it was several hundred more people I’d have to support.

I was embittered by my own software… And that felt awful.

I seemed to be constantly angry, moody and easily upset. Why the hell was I working so hard on this, slogging my guts out and getting no real satisfaction, emotionally or monetarily, in return? Looking back, I was probably not a nice person to be around at that point in time.

Then something crazy happened. Its been spun a number of ways, but to cut to the chase: I was fired. I was fired from a company based on software I made by someone who wasn’t even involved until well after the time it was out.

I didn’t feel any of the emotions I expected to feel, I wasn’t sad, I didn’t feel lost. I felt a sense of relief about the whole thing, because suddenly I didn’t have to give a shit any more. I was finally divorced from this marriage:

I realise I had no love for Bababoo.

Mar 06

How to *really* reduce the size of your iOS app.

I recently read this article via @_DavidSmith on twitter. While noble, it does miss a fairly big optimisation technique. That is reducing the bit depth of your PNGs from 32bit(16 million colours) to 8bit (256 colours).

I hear many of you crying out in pain right now, but stay with me.

Really, unless you’re using a huge colour gamut, or using alpha channel effects you may get away with using 256colour PNGs and save yourself 3/4 of the file size… yes thats right a 75% reduction in file size!

Here is an example of the splash screen for one of my apps one is 32bit the other is 8bit:

8bit

Can you tell the difference? Perceptially maybe not, but in terms of file size, the 32bit PNG is 999k and the 8bit PNG is 378k. Thats quite a saving eh? So how do you achieve this amazing saving?

Well if you use photoshop to generate your UI elements, quite simply: you use the ‘Save for web and devices” 

This will bring up a funky UI allowing you to do a side by side comparison of the original image versus the one you are going to save. Up in the top right of this UI is a drop down where you can change the format of the saved file (I’ve highlighted it in the image below). Select PNG-8 from here, then set the dither to Diffusion. 

The dithering is important! Why? Well printers have been doing dithering for years, you might not have noticed as the PPI of printers was so high, but they do it. Guess what… your iPhone 4/4S has a PPI as high as the ‘base’ of a laser printer, so dithering is a very real option for graphics now.

From here you can save out the final image.

While this isn’t perfect for every UI component, e.g. places where you use a wide colour gamut, or places where you need alpha translucency, it is a sure fire way to reduce the size of your application.

And while I can already hear complaints of ‘but its 256 colours’, yes that individual element is, but that doesn’t stop it being composited at the full 32Bit colour of the iDevice’s screen, so if you’re clever with how your UI is layered you can create a full-colour UI from a whole bunch of 256colour PNGs each with their own palette.

So stop and ask yourself (or your graphics guy) do you really need that 32bit PNG for your nav bar or can you get away with a 256 colour one. 

Case in point: using this technique I reduced the size of the ZummZumm .ipa file from about 8 Megabytes down to the current size of 2.6Megs!