Build & Publish Your First iPhone App: The Ultimate Guide

Are you considering making your own app? This is what you need to know. Learn about the app ecosystem, programming languages, toolsets, and time and effort involved. Let’s not tell you what you should know, but rather explain how you can actually get started today to get an app published in the App Store.

For your quick reference, here are the shortcuts:

1. Building Blocks Of An App: The Basics

An app is just a piece of computer software running on a smartphone. It’s written by a programmer, and put together with graphic assets created by a designer.

Apps for iPhone are made with a Mac application called Xcode, and programmed in either Swift or Objective-C. Many apps are connected to the internet, which means that they have a back-end that allows storage of data in the cloud or functionality that interconnects users.

Xcode is the application you can use for making native iPhone apps, and it’s only available for Mac OS X. It includes Interface Builder, a tool to visually create the graphical foundation of your app. It’s a scaffolding tool: you can’t make a functional app with it, but you can lay down the groundwork for the GUIs of your app.


Xcode has many useful features, such as Auto Layout for making your interface work on multiple screen resolutions and an iPhone Simulator for testing your app without an actual iPhone.

In order to publish apps in the App Store you need a developer account from Apple. It’s available for $ 99 USD a year, and needs to be renewed each year. Apple has a comprehensive online toolset available for managing new and published apps, called iTunes Connect, as well as an extensive set of documentation.

Additionally, iTunes Connect now features a beta distribution tool called TestFlight. It can be used to distribute your app to beta testers.

2. The App-Making Process

Any app development process roughly follows these steps:

  1. Design. Make a mockup of your app and layout all the components on the screen.
  2. Develop. This step involves coding the app, tying up interfaces with if-this-then-that actions.
  3. Test. Send the app out to beta testers and gather feedback on its performance. Then, solve any errors that arise.
  4. Publish. Get your app past the review process and push it to production in the App Store.

Modern process management often work with iterations on a micro and macro level.

When you’re making a new feature, you always design it first, then code it, then test it, and then push it live. Whether it’s a small component or an entire new part of the app, follow this process.

3. On Swift and Objective-C

iPhone apps are all written in Swift or Objective-C. Swift is the new programming language invented by Apple, announced on June 2, 2014, and subsequently released as a stable 1.0 version on September 9, 2014. It’s a fairly new language and apps entirely written in Swift are just now hitting the App Store.

15 Places to Learn Swift Programming Language For Free

15 Places to Learn Swift Programming Language For Free

If you have been programming with Objective-C, learning Swift would be a breeze as it has inherited a... Read more

Swift is gaining rapidly in popularity and its features are highly acclaimed by both beginner and advanced programmers. The great thing about Swift is that it’s interchangeable with Objective-C. This helps the adoption of Swift by programmers, because they don’t have to rewrite their entire codebase to be compatible with the new language.

People that already have an intermediate-level proficiency in any programming language will need less time to pick up Objective-C or Swift. Especially those that have worked with languages that are similar to Swift, such as Java, PHP or Ruby, should have no problem learning Swift.

But which is better, Swift or Objective-C?

Objective-C is a little bit harder to tackle because it uses a unique syntax. For beginners, Swift is clearly the better option. It’s easier compared to Objective-C and removes overhead from the development process, making the barrier-to-entry for beginners considerably lower.

Despite that, Objective-C is still the standard in many firms around the globe, so legacy code will be Objective-C for the coming years. As an employed iOS developer, you’ll see more Objective-C than Swift.

4. Middleware: Build Once, Run Multiple

Middleware (or cross-platform) like Cordova or PhoneGap, is a popular choice for app developers, because it enables them to write code once and deploy it to both Android and iOS.

Apps for Android are written in Java and they’re not compatible with iOS apps. If you want to make an app for both platforms, but do not want to program the same app twice, middleware is a time-saving option.

Many of these cross-platform tools are based on web technology, such as HTML5, CSS and JavaScript.

PhoneGap is the most widely adopted: it’s being used by 400.000 app developers. PhoneGap has its own build tools and technically it exports an app that can be run and built inside Xcode, making it a “hybrid app”native components combined with HTML5.


PhoneGap now features PhoneGap Build, which replaces the Xcode compiler with a cloud-based solution. PhoneGap is free and released under the open-source Apache Public License v2.

Alternatives to PhoneGap include:

