Category Archives: Resources

Other resources that you will find helpful as an app developer


APE: Author, Publisher, Entrepreneur Book Preview

APE is an new eBook by Guy Kawasaki and Shawn Welch about how to publish books in the digital landscape. For those of you who don’t, Guy Kawasaki has written many books about tech and entrepreneurship that are always well done and well received. Shawn Welch is one of us, a mobile app developer.

FULL DISCLOSURE I was contacted to review this book and so didn’t seek this out on my own devices. Also, all the links to books here and on this site in general are amazon affiliate links. This doesn’t assume any endorsement, just that I’m talking about books I think you’ll (and me) will be interested in.

So, APE comes out next Monday, December 10th but you can pre-order the book now. I’m about 25% of the way and so far I’m very impressed. I’ve self-published a book myself (pre-Kindle days) and I have published with a traditional publisher and everything that I’ve read in APE so far checks out.


This book will give you the direction you need to really self-publish or traditionally publish your book. You’ll be surprised how possible it is to publish an ebook or even a traditional book (which they seem to recommend). They are also very honest in APE when laying out the sometimes grim realities of being an author (both traditional and self). This is both inside baseball and a roadmap to becoming an author. If that’s your dream this book is well worth the $9.99 price tag (even while I’m only 25% through).

Keep your eye on this blog for my full review when I’m done the book. Or pre-order the book now my clicking through this Amazon link.


Are You Ready to Go Gold?

Finally!  We have found a way to get you the iPhone developer training that you’ve been asking for at a fair and reasonable price.  After training hundreds of developers both online and in-person, we have perfected a program at the Institute that will give you the personal attention that you need as well as a targeted iOS developer training program that will deliver results.


Here’s what we are doing: we’re making our 12 module training program that exposes you to iOS best practices available as a part of a monthly subscription program to Mobile App Mastery Institute.

But, of course that’s not all there is to this deal…

The main thing that we can add now with this subscription model is ongoing and direct help via the Institute’s social network.  So, if you need help with any part of the training or the supplementary content modules we’ll be releasing you can get it directly from us as well as other members.


Once you get past the training hump and start to make your own mobile apps you can stay with us and leverage the connections you develop at the Institute.  Stay in touch, get mentoring, brainstorming and even accountablity from us and other Institute members.
Use our social networking and workaround collaboration tools to share projects and even build companies.


At the end of each month, I’ll go through the Institute to hunt down interesting topics and issues that are coming up.  Using this material as a starting point, I’ll create a video and other content to help solve the problems coming up or help put things into context.  You’ll have a chance to tag forum posts with my username if you want me to give them extra attention.  This is open to Lifetime and Gold Members.

Here’s what to do now: click this link to find out more details and use the form to purchase a subscription:


Why are you charging for Gold Memberships?
Having a solid business model in place allows me to justify spending the time and resources that an ongoing project like this requires.  I’ve learned the hard way (as a customer myself) that you get what you pay for.  While many ventures start of free and with lots of energy at the beginning they die off (or sell out to advertisers) when founders can no longer pay the bills and have to pick up more consulting or other projects.

How is this different than Boot Camp style trainings?

Boot Camp style trainings can be good and I teach them myself both with iOS Code Camp and iPhone Boot Camp.  These take place in a short and defined amount of time.  Especially for software developers, this can be a quick start and all they need.  However, it’s hard to retain information like from a workshop that goes over three days or even three weeks.  A subscription like our Gold Membership gives you the time and space to process the information and grow beyond simply consuming a training program.

Any other questions?  Just comment below to ask me anything about this program.

PS: Don’t forget to click this link to find out more details and use the form to purchase a subscription:

BTW: I’m throwing in a free half hour Skype consult for the first ten people who subscribe to our Gold Membership!  That’s a $125 value (based on my consulting rate).


3d blue painter

Cool iOS Design Resources

Most programmers and software developers need a bit of help when it comes to the idea of design.  Am I wrong?  We get caught up, rightly so usually, in the notion of how to get things done.  Implementation is our speciality.

But, guess what?  Design is an important part of the development process. Here are some resources that you can explore to get just a little bit of help.  Note: some of these resources are affiliates if they happen to have an affilate program.

