Do any of you have a suggestions on how someone can learn to develop for the Mac Platforms without having to invest a ton of money into hardware and software beforehand? Does Mac have any options to lower the barrier to entry for tinkerers and developers looking to experiment.
The Xcode IDE comes with the OS, but you need to install it (that the "Developer Tools" DVD). If you find yourself without the DVD, you can sigh up (for free) with the Apple Developer program and download a DVD image.
Harder to get lower barrier to entry that providing a professional IDE for free.
If you are trying to avoid buying a mac (hard to see how that's going to work, but OK) you can also build traditional unix software with the usual tool chain (emacs, autoconf, make gcc, maybe Qt or someother cross-platform framework), and cross-compiler for the Macintosh.
It depends exactly what you mean by 'develop for the Mac Platforms'. Since the Mac is essentially a linux BSD machine with a bunch of high-level APIs and a GUI dropped in it's entirely possible to compile code built against portable libraries (like GTK, OpenGL, etc) without access to Mac hardware.
Naturally you'd want to do testing on a real mac from time to time but in truth if you build for cross-platform from day one your MacOSX specific code should be minimal.
If you take this approach you may sacrifice access to some some of the Mac's more glossy features but in return your potential market grows by about 800% (a figure I just made up).
EDIT: Actually I decided to check, Macworld claim Mac's share at ~6%, so coding specifically for Mac cuts your potential market by about 94%. http://www.macworld.com/article/53465/2006/10/marketshare.html
Define a "ton". There will likely be some cost involved, because the Mac platform is really a marriage between hardware and software, so you can't have one without the other. However, some ideas to save:
- If you're a student, use the Apple Computers for Education discount. Right now you can get a free iPod touch with the purchase of a Mac. That gets you both a machine to develop on and a test platform for your apps. You also might be able to use a lab machine for free depending on the school.
- Look for a used or refurbished machine. There are a number of sites that offer these.
- You don't necessarily need the fastest machine in the world to develop on; you just need a Mac. The Mac Mini will work fine, and is about the least expensive general-purpose machine Apple makes.
- Build a Hackintosh. (This is where I put in the disclaimer that Apple doesn't much like this, and there are a number of associated challenges, so YMMV. Google it if you're feeling brave, but it's possible and much less expensive.)
- Depending on the kind of apps you want to write, you could use an iPod touch instead of an iPhone, which would be considerably less expensive. You can also use the iPhone simulator in the SDK, although it's less accurate than an actual device.
In short, there is a certain barrier to entry, but there are ways to reduce it.