DEV Community

dev koan
dev koan

Posted on • Originally published at devkoan.substack.com

The Map Nobody Gave Me: A 10-Year iOS Dev's Honest Starting Guide


The first time I wanted to build an app, I sat down, opened my MacBook, and thought: okay. Let's do this.

Then I opened Google.

Four hours later I had 47 tabs open. Three different programming languages downloaded. Two YouTube tutorials paused halfway through. And zero lines of code.

I wasn't lazy. I wasn't stupid. I just didn't have a map.


The Real Problem Isn't Information — It's Sequence

Here's the thing about googling "how to make an app" — you get answers meant for people who already know the shape of the thing.

Swift or Objective-C? Xcode or VS Code? UIKit or SwiftUI? Bootcamp or self-taught? Start with fundamentals or just build something?

Every single one of those is a real question with a real answer. But when you don't know what any of those words mean yet, the answer to each question just opens three more. You spend four hours clicking and reading and watching and at the end of it you feel less ready than when you started.

That's not a knowledge problem. That's a sequencing problem.

The information exists. There's more of it than you'll ever need. The problem is nobody tells you what order to learn it in.

What 10 Years and 20+ Apps Taught Me

I've been building iOS apps solo for 10 years. Twenty-something shipped. I've made every mistake you can make in this process and kept notes on most of them.

The thing I wish someone had told me on day one isn't a tip or a trick. It's this:

The tools matter less than the order you learn them in.

Most beginners try to learn everything at once. Or they pick the "best" tool before they understand what any of the tools do. That's like buying the best hiking boots before you know whether you're going to the mountains or the beach.

Figure out where you're going first. Then pick the tools.

The 4-Step Map

If I were starting over today and wanted to build iOS apps, here's the exact order I'd go:

Step 1: Get Somewhere to Write

Download Xcode. It's free. It's made by Apple. It lives on your Mac. This is where you'll spend most of your time for the next few years so you might as well meet it now. Don't try to understand it yet. Just install it and open it. That's the whole step.

Step 2: Learn One Language

Swift. Not Objective-C, not Python, not JavaScript. Swift. It's what Apple uses, it's what iOS apps are written in, and it's genuinely well-designed for beginners. The debate about which language to learn first is real and completely irrelevant to you right now.

Step 3: Learn to Save Your Work Properly

This is Git. It creates checkpoints in your code so that when you break something (you will, constantly, that's normal) you can go back. I skipped this when I started. Lost two weeks of work. Then did it again. Then I started using Git and I've never lost work since.

Set this up before you write anything you care about.

Step 4: Build Something Small and Ugly

Not impressive. Not portfolio-worthy. Just something that runs on your phone and does one thing. A timer. A list. A button that plays a sound. The goal isn't the app. The goal is going through the full process once so it stops feeling like a mystery.


That's the map. Four steps. Everything else builds on top of those four things.

What's Next

This is the first post in a series. Next up: Git — what it actually is, why it matters more than most beginners think, and how to get started with it in under 20 minutes even if you've never used a command line before.

If you know someone who's been saying "I want to build an app" for the past year and hasn't started yet — share this with them. This is exactly where they need to begin.


I'm DevKoan. 10 years of solo iOS development, 20+ shipped apps, and a collection of every mistake a junior developer can make. I write about the things I wish someone had told me earlier.

Follow me here or on Substack for weekly posts.

Top comments (1)

Collapse
 
jon_at_backboardio profile image
Jonathan Murray

"The real problem isn't information — it's sequence" is one of the most useful reframes for anyone learning to code, and it applies well beyond iOS. The 47-tab problem is essentially an optimization failure: you're trying to build a map of the whole territory before taking a single step, which feels productive but creates paralysis.

The mental model that helped me most when learning: instead of asking "what do I need to know?" ask "what do I need to know to understand the next thing I'm going to build?" It keeps the learning tightly coupled to something concrete, which cuts through the infinite-information problem immediately.

After 20+ shipped apps, what would you say is the one skill that separates the people who keep building from the people who get stuck in tutorial loops? My guess is something about tolerance for shipping imperfect things, but I'm curious what you actually observed.