iOS Designer Resources

Mobile apps require nice interfaces, icons and overall design. Programming is only part of the task in developing an app. Here are some trainings and other types of resources about mobile app design.

The Vault - here you can get some pre-made app themes crafted by Tope who has recently authored some guest posts on this blog about customizing your table view cells and tab bars.  This is a way to fast forward and practically outsource your design process on the cheap.

price: $47-$140 (affiliate)

Mobile Patterns -  a website about mobile designs so you can use this as a source of inspiration about your own mobile app designs.
price: free

Glyphish - nifty icons that you can use in your tab bar and toolbars.
price: $29

OmniGraffle - this is a storyboarding system that helps you design iOS apps and also other constructs like flow charts. Available for Macand iPad.
price: $49 for iPad, $199 for Mac (affiliate)

Tapptics - if you want to completely customize your app’s graphics Jen from Tappics can help you out. Her product includes 100′s of design files, tutorials on using graphics programs to make UI elements and programming tutorials for customizing UI. She throws in some marketing and outsourcing tips as well.

price: $97-$597 (affiliate)

Do you have any great design resources to add to this collection?


Are You Interested In Using .NET & C# To Make iPhone Apps?

Believe it or not, I cut my teeth in programming by learning .NET and C# for Windows computers. The reason I went this route, like thousands of other programmers, is that Windows was used where I used to work. And knowing .NET is like having a key to doing anything you want on Windows computers. For the years I programmed in .NET I did enjoy the experience.

The first thing I asked when I wanted to make iPhone apps was, Can I do this on Windows and/or with the tools I’m familiar with like .NET?

Three years ago the answer was NO.  Today, you have tons of options including .NET, HTML and JavaScript.  You still need a Mac though.  A few weeks ago I sat in on a talk by Mike Bluestein on how to make iPhone apps with .NET using MonoTouch.  Being a .NET veteren I decided to give MonoTouch a go.

First Thing I Noticed When I Tried MonoTouch

So I assumed I could simply download the trial package from Xamarin and jump in (like you would with regular XCode). Of course, as I should have guessed that was not to be the case. After the package from Xamarin finished installing it just ended with no indication of what to do next. It turned out that I need to download a bunch of other open source frameworks first. Not a good start, but I decided to move on – guess I’ve been spoiled by using Apple products now for three years.

So, there were a total of three downloads (+1 if you don’t have XCode yet) before I could test MonoTouch out on my Mac. That being said I was able to get everything installed and running in a about 20 minutes. So, let’s move on from this initial clunkiness.

First Impressions Of MonoDevelop

Keep in mind that Mono and MonoDevelop are open source projects built by the community and not a product like MonoTouch. Since I’ve last looked at Mono years ago I can say that the tools have advanced significantly. What I did first was create a Storyboard based single scene iPhone app. This essentially works in the same was as XCode. Here is the screen I got when I did this (this is the .NET code in the view controller):

All the UI is still handled by XCode so when you click on the storyboard XCode with open up with Interface Builder all set up. It was a pretty trivial task to get my app to say Hello World using a label.

Compared to XCode or Microsoft’s Visual Studio, MonoDevelop seems very basic and not as pretty as us Mac-spoiled Window refugees would like. Still, the .NET code is there and the seems to look as nice as I remember it.  Switching between XCode and another IDE seems tired but it actually works pretty well, especially with storyboards.


While MonoDevelop and Mono are both open source and supported by the community, MonoTouch is something that you must buy (but you can try for free).  MonoTouch gives you bindings from iOS to .NET and the idea is that you can simply use .NET to access all the familiar iOS frameworks and components like UIKit.

Again, this gives you C# as the programming language and .NET as the platform and so you also some of the .NET standards like LINQ that you don’t get in iOS.

UIAlertView alert = new UIAlertView("UIAlertView C#", "Hi", null, "Cancel", null);

What is nice about this is that you get .NET’s data storage and web services frameworks so if these are a big part of your workflow then you may want to consider this. This includes SOAP, LINQ and other stuff that you are probably familiar with as a .NET developer and sorely miss as an iOS developer.

Whose MonoTouch For?

