App Roadmap

Exactly what to learn
for your app idea.

How to use:
  1. Go down the list and select the options you need for your app.
  2. Then we'll tell you what to learn and which order to learn it in!
  3. If you need help, just send us a message.
Last updated:


These are the essentials that any app will need at a minimum so they're automatically included in your app roadmap.

How to use Xcode

Apple gives us a free program called Xcode where you can use a visual drag and drop interface builder to construct the user interface for your app.

For writing the code logic of your app, you also do that inside of Xcode.

How to read and write Swift code

In order to express logic and perform tasks, you'll need to write code for your app. Don't worry, it's not hard once you get started!

The code you need to write follows a certain syntax and grammar just like any other spoken language would, for example English or Spanish.

In this case, we’re using the Swift programming language.

How to lay out a user interface

The user interface is what the user sees as they're using your app.

Although Xcode gives you a drag and drop builder to create this, you still need to learn how to position and arrange the user elements on the screen of an app.

Are we missing an option? Let us know!

Design and Prototyping

Design is a huge part of what will set your app apart from the competition! Make sure you invest some time in this area or work with a designer. A prototype on the other hand is not absolutely necessary.

I want to learn app design

Just getting some of the design basics and putting in practice will get you really far. Even if you don't have that creative eye (yet), you can get inspired by app designs that you love.

I want to hire a designer

Designer/developer duos are so strong. By getting help on the design front, you can stay focused on learning iOS app development so that you can make an app that shines!

I want to work on a prototype

Prototypes can be helpful if you're trying to get investors, trying to get potential partners on board or if you're trying to move your client to the next phase. In these cases, the priority is communicating your idea clearly and effectively. A semi-functional prototype can help you do that.

Are we missing an option? Let us know!

User Login and Accounts

You'll need your users to create an account or to login if your app allows people to create content, comment, like or follow people. This is so that you can associate those actions or those pieces of data to a specific person/account.

My app will have user accounts

Users will be able to create a new account and login.

My app will be able to login via social accounts

Users will be able to login with third party accounts such as with their Facebook or Google account.

Are we missing an option? Let us know!


Databases add powerful capabilities to your app but they are generally not a beginner level topic so make sure you get your fundamentals down before diving in.

My app saves data locally on the device

Will you allow the user to save any data or information on the device they're using? This data would only be available to that user on that specific device.

Example: A note taking app.

My app saves data to the cloud or to a remote database

For scenarios where you want to sync data across devices or if you allow the user to create content to be seen by other users.

Example: A social networking app allows its users to generate content.

My app get its data from a feed

Is there an RSS, XML or other type of data feed where your app gets its data?

Example: A news reader app.

My app is going to be bundled with a lot of data

Does your app have a large data set that comes bundled with the app?

Example: A dictionary app.

Are we missing an option? Let us know!


The next step is to think about how you'll present the data to the user. How many screens will your app have? How will the user get from one screen to the next? This section will reveal what you need to learn depending on the type of navigation you want to have. Select all that apply:

My app will have multiple screens

Implementing multiple screens isn't hard! If your app has more than one screen, select this option!

My app will have a tab bar

Modern phones are getting taller. Tab bars are a great form of navigation and work great for up to 5 tabs.

My app will have a side menu

Side menus are great when you have two many options to put into a tab bar. They allow you to neatly fold up as many options as you want.

My app will have modal (floating) views

A floating view can take many forms. For example, some are more like alerts and some slide up from the bottom to present many options. These are examples of UIAlertController. Others are completely custom, providing a scrollable list of data in a floating view. for example. For the custom floating views, you can simply present a UIView or even a UIViewController on top of the current one. Inside that UIView or UIViewController, you can put anything you want.

Some of the screens will have sections (tabs/segments)

Sometimes you need to break up one screen into a few sections, kind of like different tabs.

Some of the screens will have lists or grids of data

By far the most popular to present lots of data. If your app presents data, I'd be surprised if it didn't use this! Examples: Contacts list or photos in a grid

Are we missing an option? Let us know!

