I’ve had a love-hate relationship with my iPhone since iOS4.

I have an iPhone 3G. I got it a little under two years ago, at around the same time the 3GS hit stores. I can justify my mistake of not dropping the extra $100 because I was just out of school, didn’t have a job yet, and just wanted something to start testing my first few apps on.

I’ve been pretty much dying to get an iPhone 4, but realize the error in my ways of buying old over buying new.

My memory is a little foggy, but I think it worked great up until iOS4. The only features I figured I was missing out on were the compass (which actually would have been useful a couple times I was lost in the city) and the OpenGL ES upgrade (didn’t really do any serious gaming). Nothing else really jumped out to me, and that’s why I thought my decision was for the best for quite awhile. (Thinking back again, I was disappointed that I didn’t get voice control).

I was stricken to hear that my iPhone wouldn’t be getting the multitasking capability in iOS4. I was working on a prototype for an app that used local notifications and I was unsure of how it would work on a real device with all the backgrounding jazz that had to go on. Still, I pushed on.

It was really the day to day stuff that was the worst. I even had friends with 3GSs complain about how much iOS4.0 bogged them down. I think the later releases of 4.1 and 4.2 cleared that up, but for me the bottom dropped out and stayed there. I watched a few funny spoof videos of iPhone commercials with the 3G taking 20 seconds to load up an app. Those helped me through the pain.

Maps used to be usable during my 3G’s first year. I could even play music AND and look at a map at the same time. Now, I start up the app and it will either crash and burn, or lock up for five minutes and lag on each tap after that.

It’s the same with my core group of daily apps. Twitter, Facebook, Safari. Apps doing simple things now stuttered and crashed. Some of it was just the overhead growing as I’d expect. But some of it was the curse of being able to do too much. Every time you start up the Facebook app, you can see the location services kick in. This activity brings my phone to its knees.

Twitter added its infamous ad bar to the top (yeah, I know what it’s called, haha) which also slows my reading experience down considerably. Not only that, but the start-up-from-where-I-left-off feature was completely brushed to the side as the 3Gs have become less popular. As a user I can complain as much as I want about these little signs of betrayal. However, as a developer I have to consider the exact same things. Do I really care how many people like me are still using a 3G? If it takes me an extra month to rewrite a feature to work for them, will they have already ditched their phone by the time I get it out? Do that many developers even still possess a 3G to do testing on?

Apple in some ways has done an okay job of keeping their patrons from getting too left behind. If they had decided not to support iOS4 on the 3G at all, then I would have no way of running apps written for iOS4 and higher, and therefore the developers whose apps I would have bought would be out of luck. They also had the foresight to realize that multitasking wasn’t feasible with the memory capacity of the 3G, and I’m sure had to work a little harder to make two different versions. But at the same time, there has been some serious wishful thinking in the belief that an iPhone 3G can handle the other upgrades that iOS4 brought to the table.

The nail in the coffin came for me last week when I went to do my (bi-monthly?) SDK update. iTunes kept telling me I already had the latest version of iOS at 4.2.1. Impossible, I thought, and scoured the blogs to find that 4.3 had indeed been released earlier in the week. Then I found the angry posts on the Apple forums of “NOOOOO. Apple has abandoned me!!!”. My 3G is now unsupported by Apple and cannot receive any more iOS updates.

In a lot of ways my fellow 3G owners do have a point. They were still selling the 3G well into the term of the 3GS. It hasn’t been the length of my 2 year AT&T contract and my phone is already unsupported. Not even that, but for someone who bought the 3G the day before it was discontinued (right before the iPhone 4 was released), that person may have started off with iOS4 and a more or less unusable phone.

So is the 3G (and the original iPhone) just a fluke? I have neither the circumstantial or the benchmarking evidence to predict whether the 3GS will stand the test of time longer. I’m disappointed that I own such a remarkable piece of hardware (in the grand scheme of things) and yet a lot of days I feel more crippled than I was with my WM6 phone or any of the feature phones I used to own.

What’s the solution? I think Apple should stop selling their old hardware a little sooner. It’s very clear that they don’t have any desire to make two tiers of phone hardware, so they shouldn’t accept having the de-facto tiers of old and new.