Admittedly, MonoTouch is not for everyone.  The main audience appears to be developers in big companies who are .NET experts and want iPhone apps.  So, if you are not willing to learn Objective-C (or your boss is not supporting you) then this may be a viable alternative.  Or if you workflow absolutely requires some of the .NET features then this may be the only way to do.

Bottom Line

In my experience, you should always just go for the native platform.  iOS app development is already a tricky business – why double your chances of something weird happening when you are coding?  Plus, since you need to learn the frameworks the only real gain is that you can avoid Objective-C.  Honestly though, learning Objective-C was not the hardest part of the transition from .NET to iOS and I can’t see how this convoluted workaround is really a good solution.

What Do You Think About Third Party Alternatives To iOS SDK For Building iOS Apps?


Have You Seen These Mobile App Infrastructure Resources?

Backend services that are hard and expensive to do on your own can be handed off to experts who will help manage these activities at low cost.  Most of the time we as programmers try and do this all ourselves but that’s a mistake.  Here is my list of web based services that you can use for your mobile app business.

Bluehost Web Hosting - Bluehost is an easy to use web hosting service that you can use to set up your own domain, branded email address and host your WordPress and/or Ruby on Rails or other web services installation. It’s a deal for the price when you are just starting out.

price: $5.95 per month (affiliate)

AppifyWP - This is a slick WordPress theme for iPhone, iPad, Mac and Android apps. You can get a shiny gleaming site up in minutes with this theme and Bluehost web hosting.  AppifyWP has recently added a new mobile theme which makes them a number one choice.

price: $49 (affiliate)

Test Flight - this service helps you manage your beta testers.  You get reports, team management, crash reports and painless beta app distribution.  Honestly, I wouldn’t try this alone…

price: free

Urban Airship - Urban Airship will help you manage push notifications, subscriptions and in-app purchases.

price: free to $499 per year

Parse - now this is really cool. You can use parse to create your own RESTful web service on their backend. It takes 20 minutes to set up and you can use this in your iOS app, Android app and even on your website.

price: free to $99 per month (currently in beta)

Comparison of XML Parsers - If you need to use XML to access you web service you have some choices to make. This article does a side by side comparison of the most popular XML parsers that you can use including the built in iOS parser NSXMLParser.

price: free


Building Web Apps With Objective-C

There are two camps when it comes to Objective-C programmers: the lovers and the haters.  This post is for all the Objective-C lovers out there.

Did you know that you can make web apps with Objective-C?

Let’s back up for one second: if you haven’t built a web app yet you should realize that there are lots of ways to do this.  The most basic is to use a combination of HTML, JavaScript, CSS and a backend web service of come kind to craft an app that will be used in a user’s browser.  These technologies are standardized so you can make sure you’re app will work with any user’s browser if you are careful.

There are other higher level platforms available to you that you can use to make web apps.  Ruby On Rails is a popular solution along with PHP, .NET, Java and probably hundreds more.  In fact, it’s possible that the platform you work with now has support for web apps.

Objective-C programmers however find out quickly that XCode and Apple doesn’t have support for web based apps of any kind.  For Objective-C and Cocoa enthusiasts this is a real bummer.

But Wait! Objective-J Saves The Day

Objective-What?  Objective-J is a programming language that is based on Objective-C that is designed to work with web apps.  The J comes from the idea that Objective-J is a higher level interface for Javascript.  Javascript is kind of a mess, but when you put Objective-J on top of Javascript coding web apps can be an elegant experience.

For example, here is code that you would use to set up a basic Hello World App using Objective-J code:

@import <Foundation/CPObject.j>