PhoneGap outperforms these alternatives by supported devices (iOS, Android, Windows Phone, BlackBerry OS, Ubuntu and Firefox OS) and supported hardware (accelerometer, camera, etc.).

Downsides To Middleware

Using middleware such as PhoneGap has two major downsides.

Since such tools are all based on web technology, they’re unable to make use of hardware-accelerated native components. Animations, transitions and high-resolution graphics don’t work as well as in a native app, which makes it impossible to use for games or visually intense apps.

Also, using middleware requires good knowledge of compilers and build tools, which makes it an inconvenient option for beginner developers.

5. Design: How Your App Is Used

Not all that is apps is programming. Graphic design is big in the app industry; it’s a requirement for any app that wants to be taken seriously. Are you considering programming your own apps? If your budget allows it, hire a graphic designer. There’s plenty of those around on outsourcing sites like upwork.

That being said, you don’t need a graphic designer if you’re just starting out. On iOS, you can work with the many pre-fab components that Apple is using in their own apps and throughout the operating system’s UI. The standard iPhone user interface components don’t look exceptional, but they’re not bad either. It’s a great way to get started without spending too much time on the graphical look of your app.

Tools and Resources

Human Interface Guidelines gives you a good overview of available components and how to use them.

Icons: Consider using an icon kit such as Glyphish (commercial). They’ve put together hundreds of icons, optimized for iPhone apps, including social media icons, play/stop buttons, and symbols for app-related tasks such as new, edit, and send.

Mockups: Another tool you definitely must use is Balsamiq Mockups (free trial, commercial). It’s a point-and-click editor for making mockups of your apps. A mockup is a rough sketch and it shows and explains how your app works and what it does. Never just start programming: take a step back and rethink your apps UI and layout by making a mockup.

Did you make a sketched mockup, but can’t get a feel for how the app will actually look? Work with the creativetacos’ iOS PSD. They’ve extracted all the GUI components from iOS and made them available as vector graphics. Perfect for making a graphical mockup!

6. How To Enable An App For The Internet

Is your app connected to the internet? Creating a custom back-end with server-side languages like NodeJS, Ruby or PHP can take up lots of time, money and effort. It’s easier to use a Platform-as-a-Service tool, such as Parse.

Parse is a cloud-based solution for storing data offline and online in your app. Say, you’re making a social app with a stream of pictures and status updates. You could use Parse to store that data in the cloud and use their SDK to get it from and to your users.


Using a tool such as Parse completely removes the need to build a custom back-end. Parse’s basic usage tier is free, subsequent tiers start at USD100/month.

Alternatives to Parse are Appcelerator (middleware + PaaS, commercial) and App42 (PaaS + analytics, free tier).

7. Going From Beta To Live

Before an app gets published in the App Store, you need to upload it with iTunes Connect. You enter your app’s basic information like a description, app categories and what app icon to use.

Your app then enters the review process, a requirement from Apple. A reviewer from Apple checks if your app adheres to the Review Guidelines and whether it has bugs. It’s a quality check to ensure only good apps enter the App Store, and from the point of uploading it takes about 2 weeks to get your app reviewed.

More on Hongkiat:

10 FAQs to Creating Your First App

Of course at this point you might still have some burning questions related to creating your very first iOS apps. We’re going to take a look at the top 10 questions new app developers are concerned about.

1. How much does an app cost?

The cost of development of an app can really differ from one contracting company to the other. Outsourcing freelancers can create a simple app for around USD3000. Bigger companies can ask from USD25,000 to USD100,000 for a complex application, including graphic design and back-end programming. Companies like Tinder, Pinterest, Facebook, etc. can spend hundreds of thousands to millions on developing and marketing one app. Just like anywhere else: you get what you pay for.

2. I’m stuck with a programming bug. How do I get help?

A lot of beginner programming questions have been asked already on sites such as StackOverflow. Search for the error message or bug you found, and you’ll most likely find a solution. When asking a question yourself, always search first, and make sure you explain your problem thoroughly and tell the steps you’ve already taken to solve it. Quora is a good medium for asking non-technical questions, such as about business and UX/UI topics.

3. I have a brilliant idea for an app. Where do I start?

If you’re serious about creating a business based on an app, don’t start with programming immediately. First, validate your business idea by pitching to your target audience.

Get in touch with potential customers and survey them, asking for feedback.

