views:

70

answers:

4

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.

+2  A: 

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.

dmckee
But can I buy JUST the OS and install it on a Windows machine?
Achilles
You *can* buy the OS, but the license prohibits you from installing it on unapproved hardware. It *can* be done anyway, but I don't know how and can't guarantee that XCode will work on a hackintosh.
dmckee
dude, just find a job, work for a week (or two) and buy a mac mini for 500 usd. Takes less time than hacking Mac OS on non-standard hardware.
mvds
@Achilles: No. It violates the EULA, as far as I know. A developer version was available briefly, around the time they moved to x86-based hardware — but other versions of OSX may not be used this way.
You
That's still a high barrier to entry...hardware cost is a concern...
Achilles
**edit** work two days and buy a second hand macbook with a big scratch in the screen for 100 usd.
mvds
@MVDS I have a job developing for Windows...they made it easy to develop my skills.
Achilles
@Achilles: *"they made it easy to develop my skills"* Right. You got access to a windows box, installed an IDE and got started...whereas with the mac you need to get access to a mac, install the IDE and get started.
dmckee
@dmckee dude I'm not trying to turn this into some religous battle. I'm expressing interest in the Mac platform. Window machines are EVERYWHERE, Mac's arent. If I need a Mac then that's the answer to my question and I can accept that.
Achilles
@Achilles: great that you have a job, use the money to invest in a mac. Working overtime and buying the mac will get you a running MacOS X + IDE sooner than trying to hack it onto some windows box. And you (finally) get some really shiny hardware.
mvds
@Achilles: you can get around the need for the mac, but it will just take some time.
mvds
+2  A: 

There's GNUStep that's trying to create a free version of Cocoa. It runs on UNIXes and on Windows. Take a look at it.

klez
Is this intended as a full reimplementation of the API as mono is for windows? If so, good suggestion.
dmckee
It should become a free Cocoa implementation, with an IDE and an Interface Builder. I think it's a project to keep an eye on.
klez
A: 

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

SpliFF
Mac is *not* linux. It *is* a BSD derived Unix ((tm) even) under the hood, but the carbon and cocoa layers mean that native applications are different from traditional unix apps, so coding to X is fine for other developers and for unix power users, but not good for the general mac user population.
dmckee
sorry, you're right about BSD not linux but apart from that you're not saying anything I didn't just say. If you code for portable libraries you sacrifice some glamour but gain potential share. Wether that matters depends what the application is and the question doesn't specify.
SpliFF
LOL for the edit :-)
klez
Potential Market != Current Market share. Depends on the subject. A professional photographer application has a larger potential market on Mac than windows, whereas anti-virus software has no market on Mac :)
Stephan Eggermont
+1  A: 

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.

Feanor