PDA

View Full Version : Starting iPhone Programming




ChrisWilder07
Jan 17, 2009, 05:04 PM
Ok, I want to become an iPhone developer and create and design and sell applications on Apple's App Store. I have no experience what-so-ever in any type of programming. Learning how to write Objective-C Code and creating an iPhone App will be the first thing I do....

What is the BEST way to learn Objective-C and learn how to create these wonderful applications?

What resources should I use?

Any advice is complimented...

Thanks,
ChrisWilder07



wizard
Jan 17, 2009, 05:48 PM
OK, I want to become an iPhone developer and create and design and sell applications on Apple's App Store. I have no experience what-so-ever in any type of programming. Learning how to write Objective-C Code and creating an iPhone App will be the first thing I do....

If you really want to learn how to program and to build good iPhone apps you will need to take a step or 20 back and start with the basics. The quickest way to do this in my opinion is to register for a computer science program at a local college that starts you out with the basics.

The alternative is to get a good book that starts out with the basics of computer science and walks you through that. Then get a good book to cover Objective C.


What is the BEST way to learn Objective-C and learn how to create these wonderful applications?

Learn C first.

Get a good reference book on Objective C and the SDK's that come with the Mac or iPhone.


What resources should I use?

Any advice is complimented...

Huh?

Thanks,
ChrisWilder07

With no programming background at all going straight into Objective C and the iPhone SDK can be tough. I'm not saying it is impossible but it does depend on your skills and ability to grasp the subject. In any event unless you can get some support locally and maybe online, you may run into some significant road blocks. This is why I'd suggest getting into a college program, it gives you the advantage of a professor and a group of people working through the same things. This will work for the basics at least but may not solve the issue of Objective C and the iPhone SDK. Right now that is a platform that has limtied interest academically.

Dave

ChrisWilder07
Jan 17, 2009, 06:25 PM
What if I don't want to do a COLLEGE course>?<

dejo
Jan 17, 2009, 06:40 PM
What if I don't want to do a COLLEGE course>?<
Well, maybe give us a better idea of what you are willing to do.

If you have no programming experience, then you should be prepared, unless you have superstar talent, to spend months educating yourself before you are even ready to start working on your first real iPhone app.