Keep in mind that most successful apps solve an immediate problem, in such a way that customers want to pay for it. When you’ve validated your idea, and created a relationship with your first customers, proceed with design and development of the actual app.

4. Do I need an iPhone to create apps?

No, but it’s recommended. Xcode has an iPhone Simulator, that runs your apps just like a physical iPhone would. Holding a real iPhone with your app in your hands is different from seeing it on your computer’s monitor, so testing your app on an actual device is recommended.

Keep in mind that Xcode only runs on Mac OS X.

5. I’m not good at maths, do I need it for programming?

Yes, and no. It’s an urban myth that to be able to code you must be good at maths. A lot of programming principles find their roots in mathematics, but they’re not required for a basic understanding of how to make apps. When you dive deeper and become more proficient at programming, you’ll find that you have picked up some maths skills along the way.

6. I work for a company. Do I pursue my app idea with the company, or in my own time?

It depends on the company and your position. Are you an engineer and is your company’s core business online, digital or closely related to apps? Then you might want to build a prototype and convince your supervisor or employer to pursue the idea.

If you think your employer won’t see the value, you can pursue the app idea in your own time. Be mindful of your contract with your employer. Inventions made during your time with the company could be regarded as the company’s intellectual property, not yours.

7. My app idea already exists in the App Store. What do I do now?

The fact that it exists doesn’t mean it’s a good app. You can always create a competing app and make it better than what’s already out there.

Likewise, the fact that an app doesn’t exist yet doesn’t make it a good idea to create it. It could well be that an app has been published multiple times, but was pulled from the App Store because there was no need for it.

Always validate your app idea by the problem it is solving and the value it has for its users.

8. Why is the iPhone sometimes called iOS?

There’s a slight difference: iPhone is the name for the actual hardware smartphone and iOS stands for “i Operating System”. Going back into Apple’s history, the iMac computer was the first product to have the prefix “i”. Later on, they’ve followed this style and created more products: iTunes, iPod, iPad and iPhone. It’s only natural to call the operating system that runs on the iPhone, iOS.

9. How do you effectively market an iPhone app?

Entire books have been written about this question! It’s a hard one, but not impossible to answer. All successful apps solve one problem, in such a way that people want to pay for it.

You can either come up with a problem and find people that need your solution, or find an audience and survey them for problems you could make a solution for. Keep in touch with this customer group and give them a way to tell others about your product. Referrals and word-of-mouth is an effective and cheap marketing machine.

10. What’s the worst way to learn programming?

Giving up is one of the worst ways to learn programming. Learning a new skill has ups and downs, and you can only keep going by celebrating the ups and seeing through the downs. Giving up is not part of the equation.

Also, find out what your learning style is. There’s no point in watching videos, when writing code and trial-and-error suits you better.

Finally, don’t randomly pick a book on programming from the library but find a proven learning method or path. When learning Spanish, you don’t start with reading a dictionary, right?

Learning Resources To Get Started

If you still want to go through with creating your first iOS app, this section is where you find all your learning resources to get started.

App development involves a lot of components, and when you’re new it can be quite a challenge to get acquainted with all the tools. Fear not! You can make your first app in a day at max, with no prior programming experience. The only thing you need is a good resource that shows you the ropes and focuses on one toolset at once. There’s plenty of beginner tutorials on the internet, as well as premium courses.

The Learning Process: In Brief

What’s your learning style? Consider that before you pick a resource.

When you’ve built your first app, it’s a great plan to briefly dive into a number of components after one another. Learn about:

  1. Using navigation controllers, such as tab bars and hamburger menu’s
  2. Using hardware, such as the camera and accelerometer
  3. Using layouts, such as the table view controller and the page view controller
  4. Working with animations and view transitions
  5. The app lifecycle
  6. Compilers and build tools

Most of these topics require a couple of days (24 to 32 hours) of tinkering, trial and error, and looking up resources.

Once you got the basics figured out, get straight into working with internet sources and cloud-based solutions such as Parse. All apps are connected to the Internet one way or another.

Regardless, those who are used to learning new things often can outline their own learning plan and do not necessarily need to follow a program such as a course or a book.

Wrap Up

Wouldn’t it be great to have your own app in the App Store? You now have a basic outline of the tools involved in making apps, and what it takes to learn how to make your own apps. Get started with Swift by reading a book or following a tutorial, craft a great looking interface with Balsamiq, get yourself a developer account and publish that app!