The iOS devkit is Mac-only. You will also have to pay a $99 yearly fee to Apple for the right to develop apps that get listed on the App Store.
However, that $99 fee also includes the right to get a testing certificate that lets you push what you develop onto an iPhone, iPad, or iPod Touch to test with. So if you sign up for the developer program, you can test on a real device. You just can't get it loaded onto other people's devices without going through the Apple approval process.
Xcode (the IDE) itself is free. You can probably run iOS apps in a simulator (note it is NOT an emulator) with the free download, but forget about testing on an actual device.
Clearly this program is aimed at professional developers, and for them it is worth the price -- the iOS ecosystem and SDKs being far more developed and refined than Android's. But for a bunch of young padawans just starting out in coding it is prohibitively expensive unfortunately.
Aside from these problems, Objective-C is a bit much for a rank beginner, especially a kid, to bite off and chew. So, for that matter, is Java. It would be possible, and probably a lot more practical, to introduce them to JavaScript and have them develop "Web apps" that run inside an iPhone's Safari web browser. Some quite sophisticated games are possible this way with HTML 5.
The testing certificate makes sense, I was really wondering about that, there's only so much you can test in a simulator (touch screen behaviour, for instance. I'd assume you could emulate it with a mouse, but you can't test the full UX that way).
Good call on the JS/webapps too. I hadn't really considered what language one develops iOS apps in when I started investigating, but from what I've seen about Objective-C, I agree it would be a bit too much.
Personally I was aiming to get them interested in writing simple Python programs, perhaps with PyGame so they can quickly get some graphics on the screen (text console output doesn't have a lot of appeal I'm afraid..). Most important reason is that Python lacks boilerplate--I don't want to make the kids do all sorts of boring set up coding before they get to see some results. (second most important reason is that it's the language I'm currently using most)
Boilerplate might be a bit of an issue with JS web apps too. But "can I put my (GameMaker) game on my website?" is a question asked even more often than how to make apps :) [it is possible btw, but not with the free version of GameMaker]. So maybe I could set up some simple framework with a JS Canvas and see if they'll bite. Maybe even better would be just to code some simple game for myself, for fun, show it off, and I already know of at least two kids that will try real hard to figure out how I pulled that off, and they'll be happy to find out it was written inside the same HTML tags they wrote their website with :) (another good reason is, before I caught the Python-bug, I was coding JS all day :) )
Personally I was aiming to get them interested in writing simple Python programs, perhaps with PyGame so they can quickly get some graphics on the screen (text console output doesn't have a lot of appeal I'm afraid..).
I know some (adult) people who are itching to get into (video) game design. The first thing I always tell them is "Learn to program. Start with Python." Then I point them to PyGame to let them get started building the kinds of programs they set out to build, quickly.
This despite Scheme being my favorite programming language, and the one I "think" in. But Python really is the micro BASIC of the 21st century. It's the best "type commands at it and see what happens" language for beginners. Not to diminish its obvious appeal to professionals, of course.
However, that $99 fee also includes the right to get a testing certificate that lets you push what you develop onto an iPhone, iPad, or iPod Touch to test with. So if you sign up for the developer program, you can test on a real device. You just can't get it loaded onto other people's devices without going through the Apple approval process.
Xcode (the IDE) itself is free. You can probably run iOS apps in a simulator (note it is NOT an emulator) with the free download, but forget about testing on an actual device.
Clearly this program is aimed at professional developers, and for them it is worth the price -- the iOS ecosystem and SDKs being far more developed and refined than Android's. But for a bunch of young padawans just starting out in coding it is prohibitively expensive unfortunately.
Aside from these problems, Objective-C is a bit much for a rank beginner, especially a kid, to bite off and chew. So, for that matter, is Java. It would be possible, and probably a lot more practical, to introduce them to JavaScript and have them develop "Web apps" that run inside an iPhone's Safari web browser. Some quite sophisticated games are possible this way with HTML 5.