Picture of Creating your first iOS app
Looking around this site, it occurred to me that there weren't many 'ibles on programming the iOS platform, so I thought I'd fix that deficit. This is a simple "hello, world!" app for iPhone (or iPod Touch, or iPad). This 'ible will also serve the purpose of helping others become familiar with the IDE known as Xcode, which is what you need if you want to program for the iOS platforms.

Step 1: Get Xcode

Picture of Get Xcode
Screen Shot 2012-08-15 at 4.29.05 PM.png
If you already have Xcode, you can skip this step.

If you want to develop apps for iOS, you need the SDK, which is provided with Xcode. Xcode only runs on Mac OS X (yes, Apple is doing that on purpose), so if you are running a windows (or linux, or pretty much any non-Mac OS X) operating system, you have a couple options:

1. Get a mac, by far the easiest, but it can be rather expensive.

2. Find a friend with a mac, if they are nice, they'll let you use it for programming, you should warn them, however, that programming takes a long time.

3. Give up, Those are your legal options, there are some other options that are either illegal, or are in the gray area (meaning it's debatable whether or not it is illegal), so I am not mentioning them, you want to know them, find them yourself, I won't be responsible.

Now that's settled, onto the IDE. Go to the mac app store (available in mac os x 10.6.8 and later) and search Xcode. It's the first option, click on it. Download it, it's a lengthy download, ~4 Gb, so if you have a slow internet connection you may want to consider doing something else while it is downloading.
1-40 of 67Next »
carlmal3 years ago
Would be great if you could include how to get the app onto your device. Thanks for the instructable.

guys, the reason they don't allow you to put apps on your phone is because, then you could put them on any iPhone. this would circumvent the app store. the whole point of the app store is that the only way to get an app on an iPhone is after it has been tested by apple to make sure it works and does what it says it will. it's quality control. ultimately, it's about making sure everything on an iOS device "just works". i for one fully support a business model that allows them to make money while ensuring a quality product. it's the one thing that sets apple products apart. it makes them more expensive, yes, but it's worth it to many people.

A-Nony-Mus (author)  carlmal3 years ago
Unfortunately (and I learned this the hard way), you need to be a part of the paid developer program (US $100/year) in order to put the app on your device.
For your own device, connected with your iTunes, you don't need to be in the developer program - just connect the device for sync.
But if you want your app in the AppStore, you need to be in the program.
best regards
Is it jailbroken?
A-Nony-Mus (author)  MHaakansson3 years ago
I had to join the program to put it on my device, but if you'd post an 'ible on how to do that, I'd love to be proven wrong.
StefyB6 months ago

As an iOS app developer, I suggest you to develop apps with mobile app development platforms. It will save your lots of time as well as you will get plenty of handy features.

I generally use Configure.IT because it provides good features compared to other platforms such as automatic coding, App preview facility, .PSD file export for UI design and many more. You can view the detailed list here:


Jimmy641 year ago

we are ready to help to create your first iOS app. if you need any help, please visit www.taoteapps.com & learn more.


Thanks for sharing this app for iphone development, Iam going to try build a new app.

jerry301 year ago

I am a iphone Developer,with 1month exp, this Tutorial is very helpful for me,thanks for sharing this
I am an iPhone developer and according to me It's a really nice post..It will definitely helps all the iPhone developers. Checking the worth of the website: http://www.appschopper.com
jhomer2 years ago
I hate apples power-based monopoly. You shouldn't have to use a Mac just to legally use their dev software
gumption2 years ago
Thanks for the simple introduction to iOS app development.

FWIW, an alternate approach to the proposed substitution above would be to add another label.

Since I'm using iOS 6, UITextAlignmentCenter is deprecated; a post on StackOverflow (http://stackoverflow.com/questions/12792999/what-are-good-alternatives-to-uitextalignmentcenter-in-ios-6) suggested using NSTextAlignmentCenter instead ... and for backward compatibility, to use the following:

#ifdef __IPHONE_6_0
# define ALIGN_CENTER NSTextAlignmentCenter
# define ALIGN_CENTER UITextAlignmentCenter

I added the following line to ViewController.h (below the @property declaration for label):

@property (strong, nonatomic)UILabel *label2;

and added the following line in ViewController.m (below the @synthesize label; line):

@synthesize label2;

After adding the preprocessor macro proposed in the StackOverflow, and using the code provided above (substituting "label2" for "label" in the added statements), my viewDidLoad method appears as follows:

- (void)viewDidLoad
    [super viewDidLoad];

    // from before:
    self.label.text = @"Hello World!";

    // using a Y coordinate of 200 instead of 0 for label2
    self.label2 = [[UILabel alloc] initWithFrame:CGRectMake(0, 200, 320, 100)];
    self.label2.text = @"Goodbye";
    self.label2.textAlignment = ALIGN_CENTER;
    [self.view addSubview:self.label2];
gumption2 years ago
Note that the second part of Step 4 is no longer necessary (or supported).

Called when the controller’s view is released from memory. (Deprecated in iOS 6.0. Views are no longer purged under low-memory conditions and so this method is never called.)
imjohnbo2 years ago
Great tutorial. But, when I click run, the iOS Simulator screen comes up with a white screen, no label. I've followed your directions except for not using the viewDidUnload function, as it's deprecated in iOS 6.1. Any ideas? Thanks!
A-Nony-Mus (author)  imjohnbo2 years ago
I work on a MBP, so I only have 15 inches of screen size. Ever since apple announced the new iPhone screen size, I have to scroll up and down, like I would with a page, if I want to see the entire app.
Um just wondering but what programming language did you use in this tutorial? Thanks
A-Nony-Mus (author)  ThunderBow982 years ago
It was written in objective-c, an object oriented version of c.
iceng2 years ago
I did the  Hello World ! 
Now, can I mess with the RF output to unlock my car, Only My Car.
I don't want to sell or provide the Xcode to anyone.
Is this possible ??

I am a Linux user and an android user and an Iphone user. They are for different things. I'm a fiddler so Linux and android are great but my wife wants things that work first time and that’s where apple comes in. Like so many things Apples strengths are its weakness. I'm forever downloading apps on the android market that freeze or simply just don't work as there's very little control but I haven't seen an Apple app (no doubt they exist) that didn't do what it said straight out of the tin with no messing. So like I said apple no good for me as I don't mind fiddling and actually like it but perfect for the wife. Would anyone learning how to write Hello world for the first time really fork out $100 just to test if it works? If you’re not going to put your new app on a device then I’m not really sure what the point is. I think if Apple just allowed you to put it on your own device but couldn’t go any further then this may encourage folk like me that have been programming for years and wouldn’t mind a crack at the IOS stuff but I aint gonna pay $100 for the privilege.
If you have a jailbroken ipod you can put it onto your own device easily. Or you should develop your apps on android instead, that way you can have it on your own device for free, and if/when it works you could pay the $25 to put it on the market.
Its probably because most people today, no matter how much they say they want to help the world, will help themselves first... its all about the $$$ and the Ego. Sad really, this world could be so much cooler... Imagine if there was no BS out there? everyone got along, no one being snarky or cocky, you could actually have a good day, every day...lol
A-Nony-Mus (author)  zacker3 years ago
Just remember, in this economy, in order to help others, you have to have $$$ first.
championx53 years ago
Quick question, I'm currently making my own RPG with RPG Maker VX Ace and i'd like to know if there was anyway i could make it into an app?
Nice Iabble for an app introduction mon

In your case I recommend Construct 2 http://www.scirra.com/construct2
its originally free and when your "app" is ready then you may decide to use either of the licenses they offer. In my case I just upload the finish product as a web app to my server for testing up til i'm happy with it.

Cheers and happy hunting/programming/iabbling or whatever...-ing :)
A-Nony-Mus (author)  championx53 years ago
Don't know, never heard of that software before now. I know that unity has a way of making iOS apps, so it wouldn't surprise me if this did.
hojijoon3 years ago
very nice thank you bro!
zacker3 years ago
all that just to say Hello World? whats it take to make an actual app like these photo editing apps and such?
A-Nony-Mus (author)  zacker3 years ago
Apple has tons of sample code if you want to take a look at that and get the idea of the size of an average program.
remendab zacker3 years ago
That is not all that much work - really. With much power comes much responsibility, meaning that there are many small things required just to get up and running, but once you are, running that is, the next steps are not that much more complex
zacker remendab3 years ago
...like baby steps.. lol Thanks!
Very nice introduction to writing an app! This could be the road to riches for someone with a good idea an a willingness to learn.