Also, take a peek at the various stickies at the top of this very forum (http://forums.macrumors.com/forumdisplay.php?f=135) and see what you think.

wizard
Jan 18, 2009, 09:36 AM
What if I don't want to do a COLLEGE course>?<

The indications from your posting is that you have no programming background at all, this will make learning everything very difficult in my estimation. It is not impossible but a lot of work and you risk picking up really bad habits. As dejo above suggested a lot of time will be required before you even get to the point of being able to understand iPhone SDK fully. We are talking months if not years.

Note that I've responded more positively, in the past, to people with at least some programmming experience. Even a little indicates at least a little grasp of the art, that is a positive as the wash out rate in college is very high. The problem is that a very large number of people simple don't grasp programming at even the introductory level. We do not know if you will be one of theses or not.

Now all of the above doesn't mean that it is impossible to learn on your own. Some people actually do better that way, but again we don't know if you are one of these. The biggest problem with DIY is that this is a long term commitment on you part to do it right. You also have to avoid the draw of jumping ahead into iPhone SDK before you have a good grounding in the basics.

On a personal note I (many many moons ago) took a few quaters of programming as extra material totally unrelated to my degree studies. Even though those quarters did not cover an entire comp sci program, they have become one of the most valuable parts of my educational career. In some ways money better spent than on the program matriculated into. Now I'm not trying to change your mind here just pointing out that even a little bit of skill and education can be leveraged positively.

So lots of luck.



Dave

nick9191
Jan 18, 2009, 09:55 AM
http://www.amazon.com/Programming-Objective-C-2-0-Developers-Library/dp/0321566157/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1232293783&sr=8-1

Book is a must.

It assumes you have little/no prior programming knowledge and doesn't teach you C before teaching you objective C, which in my opinion is a bad idea anyway.

It also has a chapter on iPhone.

firewood
Jan 18, 2009, 11:50 AM
What is the BEST way to learn Objective-C and learn how to create these wonderful applications?

There's too much to learn at first, unless you are one of the few exceptionally naturally talented types.

Learn to program first, and in some language other than Objective-C. Read several books on beginning programming until they start to seem too easy. Make sure you understand something about data types, program structure, pointers and object oriented programming first. Then jump into learning Obj-C, Cocoa, and iPhone application development.

.

Bubbles3674
Jun 22, 2009, 04:06 PM
Learn to program first, and in some language other than Objective-C. Read several books on beginning programming until they start to seem too easy. Make sure you understand something about data types, program structure, pointers and object oriented programming first. Then jump into learning Obj-C, Cocoa, and iPhone application development.

This is interesting. I would love to write for the Mac and iPhone. I've found it very hard to figure out what needs to be learned in what order. (C, pointers, Objective C, xCode, Interface Builder, etc.)

Virtually every time I work on ONE subject, I seem to get to a brick wall which tells me I need to study something else first! (i.e. C before Objective C. Xcode before C (so I can understand how to RUN a C programme from Xcode, and so on)).

So my question is this:

Assuming someone has no experience of any form of programming except something very simply like good old fashion BASIC, what would people here recommend is the required reading (and in what order!) to become a Mac & iPhone programming expert?

There must be an answer because lots of kids with NO programming experience end up top-notch Mac & iPhone programmers!

iSee
Jun 22, 2009, 05:48 PM
^^^^^^

Start with the Kochan book (2nd Edition).

It's the no-brained starting point for people with little or no experience.
He does step you through the basics like using the tools, etc. And does not assume much beyond a desire to learn.

filjedi
Jun 22, 2009, 11:44 PM
Here are the resources I used to learn iPhone dev:
1. Programming in Objective-C by Stephan Kochan
2. Cocoa Programming for Mac OS X by Aaron Hillegass
3. Beginning iPhone Development: Exploring the iPhone SDK by Dave Mark and Jeff LaMarche

At the same time, I read through Apple's docs several times while studying the books above. You could actually skip the 2nd book, but no iPhone dev books were available when I started learning. Also, it might be good to learn a little about Mac development since the iPhone will eventually be comparable to a Mac. :)

drf1229
Jun 23, 2009, 08:26 AM
My suggestions are:

1. learn an object oriented language such as javascript. You can learn it here (http://www.w3schools.com).

2. Once you are comfortable with object oriented languages, learn C. Your best bet is googling for a beginners C tutorial.

3. Now you're ready to learn -C. Look for a good tutorial, or post a thread in search for one.

Note: This is what I did, but I am still learning -C. It is easy to learn with a background of object oriented languages.

dejo
Jun 23, 2009, 09:17 AM
1. learn an object oriented language such as javascript.
I wouldn't classify JavaScript as a truly object-oriented language.

3. Now you're ready to learn -C
And by "-C" you mean "Objective-C", correct?

toughturtle
Jun 24, 2009, 02:49 PM
Take a class. Start with a class at The Learning Exchange or maybe find a willing CS student to start you on the basics. Then inch your way towards a book. Without having the basics and core concepts down, you might have trouble going through a book... or might just get frustrated.

If, you have loads of spare money, check out Big Nerd Ranch. They have a Beginning ObjC class... I think.

Bubbles3674
Jun 27, 2009, 04:24 AM
Take a class. Start with a class at The Learning Exchange or maybe find a willing CS student to start you on the basics. Then inch your way towards a book. Without having the basics and core concepts down, you might have trouble going through a book... or might just get frustrated.

If, you have loads of spare money, check out Big Nerd Ranch. They have a Beginning ObjC class... I think.

Are you referring to http://www.learningexchange.com/, http://edcommunity.apple.com/ali/ or something else? The first is USA only I think (I'm in UK) and the second appears to be for non-programming issues for students - although I haven't fully studied it yet.

You're right about the books - they're giving me a headache; this is because (as you rightly point out) there are some basics I need to get under my belt first ... if I can just figure out what they are!!

squishydonut
Jun 27, 2009, 11:28 AM
How does the Apple's Obj-C docs compare to Programming in Objective-C (2nd Ed)?

CocoaPuffs
Jun 27, 2009, 04:07 PM
How does the Apple's Obj-C docs compare to Programming in Objective-C (2nd Ed)?
Programming in Objective-C is written for someone learning programming for the first time. Apple's docs are for people with background.

ethana
Jun 27, 2009, 10:47 PM
1. Get a book on iPhone programming and Objective-C. Should you learn C first? Not if you find a good Objective-C book that explains the basics.

2. Jump in and just start trying to do simple stuff. Change a label. Have a button do something. Switch views.

You'll catch on quickly. Just don't loose focus and keep at it. FOCUS on iPhone programming, nothing else for now. FOCUS on the task you are trying to complete. Once you've done a few things, you'll be proud of yourself and start learning more.

DONT GIVE UP. It gets hard sometimes.

Ethan

chrono1081
Jun 28, 2009, 04:02 AM
I got this book:

http://www.amazon.com/Programming-Objective-C-2-0-Developers-Library/dp/0321566157/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1232293783&sr=8-1

and I love it. I've been blowing through it learning Obj-C. Of course though I do have plenty of C++ experience and Visual Basic experience, and C experience, and x86 assembler experience....but...Its still very readable for a beginner.

Some have stated about learning C first however I think that could get messy seeing how C is procedural and Obj-C is object oriented. If you get stuck don't give up. The book has kind of a strange approach to things (classes in the second chapter is unusual) but if you just plug away at whatever your stuck on and do a little online research you should have know problem. Also, while learning programming ALWAYS do the practice sections at the end of the chapters.

Learning the basics is extremely important. They can be boring but without a strong foundation in the basics youll be lost when it comes to graphics API's. Also when learning always create a flowchart of your program, no matter how small. It sounds goofy but has a tremendous learning value.

firewood
Jun 28, 2009, 12:40 PM
Some of the concepts behind object oriented programming in Objective C came from Smalltalk. A good implementation for learning Smalltalk is Squeak. Has anyone tried this book for a non-programmers intro to OOP?

Squeak: Learn Programming with Robots

Or the really elementary tutorials that can be found here?

http://www.squeak.org/

Or the even more elementary Scratch (from MIT)?

http://scratch.mit.edu/

EssentialParado
Jul 7, 2009, 07:48 PM
Don't be put off by everyone else. There are other ways to learn that don't require reading books or taking classes.

If you're like me and the kind of person who likes to learn by experimenting, just find a few basic template examples to begin with. Then you can load one into Xcode, get it running, change bits and pieces of the code… maybe change text, colors, etc. Maybe try adding buttons that make the text change, little things that are easy to implement.

Just by tinkering with the code, if you're logical enough, you'll slowly learn what things do and why they're the way they are, without having to read all about the theory. It's a very easy and bite-size way of learning, and each new 'toy' you want to experiment with is just a google search away…

I learned a lot of languages this way. Admittedly I began with very ugly code that would've been laughed at, but the more I learned, and the more code I was exposed to, the more I could compare and learn how to make it more efficient.

I would say it is probably quicker, and easier to take classes or read a book… but I like suggesting the 'fun' way too. :)

CylonGlitch
Jul 8, 2009, 08:27 AM
It all depends on yourself and your desires. If you are very good at learning things by example, then by all means picking up code and starting to read it and UNDERSTAND it would be useful. But it is often not the most efficient way to do things.

I've been a programmer since the early 80's but my degree is in electrical engineering, specifically semiconductor design. I know tons of different programming languages and I have to say, heading into Objective-C wasn't the easiest of things to do. There are some fundamental differences that make things more challenging and, exciting.

I had to write an iPhone application for a conference next week. I had 3 weeks to do it in, and I knew almost nothing about Objective-C or Mac development. But I now have the app on my phone and it does what I wanted it to do (not a whole lot but it does it). But again, I have a background of knowledge to build upon. I often thought to myself that it may be easier if you haven't had experience to other development systems, but then again, maybe not.

It does take a commitment, this is no easy task, but it isn't impossible either.

EssentialParado
Jul 8, 2009, 06:46 PM
I find it an easier commitment when you're having fun along the way, that was really my point.

Whichever way you think you'll enjoy most is the way you should go, but there's no harm in trying all routes!

TotalLuck
Jul 9, 2009, 12:02 AM
I didn't have any experience when i picked up the first book.( which was Objective C 2.0 second edition) The Kochan book was really easy to get through and has a great forum to go along with the book. The author is also very active there. http://classroomm.com/objective-c/index.php
I started with that book and i am using the Hillgas book and the Stanford class on itunes as well now. the Apple Documentation is a little confusing untill you get to feel comfortable with Ob-C. http://www.stanford.edu/class/cs193p/cgi-bin/index.php

I have been at it for about 4 months now and i am still learning. Its not the jump in and go straight to app building. there is alot to learn. if i make my first publish-able app this year i would be REALLY happy.

Good luck

greg

MrWiseGuy79
May 2, 2011, 04:42 AM
Hey Guys,
Im currently a year 8 in high school with no experience in programing or computer science at all. Me and my friend recently came up with a really good idea for an app, we have designed the landscape, characters, UI, storyline, intros, and everything. All we need to do is program and I have looked all over the net and people have been suggesting to hire someone if you have no experience at programing in objective-C.

Does anyone have any suggestions on how I can learn Objective-C and in what order, because I dont think I can register for a computer science course at a college but I'm willing to read. And if it help my dad has had some experience in C.

Any help would would be greatly appreciated...

balamw
May 2, 2011, 05:36 AM
we have designed the landscape, characters, UI, storyline, intros, and everything.

Sounds like you may need a game engine instead of Objective-C. Check out Cocos2d and learn Lua, perhaps? http://www.cocos2d-iphone.org/

B

dejo
May 2, 2011, 09:49 AM
First, welcome aboard.

Does anyone have any suggestions on how I can learn Objective-C and in what order...

Since you posted in this thread, I would hope you've read it all as well. What, from the previous suggestions, is not to your liking? What style of learning do you prefer? The more specific you can be with us the more specific we can be in our answers.