How do I start developing applications for iPhone - iphone

Hi
I would like to learn and develop applications for iPhone. Can some one guide me on where to start? I'm new to mobile application development. I have good exp in developing web applications and desktop client applications.

Do you have any experience with C? If not, you should probably start there, then work into learning objective-C, and finally dive into the Apple frameworks (i.e. Cocoa touch).
apple has good documentation at http://developer.apple.com
If you prefer books, I would highly recommend iPhone Programming by Aaron Hilligrass:
Also note that you are free to write iPhone apps and test them on a simulator, but to actually push code to a real device you need to purchase a developer profile for $99

Get a mac. An intel based mac is
required. Basically you need Mac OS
X.
Learn C, Objective-C.
Get the iPhone SDK.
Get a good book on it. Do the examples.
Check out the Stanford Learning Series on iTunes, where you can virtually take the course at Stanford. Do the homework assignments, etc...

As darren has said you'll want a good knowledge of C. You can go along the C#/ objective C route but theres also the Airplay SDK. If you have a good knowledge of C apprently you can make games for iPhone quite easily, not had the chance to try it out yet but looks promising. According to the site COD: Nazi Zombies was made using it, might be worth a look.
http://www.airplaysdk.com/

Related

Flash Programming(Adobe Air) Vs Objective C?

This isnt a Programming quest but i couldn't think of a better place to ask this question..
I recently started Developing Apps for iPhone using Objective C and Apple xcode environment.now i am quite comfortable with Objective c and iPhone SDK. But now my Company has decided to stop using XCode Environment to build apps but use Adobe Air(Flash Programming) to build apps instead and i have been asked to start Studying Flash Programming and using Adobe Air.. since i couldn't find much information regarding developers or apps build with Adobe Air anywhere i had few questions in mind which i thought someone might be able to answer here
Yes Flash will have the best animations i guess but isnt iPhone's Core Animation Framework ,use of Open GL or use of Game Engine's like Cocos2d available for iPhone good enouf if compared with Adobe Flash??
The Utility Apps can be better build with Apple's own Development Environment even if entertainment apps that dont require much development task might be a bit easy with Flash
Apple Development Environment Xcode and iPhone Sdk must have tons of better api's and features then adobe air could offer??
I have no idea how actually Flash Programming is done.. so after getting comfortable with Objective C is it really worthwhile to just let it go and start studying Flash??
IT would be really great if someone can help me with which will be the right process to develop apps for iPhone Objective C or Adobe Flash ??
The advantage of flash, as sosborn said, is that you will be able to easily port the project to Android, iPhone, and other platforms. You guessed correctly when you said that apple's environment will be able to function with less issues. By going from flash to iphone, you may have some conversion issues to fix.
If the company wants to develop for multiple platforms, then that change is totally valid and smart. If the only reason is ease of development from a graphics standpoint, ask them to look into cocos2d. If they really must use flash graphics, they can be pretty easily set up for use with coco.

Where can I find a tutorial for building a simple OpenGL app for an iPhone newbie?