Thank you!!
I'm not rich enough for 'i' stuff. I'll have to learn how program Android clones!!
Who's with me, lot's I'll bet!, erm a few maybe?!
Read my post below... You don't need an "i" machine to develop for iOS... The author was more than a little inaccurate by telling everyone there is no "legal" way to develop for iOS without a Mac machine...
perfo3 years ago
Hello, thanks for the ible.
Can the Xcode be run on an iphone or IPad? With a big screen and keyboard attached it could be an option I'm guessing. Second question is once you've written this app, how do you publish it? Say you have one of those super expensive MAC and wrote this app then how do you get it on to your Iphone and run it?
I'd like to see a simple app with a button that did something, i.e. turn the LED on and off just to see how you would interface with the iphones hardware.
Thanks again fella.
A-Nony-Mus (author)  perfo3 years ago
Unfortunately, to test the apps you write on your devices, you have to be a member of the paid developer program (US $100/year).
Oh...no wonder it wasn't obvious. Thanks for replying.
HandySun3 years ago
First of all, I have been modifying and making my own code for years now, and this makes sense to me. But from the perspective of someone who has never worked this code, it will make no sense at all to them.

I really suggest if you plan on doing more of these, you get WAY more in depth or just don't do it at all. You're just going to confuse and frustrate people who are new to programming for this reason.

If your instruction was pointed at people who know coding, then why on earth would you do something this basic? In this case it would have been better to make a simple button that turns the camera light on.
iFirefly3 years ago
Hey I look forward to reading this through and hope I can pick up some skills, so thanks in advance!

I did want to let everyone know that there is an alternative to Apple hardware so you can use cheaper Windows computers and run Mac OSX to program your iOS apps.

Its called "Hackintosh" and if you do an Internet search on that term alone, you will find the information necessary to determine which computer processor, video card and memory requirements to succeed. I have never done it myself, but have read several sites' worth and it seems fairly straightforward.
TimPayne3 years ago
Nice! Thanks for creating this Instructable.
1-40 of 67Next »