@implementation AppController : CPObject{

- (void)applicationDidFinishLaunching:(CPNotification)aNotification{

    var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask],
        contentView = [theWindow contentView];

    var label = [[CPTextField alloc] initWithFrame:CGRectMakeZero()];

    [label setStringValue:@"Hello World!"];
    [label setFont:[CPFont boldSystemFontOfSize:24.0]];

    [label sizeToFit];

    [label setAutoresizingMask:CPViewMinXMargin | CPViewMaxXMargin | CPViewMinYMargin | CPViewMaxYMargin];
    [label setCenter:[contentView center]];

    [contentView addSubview:label];

    [theWindow orderFront:self];



When you run this app in Safari you get this:

Pretty Cool Huh? You can download the demo where this code is hosted from the Cappuccino Web Framework site. This site is the hub for Objective-J and Cappuccino development. Cappuccino is the name of the web framework that is used with Objective-J to make web apps.

Objective-C is the programming language and you use to make iOS app with Cocoa and Cocoa-Touch, while Objective-J is the programming language that you use to make web apps with Cappuccino. Objective-J and Cappuccino follow the same design patterns as Objective-C and Cocoa.

Impression Of Objective-J, Cappuccino and Web Apps

First things first: this is not a cross-platform solution and the purpose of this project is not to let you copy and paste your Mac app code to be used in a web app. In fact, you probably won’t use any of the XCode tools to work with this. Objective-J and Cappuccino are completely separate from the desktop and mobile tools, so you may end up using a different toolset to code these web apps.

That being said, from what I’ve seen so far this is a very powerful and cohesive way to make web apps. The framework is very rich and it really looks and feels like desktop app code. It’s well worth your time if you are very comfortable with Objective-C programming already and want to be able to quickly deploy polished looking web apps.

The best thing to do is download and try out some of the demos at the Cappuccino Web Framework website.  Let me know what you think and how this compares with other web frameworks for apps.

What are your impressions of Objective-J and Cappuccino?


How To Design A Custom Tab Bar Controller

This is the second post in the App Design Customization series. You can read the first post here where we designed a custom UITableViewCell.

In this post, I will walk you through how you can design the Tab bar in the screenshot below. The Buttons in the Tab bar have icons which you can customize and one of the icons has a red badge on it. We shall also go into detail on how to create the badge

We shall use some iPhone App Design files to implement the look and feel of the app. At the end of this post I will include a sample project and a link to where you can also get design files for your app.

Apple has released some new methods in iOS 5 that makes it so much easier to customize the UIKit controls. Up until now it was a pain to do that.
So let’s get right to it.

Implementing the User Interface

Run Xcode and create a new sample project. Select the Single View Project and give it any name you want.

Add the following piece of code in the AppDelegate.m file. This gives us a shell to start customizing our tab bar.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    UITabBarController *tabController = [[UITabBarController alloc] init];

    UIViewController *viewController1 = [[UIViewController alloc] init];

    UIViewController *viewController2 = [[UIViewController alloc] init];

    UIViewController *viewController3 = [[UIViewController alloc] init];

    UIViewController *viewController4 = [[UIViewController alloc] init];

    tabController.viewControllers = [NSArray arrayWithObjects:viewController1,
                                     viewController4, nil];

    self.window.rootViewController = tabController;

    [self.window makeKeyAndVisible];
    return YES;

The code adds 4 empty views and adds them to a Tab Controller. Run the application and you will get an empty app that looks like the sample below. Kind of boring, right? Have some patience…. :-)

Adding New Tabs To the Controller

In the sample project, there is a design resources folder with four icons included. These icons are called chats.png, settings.png, send-email.png and friends.png.

So let’s create UITabBarItems for all the four icons.

UITabBarItem *tab1 = [[UITabBarItem alloc] initWithTitle:@"Chats" image:[UIImage imageNamed:@"chats.png"] tag:1];

This will create a new UITabBarItem with the image chats.png and the title Chats. Now we will set the UITabBarItem as the item for the first View Controller..

[viewController1 setTabBarItem:tab1];

This is how our application:DidFinishLaunchingWithOptions method looks like.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    UITabBarController *tabController = [[UITabBarController alloc] init];

    UIViewController *viewController1 = [[UIViewController alloc] init];

    UITabBarItem *tab1 = [[UITabBarItem alloc] initWithTitle:@"Chats" image:[UIImage imageNamed:@"chats.png"] tag:1];
    [viewController1 setTabBarItem:tab1];

    UIViewController *viewController2 = [[UIViewController alloc] init];

    UIViewController *viewController3 = [[UIViewController alloc] init];

    UIViewController *viewController4 = [[UIViewController alloc] init];

    tabController.viewControllers = [NSArray arrayWithObjects:viewController1,
                                     viewController4, nil];

    self.window.rootViewController = tabController;

    [self.window makeKeyAndVisible];
    return YES;

