A lot has happened in the mobile industry since I first started work on TextQuick. Now as you know I'm a Symbian developer, and an S60 user. I really like Nokia's current offering, but with the announcement of the Apple iPhone the industry has really taken a leap forward. Not particularly in terms of hardware, but software has really progressed.
When the iPhone was launched a lot of reviewers compared it to Nokia N95, on hardware v's hardware comparison there isn't much in it, perhaps a better camera on the N95 and a bigger screen on the iPhone. However it was the addition of a touch screen and software suite on the iPhone which really impressed, even as a Nokia user you simply have to admit that the user experience is great on an iPhone. Over the two weeks since my last post[*1] Palm have released, or announced the Palm Pre, and it too looks fantastic.
When you look at these phones their hardware is roughly a match, it's even not that far off the hardware that ships on the N95. The only major difference is the software which is running on them.
From reading some of the press reports about iPhone development, it's possible to see that Apple have really gone out of their way to make it easy for application developers to produce cool looking applications. Apple have supplied everything from animation support to handy bitmap compositing.
I found a really interesting article on The Register explaining some iPhone development techniques. This shows that Apple use a number of "smoke and mirror" like tricks to make the iPhone look and feel fast and responsive. Here is one trick for example, this one relies on all iPhone models having the same screen resolution. This is how it works:
Now, when the user launches a program the iPhone loads the jpeg first, it displays this on the screen. This is done using a little zoom like animation. To the user this looks like the application has just bounced up - but it hasn't. As the animation / drawing of the jpeg takes place the iPhone launching the program. The idea is, the program will launch in the background and by the time the animation of the jpeg screenshot has completed the program will be up and running. The user will not notice. To the user it will look like the program launched super quick.
You can see this with the contact / phone book application on the iPhone, when you launch it the opening screenshot / first thing you see is an empty address list. When the address book is running it will be replaced with a full list.
This started me thinking, if it's just software techniques making these phones easier / better to use, then I should be able to enhance the way my S60 applications look and feel. - Right ? - But what would I need to make that happen ? Well I would need some way to produce animations, quickly and easily, some way to layer components, produce smooth scrolling user interfaces and better looking controls. So I went back to the S60 SDK and had a look, I know Nokia / Symbian (I guess they are practically the same thing these days) are working on a solution, but it's not available yet, and when it does become available it will mean purchasing a new phone to get it. The only solution I could think of was to produce the tools I need myself, and so I started work on a graphics and animation library. I decided to call this project "Venus", for she was the Roman god of beauty.
Now, there is only two things standing in my way:
1. Sitting down and making my ideas work, and hoping that my library would be more a Venus and less of a Medusa.
2. I'm one developer trying to play catch up against multi-million Dollar / Euro / Pound organisations with hundreds of staff. - That's a very tall order.
If I can make my applications easier to use / nicer to look at I think I would be doing well. It's a tough job, next time I'll share my progress.[*1] see I'm trying to stick to my new years resolution 🙂