I'd like to get into iPhone development (mainly OpenGL & games stuff, no GUI apps). Got 10+ years experience of thorough Windows development, mostly C++ / win32 api, some OpenGL. However I have absolutely NO experience with Mac or Apple whatsoever.
I'm confident I'll pick up the concepts without any trouble, but I got no clue where to begin, or even how to setup an iPhone development environment. Should I use GCC? or Xcode (is that an IDE and/or compiler?) and is there a step-by-step introduction somewhere to create an initial project?
There's an overkill of info and tutorials out there, but they all seem to assume some initial Mac development knowledge which I don't have. An absolute newbie tutorial on creating an OpenGL "hello world" for iPhone step by step from scratch would be awesome.
Does anyone what would be a good place to start for me?
1 -- The example projects in XCode on the Mac make excellent starting points. XCode is an IDE... and if you set the target to "simulator" it just pops up the iPhone simulator. Fire it up, you can't miss it. Download from developer.apple.com.
2 -- I really liked the book "The iPhone Developer's Cookbook: Building Applications with the iPhone SDK"
3 -- Objective C is kinda quirky but you get used to it quickly enough, plenty of web resources and books are easy to find.
I would also take a look at Stanford University's free iTunes U course in iPhone development. It's a great, thorough explanation of the iPhone platform and Objective-C. There's a "Hello World" tutorial in there, but the videos go much farther and will give you a good deep dive into the ecosystem. There is an OpenGL ES section as well.
If you haven't done so yet, you will need to either buy a Mac or build a Hackintosh, since you have to have OSX for development.
I did a test OpenGL app last fall, and found the best book for 3D on the iPhone was:
iPhone 3D Programming
By: Philip Rideout
It covers both versions of OpenGL ES that you need to be aware of if you want your apps to run on older iphone hardware, although if you only want to target the 3GS and up (and 3gen ipod touch, and ipads) then you can skip to OpenGL ES 2.
It has complete examples, a good explanation, and best of all it recognizes that a lot of people coming to the iPhone for games development already know C++, and it focuses on getting you right into the C++ OpenGL rendering loop. You have to deal with very little objective C, and most of that is well explained with examples that are easy to use.
It doesn't cover game design - it's just to get you going in 3D on iOS, so if you aren't familiar with OpenGL and game design fundamentals you should also invest in one of the many game design and opengl bibles that are available.
As far as programming the iPhone on windows, it's possible, and I have a friend doing it using a hackintosh VM. I decided to just get a cheap mac mini I found on sale when the new ones came out a few years ago. My friend found that his setup worked well enough to get to the stage where he was willing to commit to his app, then he invested money and bought a mac mini. He indicated that development just flies now, compared to his VM, and he wishes he switched sooner.
Whether you have the $500+ to invest in it is up to you, but be aware that there really aren't any other good options for iOS development yet, and you cannot easily submit apps to the apple store without a mac and xcode, so if you plan on going that route, you need to budget for a mac.
For the simplest development environment for someone starting out with iPhone development, you'll want to go with a Mac running Snow Leopard and use Xcode with the iPhone SDK. Xcode is an IDE that contains within it a modified version of the GCC (or LLVM) compiler targeted at producing Mac or iOS binaries. It also includes a full iOS simulator for quickly testing out your applications.
There are ways of doing iPhone development on Windows, but they are extremely difficult to get set up and ultimately more of a curiosity than a practical means of development
There are a good number of getting started resources listed in this question. I recommend the Stanford videos, as well as Apple's getting started videos that you can access through the iOS Dev Center. Apple also has an iOS Getting Started document that acts as a jumping-off point for their other introductory documentation.
Be aware that OpenGL ES is not a simple subject to just jump into. You can easily create an OpenGL ES "Hello World" application by opening Xcode and creating a new project from the OpenGL ES Application template, but you'll have a hard time figuring out what to do after that. However, OpenGL ES is something you can learn independently of Cocoa and Objective-C, so if you want to jump into that topic, I taught a class on the subject which can be found on iTunes U as part of my advanced iOS development course. I walk through the fundamentals of OpenGL ES 1.1 there (2.0 can be found in the fall semester of the course). I also highly recommend Philip Rideout's iPhone 3D Programming book and Jeff LaMarche's series on the topic.
Don't let the initial complexity of OpenGL ES scare you away. You should be able to pick up the basics reasonably quickly if you apply yourself.

A good place to start learning writing apps for the iphone?

I was wondering what would be the steps I need to follow if I am just an individual looking to write my own apps and get it approved by apple to feature on their store. Also, is it just objective-c I need to learn or what other skills would I require ?
What would be a good tutorial or a place to start ? What are the tools I require? I found this but still for those of you developing there...I would appreciate any help sorry if this was too generic..all I want is good direction..
Personally I think that books are a good way to learn. For example, here are a few:
http://www.markj.net/iphone-development-programming-books/
You will need:
An Intel Mac
XCode
A $99 developer fee if you want to actually build for a device/put it on the actual device
I recently started with iPhone app development in school. I read the Head First iPhone book which was a decent start just to get into it. I highly recommend the iPhone lecture series from Stanford University available for free on iTunes U.
I agree with Andrew M - but would add that Apple's sample code is a good way to learn by example. You can look at code and reference material without becoming an iOS Developer.
iOS Reference Library
You can do a lot in the iPhone Simulator but at some point you will need to pony up $99 (per year) to start testing on devices.

Do you need Xcode to program iPhone apps?