If you run this in the simulator, you should see the something similar to the image below.

That looks better now doesn’t it? Let’s repeat the same structure for all the tabs.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    UITabBarController *tabController = [[UITabBarController alloc] init];

    UIViewController *viewController1 = [[UIViewController alloc] init];

    UITabBarItem *tab1 = [[UITabBarItem alloc] initWithTitle:@"Chats"
                                                       image:[UIImage imageNamed:@"chats.png"] tag:1];
    [viewController1 setTabBarItem:tab1];

    UIViewController *viewController2 = [[UIViewController alloc] init];
    UITabBarItem *tab2 = [[UITabBarItem alloc] initWithTitle:@"Settings"
                                                       image:[UIImage imageNamed:@settings.png"] tag:2];
    [viewController2 setTabBarItem:tab2];

    UIViewController *viewController3 = [[UIViewController alloc] init];
    UITabBarItem *tab3 = [[UITabBarItem alloc] initWithTitle:@"Email"
                                                       image:[UIImage imageNamed:@"send-email.png"] tag:3];
    [viewController3 setTabBarItem:tab3];

    UIViewController *viewController4 = [[UIViewController alloc] init];
    UITabBarItem *tab4 = [[UITabBarItem alloc] initWithTitle:@"Friends"
                                                       image:[UIImage imageNamed:@"friends.png"] tag:4];
    [viewController4 setTabBarItem:tab4];    

    tabController.viewControllers = [NSArray arrayWithObjects:viewController1,
                                     viewController4, nil];

    self.window.rootViewController = tabController;

    [self.window makeKeyAndVisible];
    return YES;

When you run the app in the simulator, you should get four icons like below.

Adding A Badge

In the initial screenshot we had a red badge on one of the icons. Here is how to add the badge.

[tab1 setBadge:@"25"];

Easy right, the code above adds the value 25 in a red view above the the icon like below. This can be used to set status updates for example.

Where To Get Design Files For Your App

That’s all folks, here is the link to download the sample project. If you would like to have get design files for your app, head over to App Design Vault.

As a special bonus for Matt’s readers, I am giving away a bonus theme for you if you buy one theme from the Vault.

Click here to get two themes for the price of one.

[box type="info"] This is a guest post by Tope who is the Vault Overseer at App Design Vault where you get great iPhone App Design that will help make your app a Top-seller without blowing your budget on expensive designers. When he is not tending to the Vault 5km below a bank in Switzerland, he can teach you how to design an app in 1 hour.[/box]


Here is a Quick Way To Make Your Apps Stand Out In The App Store

When the App Store launched in 2008, it was like the Wild West. Everyone was still trying to figure things out it was easy to throw up an app and have it succeed. Now, after three years and many iterations, the app store is now a mature place of business and your app needs to have a unique strategy for it to succeed.

With over half a million Apps in the App store, your app needs to stand out from the crowd to get those downloads it needs. It has to be able to grab the attention of someone browsing around in the store. How can your app achieve that?

One good way is to have a good design, one that is different from all the apps competing for attention. A lot of apps use the default set of controls provided by UIKit. If yours takes that a bit further and puts a different spin on things, it will easily stand head and shoulders above the rest

Roadblocks Stopping You From Getting Good Design

Getting great design doesn’t come easy though. We are developers and I will be the first to admit that design is not my strong point. You may know how to use Photoshop to do the odd banner or text design but when faced with designing a fully blown app, it can take hours of hair pulling and a design that is below par. Writing code is so much easier, isn’t it?

The other option is to hire a designer, but that can be an expensive option. To get a very good designer that knows how to design iPhone Apps, you will have to spend upwards of $1000. It is a risk because you are not sure of getting a return on that investment.

So what other options to do you have?

How To Overcome The Roadblocks and Make Your App Stand Out

I was told about a new website called App Design Vault. The founder, Tope, wrote a useful blog post on how to design a UITableViewCell and pointed me to his site.

You get to download iPhone App design themes which you can directly use or tweak them to suit your apps. Now you can have a jump start to getting the design your app needs.

Look out for a special deal for HowToMakeiPhoneApps readers at the end of this post.

Here is a sample of the designs you can download from App Design Vault.

Foody – Recipe App Design

PhotoPad – iPad Photobook App

PodRadio – Multimedia App Design

Social Boo – Social Networking App design

Here are some of the reasons why you should get your designs from the Vault

Saves You Time

All of the themes come with sample XCode projects that you can run in minutes to see how the designs are done.  You can go from download to tweaking your final app in half an hour. Now you can kiss those long hours spent in Photoshop goodbye.

Saves You Money

Previously, you had to spend over $1000 to get a good designer to work on your app. All the themes at App Design Vault cost $70. Now you can try out the themes, design your apps and not worry about having to pay out tons of money up-front.

Helps You Sell More Apps

At the beginning of this post, having a custom design makes your app stand head and shoulders above your competition. Your potential customers will now see you as a professional publisher and not just a hobby coder.

Special Bonus for How To Make iPhone App Readers

Tope has decided to give a special bonus to you. If you buy a theme from the site, you will get a second one as a free bonus.

To get your special deal, click the “Buy Now” button on this page to buy 140 credits for $70 instead of $140. You will be logged into the Vault where you are assigned 140 credits with which you can use to download 2 themes of your choice.

All themes come with a lifetime guarantee, unlike having 30 days to decide if it is right for you. There is no time limit on when you can ask for your money back.

[NOTE: Tope is an affiliate partner]


Create Your App’s Web Backend In Five Minutes Or Less!

If you think about it, most world-class iOS utility apps have some kind of web based component. Developers leverage the web in all sorts of ways: synching files across devices, sharing user generated content and presenting web based content.

You can do all this and more when you bring the web into your app.  But, creating a web backend can be daunting process for many developers.  When it comes down to it, you usually have two options when deciding to add a web backend to your app.  Here they are:

Piggybacking On Other Web Services

For many apps, the best solution is to simply incorporate someone else’s web service into your own app.  You will see this in apps like my own, Tasting Notes, that use DropBox for file  syncing and ShareKit for integrating into social networks.  iCloud apps are also part of this category because they are essentially using Apple’s online service for across device syncing.

Most major web properties will let you use their web API to add support to your app.  Many will help you even more by giving you an SDK for Android and iOS because they usually do what you to reach your customers.

This approach can be great because it’s easy and uses web properties that you users are familiar with.  The downfall to this approach is that you have to follow the other companies rules and constraints.  This is fine if you are doing something that matches their service well (like a Twitter client for instance).  However, you are a bit vulnerable to changes to the web API in terms of implementation and policy (again, Twitter has flip-flopped over how mobile developers can use their API).

Also, other web properties are unlikely to map to your own data model objects.  To get that level of integration, you will need to roll your own web service.

Rolling Your Own Web Service

So, if you want more fine grain control over your web backend the traditional approach is to roll your own.  Now this is where things can get interesting.

If you want to get involved with this you will need to do a whole lot more than what you typically need for a mobile app.  To implement a web backend, you will need: a web server, domain name, a software platform like PHP or Ruby On Rails and code that is responsible for the web backend.

This can be a lot of work and you have to worry about issues like server downtime, security and you have to know how to use a different programming language in addition to Objective-C.

But, having a setup like this gives you a very flexible system to implement pretty much anything you want with no ties to another company.

But Wait, Now There Is An Easy Way To Roll Your Own Web Service

There are a few great new services out there that will give you the power as a developer to create a web backend, on the fly, from right within a client’s app.  What that makes is that you can add a few lines of code to your data model classes and they will automatically get posted to a web data store.

One of the best services that is providing this to use is called Parse.  Parse is essentially providing an instant server for your app.  I’ve tried this myself and within minutes I had my web backed in place.  If I had a few hours I could have mirrored the data I posted to Parse’s web service in my Mac, iPad and even web based apps using jQuery.

The guys at Parse explain this best, so click here to find out more about Parse.  Parse is free while in beta and it looks like they will have a pretty fair pricing plan once they are ready to release.

What you think about using a service like Parse for your web backend?


How To Make An iPhone App

Using your iPhone and iPad is really fun and exciting because of all the apps that you can get to customize your experience.

Using apps is so exciting that tons of people are getting interested in making apps for themselves!

So, the question becomes: how do I make an iPhone app?

How To Make An iPhone App Options

Having the desire to make an iPhone app and having the resources and skills are two very different things. Some people are very technical while others are not. What I’m going to do is list out everything you need to make iphone apps and then go about giving you some options to get this capability yourself.

What You Need To Make iPhone Apps

  • Mac desktop or laptop computer
  • A bank account
  • An Apple Developer account
  • OSX Lion (10.7)
  • XCode 4.2
  • iOS 5
  • Programming Skills
  • Expertise in the Objective-C Programming Language
  • Expertise in the iOS SDK and Cocoa-Touch Frameworks
  • Time to design and develop your iPhone app
  • Time to publish and market your iPhone app
  • A website and support email for your customers
  • The Five iPhone App Publisher’s Requirements

    If you look closely at the list above you’ll see that you are going to need a few broad capabilities to make iPhone apps: access to a developer account, hardware, programming skills, business skills and design skills. Some of you may have some of these things while others will need to fill in some gaps.

    Let’s go into some more detail so you can inventory what you already have, what capabilities you can develop on your own and where to get help from others if necessary.

    MacBook or Apple Desktop Computer

    You will absolutely need an Apple computer to make iPhone apps. This computer must be recent with an Intel based processor. Ideally, your Mac will be running OSX 10.7 Lion for it’s operating system. This is really what you need to be able to develop the most up to date iPhone apps using XCode 4.2 and iOS SDK 5.

    The person who needs this hardware and software is the person who will actually be making the iPhone apps. If this is not you then the programmer you hire will need this. You need a Mac to write the programming code for apps as well as for publishing apps to the Apple app store.

    Apple Developer Account

    Apple is responsible for app developers and will give you all the tools and access you need to make your iPhone apps. However, you will need to sign up for an Apple Developer account to get what you need. This cost $99 per year and gives you access to the most up to date versions of XCode and the iOS SDK. You will also get the infrastructure you need to sell your iPhone apps and ultimately get paid.

    Be sure to have an business bank account that you can submit so that Apple has a way to pay you once you get your account all set up. To registered for an Apple Developer account simple go to to register.

    iOS SDK Programming Skills Needed

    There is not way around this: either you, your partner, your employees or a firm that you are outsourcing to are going to need to be a programmer. To make iPhone apps, you need to use the Objective-C programming language in conjunction with the iOS SDK and Cocoa-Touch frameworks. This is what makes everything go.

    To find out more about how to get yourself trained on iPhone development check out my related article on iPhone training for new iOS app developers.

    If you would like to outsource your programming work I would suggest using a website like ELance, hiring a local computer science student or hiring an expert programmer locally.

    Something you may want to try and do is to partner up with a software developer who already knows how to make iPhone apps. You can find local meetups where developers meet by using the website MeetUp or attending local CocoaHeads meetings.

    Business Skills

    This refers to the more organization activities that need to be done like organizing accounts, bookkeeping, marketing and so on. Most likely, you will be doing most of this yourself in the beginning and many of these details are relatively small since Apple takes care of most of this.

    However, if you can meetup with other people who can help you with the business end you may find yourself at an advantage. So, if you feel confident in the technical aspects of making iPhone apps then you may want to go to the same meetups that I mentioned above to partner up with someone who has complimentary skills.


    Like most people starting out you probably already have an idea for an iPhone app designed and laid out in your mind. This is an important part of the process and actually important enough to spend some time on and even iterating if needed (which is almost always is). By iterating, I mean trying different designs out until you settle on the best one for your iPhone app.

    Like with programming and business you can partner up and get help with design. If you are not an artist then you most certainly will want help with the graphical elements of your design like any custom UI (user interface), screenshots and the app icon (probably the most important thing).

    To get help on getting custom graphics, UI and your app icon you can hire people on a per project basis at sites like ELance. Or you can try the design-centric job site 99Designs (this where I get all my work done).

    Getting Started With Making Your iPhone App

    Ok, so I hope I’ve given you some ideas on how to make an iPhone app. My best advice moving forward is to write out what you can do already, what you want to learn yourself and what you intend on getting help with in the future. Then write out a simple plan to gather all these resources so you can make your vision a reality.