How to Get Started Developing Apps for the iPhone and iPad

Wikimedia Commons / Dijoantonycj / CC 4.0

If you've ever wanted to try your hand at developing iPhone and iPad apps, now are the best time to get started. Not only does any delay put you further behind in terms of competing in the marketplace and making your own mark, there are plenty of great tools and services to help you get up to speed quickly.

The best thing about developing mobile apps is how an individual or a pair of developers can compete on a semi-equal footing with large development shops.

While you may not get as much help from Apple these days, with the best real estate in the App Store usually going to the bigger studios, app sales are driven as much by word of mouth and good reviews in the App Store, so anyone with a great idea can be successful selling their app.

So how do you get started developing iPhone and iPad apps?

First, Try It Out

The first step is to play around with the development tools. Apple's official development platform is called Xcode and is a free download. You won't be able to put your apps up for sale without a developer's license, but you can play around with the environment and find out how long it might take to come up to speed. Apple introduced the Swift programming language as a replacement for Objective-C, which was sometimes painful to use for development. As the name implies, Swift is a faster platform. This isn't just about app speed either.

Swift may not exactly be rapid application development, but it is much quicker to program using Swift than the older Objective-C.

Note: You will need a Mac to develop iOS applications, but it need not be the most powerful Mac in the world. A Mac Mini is more than sufficient for creating iPhone and iPad apps.

 

Explore Third Party Development Tools

What if you never programmed in 'C'? Or perhaps you want to develop both for iOS and Android? Or maybe you want a platform designed for building games? There are a number of great alternatives to Xcode available.

It is always good to stick with a native platform. If you code iOS apps using Xcode, you always have access to the latest features of the operating system. But if you plan on releasing your app for multiple platforms, coding it in each is going to eat up a lot of time and resources.  

  • UnityUnity is a 3D graphics engine that includes a physics engine. It is primarily used for developing 3D games, although it recently added 2D support. Unity can be used for iOS, Android, Windows, BlackBerry, OS X, Linux, Playstation 3, Xbox 360 and Wii U development. This makes it a great choice if you plan to release a game on multiple platforms, but while it has tools to help you build your game, it isn't quite as rapid development as some of the competition.
  • Corona SDKThe Corona SDK uses LUA as a development language and then re-compiles to Objective-C. And because LUA is quicker to write, apps can be built much faster using Corona SDK. Corona specializes in 2D graphics and includes its own physics engine. You can also compile for both iOS and Android from a single set of code. Corona also supports building native Windows and Mac OS apps, but it doesn't support consoles like the PlayStation 4 or XBOX ONE. Corona is a great choice for 2D games and casual games.
  • Adobe AirThose with a background in Flash will be interested in Adobe Air, which uses a combination of ActionScript, HTML, CSS and Javascript to build applications. Adobe AIR allows deployment on iOS, Android, and BlackBerry.
  • MarmaladeFormerly called Airplay SDK, Marmalade is taking the write-once-run-anywhere philosophy one step forward by supporting multiple languages. Primarily, Marmalade supports C, but two variants provide a bridge to the base SDK: Marmalade Quick, which uses LUA, and Marmalade Web, which uses HTML 5, Javascript and CSS 3. Marmalade is primarily used for developing 2D and 3D games.
  • PhoneGapWeb developers will be interested in PhoneGap, which uses JavaScript, HTML 5 and CSS3 to create web apps with a mobile look and feel. PhoneGap can also build native apps by encapsulating the code in a web object within the platform. It can be used for iOS, Android, webOS, Symbian, Blackberry, Ubuntu Touch, Windows Phone and Windows 8 development.

And this list is by no means complete. There are even development platforms like GameSalad that allow you to build apps without any coding at all. For a full list of mobile development platforms, you can check out Wikipedia's list.

Refine Your Idea and Adapt iOS Best Practices.

It is a good idea to download similar apps from the app store to get an idea of how the competition handled the app, paying close attention to both what works (don't fix what isn't broken) and what doesn't work. If you can't find an exact match for your app, download something similar. 

You should also get out a pencil and some paper. Developing a graphical user interface (GUI) for the iPhone and iPad is different than developing for the PC or the web. You will need to take into account the limited screen space, the lack of a mouse and physical keyboard and the existence of a touchscreen. It can be a good idea to draw out some of your screens and layouts the GUI on paper to see how the app might work. This can also help in compartmentalizing the app, which help you break it down for a logical flow in development.

You can get started on the GUI by reviewing the iOS Human Interface Guidelines at developer.apple.com.

Apple's Developer Program

Now that you have a refined idea and know your way around the development platform, it's time to join Apple's developer program. You will need to do this in order to submit your apps to the Apple App Store. The program costs $99 per year and offers you two support calls during that period, so if you do get stuck on a programming issue, there is some recourse.

Note: You will need to choose between enrolling as an individual or as a company. Enrolling as a company requires a legal company and documentation like Articles of Incorporation or a Business License. A Doing Business As (DBA) does not fulfill this requirement. 

Push Hello, World to your iPhone or iPad

Rather than jump straight into app development, it's a good idea to create a standard "Hello, World" app and push it to your iPhone or iPad. This requires getting a developer's certificate and setting up a provisioning profile on your device. It's best to do this now so that you won't have to stop and figure out how to do it when you get to the Quality Assurance stage of development.

Are you developing a game? Read more about the specifics of game development.

Start Small and Go From There

You don't have to jump directly into your big idea. If you know the app you have in mind may take months and months to code, you can start small. This is especially effective if you are new to building apps. Isolate some of the features you want to include in your app and build a similar, smaller app that includes that feature. For example, if you know you will need a scrolling list with the ability for the user to add items to that list, you could build a grocery list app. This would allow you to experiment with coding specific features before you get started on your big idea.

You will find that the second time you program a feature it is always quicker and better than the first time. So, instead of making mistakes inside your big idea, this allows you to experiment outside of the project. And if you develop a small app that is marketable, you can make some money while you learn how to code your bigger project. Even if you can't think of a marketable app, simply playing around with a feature in an isolated project can be a good way to learn how to implement it in your main project.