I'm interested in making apps for the iphone. I was wondering if it were possible to make apps, WITHOUT Xcode. the only reason is because I'm dirt poor, and can't afford an Apple.
If it's games you're interested in developing, then another option might be to take a look at Unity (http://unity3d.com/). This would let you develop on the PC for free in a friendly environment for a beginner. If you then develop something that you decide you want to publish on iPhone, then at that point you could invest in a Mac and just rebuild the Unity app for iPhone on that.
Also, Unity lets you write scripts in both C# and Java so you wouldn't have to learn Obj-C.
The short answer is no. The long answer is "not exactly," but you can get started in some ways while you're working on getting access to a Mac you can do the work you'd like to do on.
"XCode" is more or less really two things:
(1) an IDE
(2) a toolchain with a C/ObjC/C++ compiler (really a version of gcc) and a big library of apps
You don't have to use #1 in order to build iPhone Apps, though it's genuinely helpful. You can get by with #2.
But without #2, you're going to have a hard time building an App you can sell in the App store.
So, it depends on what your goal is.
If it really is to build an app and get it out there, the easiest path is probably going to be to find some way to get access to a machine running OS (probably 10.5 and up) you can do development on. That might be talking a friend who has one into letting you spend some scheduled time on it, or it might be working and saving up for a used intel-based Mac mini (probably something you could get for $300), or it might be turning a PC you've got into a Hackintosh (or maybe setting up a Hackintosh VM on the PC if you're sharing it with others who might not want it transformed thusly :).
If your goal is to start learning how to do things while you work out how you're going to do the above, though, the good news is that it's not hard to get a hold of tools that will help you learn the technologies/languages involved in iPhone apps. Like I said earlier, Apple's compiler is really just a version of gcc. You can probably install gcc on your machine and write objective C programs with it. You could also look into GNUStep which could help you get familiar with a lot of the concepts and practices underlying how the Cocoa libraries work for the iPhone and OS X. And you could learn OpenGL ES, which would be great help if you ever end up working on an iPhone game.
Actually You can develop apps without a Mac. You can use a number of languages and tools that enable writing apps for iOS like:
- Python
- PhoneGap
- Appcelerator
- Mono
- Unity3D
- Unreal Engine
These all can export to iOS.
The only step that requires a Mac is publishing to the app store. But You can use any Mac for that, so You can publish from a friend's/neighbour's or actually anyone's Mac. That is the last step when You're sure everything is running perfectly. Perhaps Your application will earn You Your own Mac.
Also there are a number of publishing service providers in the internet (which don't cost nearly as much as a Mac). I don't remember any particular one at the moment, but I'm sure if You search You will find many. Good luck!
Unfortunately, although there are 'alternatives' (phonegap, mono touch, etc.) I believe you ultimately need Xcode and its tools to package/sign/publish your applications.
If you are really motivated though, you can look about ways of installing Mac OS X on a PC, though that is beyond the scope of this website.
In short, you need a mac. There a number of screwed up ways to do this without a mac, but for all intents and purposes you need a mac. A mac mini you can buy used for $300 on ebay will do the trick. You don't need a powerful machine.
Though Xcode itself is free it does require an Intel based Mac running Snow Leopard. You have 2 options:
Buy a refurbished Mac Pro or Mac mini from Apple website. They are not that expensive. You can use non-Apple peripherals with them to bring down the cost. And you will not be disappointed with quality.
Use Hackintosh to run the OS X on other Intel platform. Its hacky, difficult (carshes) and illegal.
Update:
For Objective C you can refer a pretty good documentation of Objective C language at iPhone developer portal. There are many other documents like memory management and human interface guidelines which should help you get started.
Once you have developed the familiarity with Objective C, you can then browse through various programming guides on iPhone development centre. If you want to follow a systematic approach, you may refer to "Beginning iPhone Development" book which I found pretty good.
Yes it's possible to develop applications for the mac/ipad/iphone without Xcode and without a mac/ipad/iphone.I own a imac,an ipad,and and a mac book pro.I tried to develop in xcode.
After some quick search on the internet I found this http://www.gnustep.org/. This is a framework you can use to develop in the objective C language,using GCC (the GNU compiler).There are other tools you can use,like GNU STEP Application project:this seems to be a sort of IDE (I didn't test it yet).
Yes and no. You can use alternative SDK's but they can be a pain to use and don't offer the publish/signing capabilities that Xcode does.

Iphone Developer Program

Well im on the edge about paying $99 dollars to join the Iphone Developer Program, I have the sdk, but im wondering if the program comes with programming lessons or tutorials,
If it doesnt do any of you know where i can learn to make game with opengl es for the iphone/ipod touch??
So my main question is where can i get some good tutorials on programming games/apps for the iphone and ipod touch, and does the Iphone Developer Program come with good lessons on how to program?
Thank You
-techy
Paying the $99 does not give you any additional content or lessons. You already have access to the Apple-supplied sample code. The SDK only provides the ability to test your application on actual hardware, and it allows you to submit applications to the App Store.
The best place to go for beginning tutorials is the Stanford CS193P course which is available online through iTunesU. I would download all this content soon, as it is not guaranteed to be available when the next term starts.
Other than that, I would Google the exact terms that you had in your question: "Open GL ES" "iPhone" "cocoa touch tutorial" There's a ton of content available.
To the resources available with iPhone Dev Package: Yes, there are many resources availible to you as a developer.
http://developer.apple.com/iphone/
There are so many developer tutorials on the net, I think that stanford even released the lessons as videos for free in itunes.
Of course, it depends why you are getting into it. Apple just released facts that there are 100,000 developers, with >60,000 apps in the store. If you are doing it for fun, or to learn something new, then great. If you want to get rich creating fart apps, your time has passed.
There is lots of book available for iPhone development program.