User Interface

Apple provides many out of the box user elements for app developers to use! It speeds up app development and you can customize the look and feel of them to fit your app design.

My app has buttons for the user to tap on

Pretty standard stuff. I would be surprised if you didn't at least have one of these in your app!

My app shows text to the user

If you have any form of text in your app, select this option!

My app shows images to the user

Images are also used for styling the app so if some elements of your app design includes patterns, make sure you select this option.

My app uses Sliders controls

Sliders let users select from a range of values

My app uses pickers

A picker is the iOS version of a dropdown. Perfect for selecting dates and times or from a list of options.

My app uses switches

Switches have two possible values: on or off. Perfect for letting the user set an option that only has two possible values.

My app will have other controls not listed here

If your app will use other controls that aren't listed here, chances are they're custom. Select this option and I'll point you in the right direction!

Are we missing an option? Let us know!


Although animations aren't necessary, they add a lot to the user experience of your app. There are simple animations such as motion and fading that can be achieved fairly easily.

My app will have simple animations

Basic animations can be used after a delay to move an object on the view or even change it's color.

My app will have fading and transition-type animations

Sliding in user interface elements or fading in views are pretty simple animations to execute in your app and they help delight your user.

My app will have complex animations

Things like parallax views or custom transitions are a little more complex but don't let that intimidate you!

Are we missing an option? Let us know!


Does your app need to stream or play videos and music? For streams, you'll have to find somewhere to host your media. You can also bunde it into the app but that increases the app size.

My app will play video

Select this option if your app plays videos that are included with your app or if your videos will be streamed.

My app will play audio files or audio streams

If your app will play embedded sound files or play an audio stream, select this option.

Are we missing an option? Let us know!

Mapping and GPS

For GPS related capabilities, you'll have to get permission from the user first. For maps, you can embed them in your app or send the user out to the Apple Maps App.

My app will show a map

Apple has a dedicated map control that you can do many things with. Select this option if your app is going to display or work with maps!

My app needs to track the users location

For getting the users current location or or tracking their location over a period of time.

My app will provide directions

For getting directions between two locations.

Are we missing an option? Let us know!

Phone Features

These phones can do so much! For security, Apple only allows developers certrain privileges when it comes to these phone features. In addition, you'll have to get permission from the user before accessing any of them.

My app needs to access the user's Camera

Does your app require the user to take photos? If so, select this option!

My app needs to access the user's Photos

Do you need to allow the user to select a photo from their photo library?

My app needs to access the user's Calendar

If your app works with the user’s calendar, select this option.

My app needs to access the user's Contacts

If your app needs to work with the Contacts list on the user’s phone, select this option.

My app needs to send SMS messages

If your app needs to work with SMS messages, select this option to find out what you need to learn!

My app needs to use the user's phone

Does your app need to launch the users phone app?

My app needs to open other apps on the user's device

Your app can launch other apps!

Are we missing an option? Let us know!


Sending notifications is a great way to get the attention of the user. They come in two flavors. Local notifications are scheduled by the device itself while remote notifications are sent and triggered by you remotely. You'll need the user's permission to do either one.

I want to send push notifications to my app's users

If you want to send push notifications (aka remote notifications) to users, you’ll need a service provider to do so. Select this option to learn more.

My app will schedule and display local notifications

Local notifications are scheduled by your app to display. Things like calendar reminders, timers and alerts can use local notifications.

Are we missing an option? Let us know!


Aside from the following ways to monetize your app, you can also consider selling it, capturing leads for other companies, doing partnerships or sponsorships.

My app will show ads

Select this option if you want to monetize your app with ads.

My app will have in app purchases (one time or subscription)

If you can provide extra value for your user via an in app purchase, it's one of the best ways to monetize your app.

My app will be sold for a price in the app store

In order to publish and sell your app in the Apple App Store, you'll have to sign up for the App Developer Program. This will give you access to a web portal called iTunes Connect where you'll set the price and other information for your app store listing.

Are we missing an option? Let us know!

All done? Click the button below to see your results!