Making a living with apps

Hi,
I am 15 years old still at secondary school finishing it in 2months time. I have learned Object oriented java at my school so, that is the only programming knowledge I have. I really love programming and would like to once become a game developer/software developer and also make games for ios and maybe android. I need to know where to start so maybe in a years time I could release my first ios app. What is the path I need to take what books to read what languages and API's to learn before stepping into ios.

You're well positioned to get a good head-start then, because while you're in school you'll have a lot more time to devote to this than when you graduate. I know that seems disingenuous now (I recall believing that I was incredibly busy while in school) but it's true: you have progressively less free time the older you get.

That said, you can leverage your existing Java skillset on the Android platform right now. I don't know what kind of frameworks exist there to help you get going, (nor would I expect a large wealth of that knowledge here, on an iOS/Mac-centric forum).

I would also take a hard look at Unity 3D if I were you. I've always viewed it as a toy and not for real work, but the Unity 5 demo reel has forced me to go through a real existential re-evaluation. You'd be using C# (or optionally JavaScript, if that's more to your fancy) when using Unity3D. I think the largest advantages of using Unity are following:

There's a significant community using Unity3D. Any problem or question you might have are probably already asked and answered.

C# looks and feels a lot like Java, so it'll be easy for you to learn.

The Unity3D framework will allow you to work in a well-architected framework, instead of trying to invent all that architecture yourself

When I was your age (and before, I think) I too wanted to get into video game programming. There wasn't a large wealth of resources for this at the time, however. I remember making something of a nuisance of myself in the Allegro forums, never really groking the SDL manual, and various other failures.

If you're willing to throw yourself at it, I think the time has never been more ripe for a new crop of self-taught programmers to make some fantastically high-quality stuff, faster and more fun than ever before.

Whether you take Unity as a teach tool and cast it off later, or stick with it more long term, I think the techniques and patterns you learn there will apply no matter what platform you chose, whether that's iOS, Mac, Windows, Linux, SteamOS, MetaPro, or what have you.

I dont like unity 3d because the pro version costs money, and 3d is way more difficult than 2d, and you need to design a 3d game world too. I was thinking about buying a book about objective C to learn it and then buy a book about iOS objective c Dev and afterwards buy a book about cocos2d and ios dev OR just start with android and buy a book about android app development because I already know some Java. and then buy a game api book for android.

Unity Pro does cost money, which is a bummer (though, compared to some other tools, not much money). You can do a whole lot with the free version, as well.

If you get the time you should check out the Flying Sweden project from the last uDevGames contest - it was 2D and made in Unity. (Unity does have good 2D support).

If you're looking at straight-up Objective-C development, Cocos2D is what I'd look at. The way I learned Objective-C was I bought the Hillegass book Cocoa Programming for Mac OS X in 2008 (or perhaps it was 2007?) and went from there. Then this Steve dude released an iPhone SDK.

There are a few books on Cocos2D, I don't know how good they are, however.

Since the title of your thread suggests that you would like to make some money with this someday, I'd also suggest that Android is not the platform for you. Every comparison from developers that I've ever seen has shown that Android sales are about 10% of what their iOS sales are (with Windows Phone sales at yet another 10% of what the Android sales are). I haven't seen any numbers recently (within the past year and a half or so) to perpetuate this notion, but that's the last impression I had.

Read every page on there, and most every page that they link to. In the "Language" section is a good short introduction to Obj-C. In the very last section ("Where to Go From Here") is a link to the "Programming With Objective-C" guide which is much more in depth.

At the same time, you may want to read a book specific to game-programming so you don't die of boredom reading a book just about the language itself.

If you're going to learn Objective-C and have ruled out anything 3d for now (not a bad idea), then I would suggest SpriteKit (built into OS X and iOS) or Cocos2d (specifically the inaccurately-named "cocos2d-iphone" variant which is all Obj-C and runs on both OS X and iOS).

There are a ton of books on Cocos2d. Just make sure you get a recently published one since it has changed quite rapidly, or just go with SpriteKit since it hasn't changed at all. Apple has lots of docs and example code on SpriteKit, and there are some books as well.

With Obj-C and SpriteKit or Cocos2d, 95% of what you learn will translate seamlessly between OS X and iOS. Since developing for iOS devices involves some annoying steps, I'd suggest you start off specifically on OS X, and then you can easily move to iOS later, but almost all of the books are iOS-centric, so perhaps if you deal with the iOS hurdles upfront then the you can just follow along with any of those iOS books.