Here at MartianCraft, we know a thing or two about app development. But we don’t just make great apps for you - we can also teach you how to make them yourself. If you’re just starting out on the journey, welcome aboard! Below is some advice for anyone wondering if app development is for them, and if so, how to get started.

Expectations

This stuff is hard. But that’s OK. Most things worth doing are pretty tricky to start with. What’s important to remember is that it’s not impossible. You’re going to get things wrong, you’re going to feel dumb, and you’re going to throw a lot of work away. This doesn’t go away entirely, even after you’ve been doing it for years.

Still interested? Here’s another hurdle for you: you’re probably not going to get rich from this. Making an app is a creative endeavour, like making music or writing a book. The financial success of your project will depend largely on other people. It is possible to make a worldwide impact and a lot of money, but making an app and putting it on the App Store is a similar income strategy to buying a lottery ticket, except the odds are worse and you have to put a lot more work in.

The steady money in app development comes from other people paying you to make or fix apps for them, and having your own apps is a great way, or maybe the only way, to get started in that business.

Now we’ve got rid of the dilettantes, the first question to answer is “what should you build?”

Scratch your own itch

You need a solid and strong motivation to keep you going. This means that you need to make something that you personally want or need. Don’t try and get started by making something like a notes app or a to-do list, unless you’re absolutely obsessed with notes apps or to-do lists (we have a couple of those types here).

Instead, find something that you personally would use often. What app would solve a problem you encounter every day or make some aspect of your life easier? Is there an existing app that you use, but don’t really like? At the bottom of it all, successful app development is about improving someone’s life by allowing them to do something on their phone that sucks less than the way they were doing it before. Find your own suck, and make it better. This way you will have a full understanding of the problem space, and when your app isn’t a global multimillion dollar smash hit, you’ll at least have something that helps you.

Before you start, stop

Step away from your computer. Get a pen and paper. Draw some approximately phone-sized rectangles (you don’t need to be too accurate, since there are eleventy billion different screen sizes now). What’s going to be on the first screen that comes up when the app opens? What happens when you tap stuff? Are there more screens? How do you navigate (move around between screens)?

Apple has spent a lot of time and money thinking about these questions, and all of that knowledge can be found in the Human Interface Guidelines. (the HIG). Here is the section on navigation. For example, there are three main ways that you can change the content of the screen in an app:

Think about which of these is appropriate for your app. There’s great information in the HIG, which will also teach you what all the various bits and bobs that make up an app are actually called. That knowledge is vital: you can’t search online for how to populate a UITableView if you think it’s called a “Listy thing”.

There are two great exercises to help you with this activity:

  1. Take an app you use every day, and make your pen-and-paper diagram of it, linking all of the screens together.
  2. Take a single screen from the same app and, using the HIG, work out what each thing on the screen is. Is it a button, a label, a table view? Some of them might look a little different to the examples in there, but they should do the same job. Stick with the system apps in your phone to make this task easier.

All done? Got your diagrams drawn up and labelled, knowing what each part is and does and how it all fits together? Congratulations, you’re a designer. To build the thing, you’re going to need some stuff.

Equipment

You can get started coding in Swift by using Playgrounds on the iPad, which gives you access to much of the frameworks and libraries that are used to build apps, but unfortunately doesn’t let you build an actual app. Yet. So, here’s what you need to get going:

Let’s do this

You’ve got your idea. You’ve planned how it’s going to look and work. You’ve got a Mac and you’ve downloaded Xcode. Now what?

That’s a great question. You need to find your way around three things:

Swift itself is pretty accessible as far as programming languages go. Apple has a free eBook and associated materials designed to take you from zero to building a simple app, which covers all three of the above at an introductory level. I wouldn’t recommend Objective-C, the other supported language for developing iOS apps, for a beginner. I only ever start projects in Swift nowadays.

For feature-specific learning and great introductory material, you’re almost bound to find something on Ray Wenderlich (disclaimer: I am part of the Ray Wenderlich team), including books, videos and written tutorials. The “Apprentice” books are specifically designed for beginners to development.

For specific problems (“I’ve tried to do X but it doesn’t work because Y”) then someone has almost certainly already had your problem and has asked about it on Stack Overflow. Entering the details of your problem in the question field is a great way to clarify your thinking and it also brings up tons of suggested “similar questions”, it works a lot better than the search function, and if you don’t find anything, then your question is ready to post.

Submitting to the App Store

Don’t worry about this for now. Honestly. Get your app working first, then find a guide somewhere online. It’s not as hard as all the complaints suggest.

Good luck!

Getting started in the world of app development can be daunting, but there’s a whole internet of resources out there to help you along the way. Start small, build the simplest thing you can, then learn as you go. Seeing something you’ve made running in the palm of your hand is a great feeling - seeing it running in someone else’s hand is better still.

Richard Turton

Cocoa Engineer

MartianCraft is a US-based mobile software development agency. For nearly two decades, we have been building world-class and award-winning mobile apps for all types of businesses. We would love to create a custom software solution that meets your specific needs. Let's get in touch.