While this question does not involve any code, it does involve problems stemming from the fact that I don't own a Mac, and the impact that has on apps I'm working on where I do have access to a Mac. It's also a long read, so please bear with me.
iOS 4 and iPhone SDK 4 have been released; with that, I've made the obligatory upgrade on my primary-use iPhone 3GS (in other words, my iPhone 3GS). Now I'm running iOS 4 and enjoying its new features, and it's all good.
As a developer though, I'm having a bit of trouble. Here's my predicament right now:
- The apps that I'm working on, which will actually become finished products for App Store distribution and not practice projects, are in early stages of development (i.e. they're past most of the planning stuff, but not design/feature-complete yet)
- As far as I've heard, for device testing, iPhone SDK < 4 cannot create a debug binary that installs on my iOS 4 device, but correct me if I heard wrongly
- The Macs at my school still run Leopard and iPhone SDK 3.1.3, and I've been told by the management that the school has no current plans to move to Snow Leopard
- I'm not in a position to convince my school to upgrade, as iOS development is not even in any of its courses; in fact, I'm learning iOS development on my own — the school just happens to let me use its Macs
- Most importantly, I still can't own my own Mac yet; this is a personal matter that I would most gladly deal with if only it was in my control
Basically, if I am to continue to write apps for iOS, until I find access to a Mac running Snow Leopard and iPhone SDK 4, I'll have to put up with Leopard and iPhone SDK 3.1.3. That means I either need to downgrade my iPhone's iOS to 3.1.3, or buy a device, install 3.1.3 and test on that device. Not to mention the 'awww, that sucks' feeling associated with how I won't get to enjoy the new APIs introduced by iOS 4.
But I can't see any good reason to continue to develop against the old SDK. Sure, testing with pre-4 software works, but on SDK 4 I can always target pre-4 software so that it'll install just fine on devices with that software. Even once I finally do get to continue on a Mac running Snow Leopard and SDK 4, I'm not sure how much work it'd be to go through my code and make adjustments to it to prepare it for iOS 4 compatibility and so on.
The only benefit I can think of by continuing with the old SDK is that in terms of how a developer works with a platform like iOS, there's hardly any difference other than some APIs being only available on the new iOS. For example, Xcode is still Xcode, Interface Builder is still Interface Builder, most Cocoa Touch development concepts remain the same, the design principles Apple proposes in their iPhone HIG remain the same and so on. That means I can still work on the old SDK, and while the extra time spent eventually making iOS 4-specific adjustments still applies, there isn't much that I need to relearn. I'd have had enough experience and practice to move on seamlessly and painlessly.
Still, I'm having trouble making a decision on how to move on from here. Both the development of my apps and my learning experience with the iPhone SDK have totally stalled because of this. The ideal solution would simply be to get my own Mac so I can get started with the new SDK right away, but as I said that's still out of my control right now, so it's pretty much a 'once I can' thing.
I have an iPhone, and I have a developer's and user's passion for the platform. I just don't know how to use the resources I currently have given their imminent obsolescence with all the new stuff that's out now. I could use some real advice here (speaking of which, I'm not sure, should this question be CW?) so thanks in advance for all the advice and sorry for my wordy question.
EDIT: I'm fine with sticking to the old SDK until the day I own a Mac, but I'm not sure whether or not that's healthy for my situation in the long run given that most others who are able to move on have moved on.