Getting From Learning How To Code To Building Your Own App
Recently, someone asked me: “I’ve completed learning Swift, but I’m finding myself unable to develop apps on my own. What should I do?”
A very solid question! And an understandable one: sometimes you’re so busy learning programming, that you actually forget to learn what you can do with it. Thankfully, I found myself in the same position a couple of years back and I’m happy to share with you what I learned.
Apps And Code Are Not Created Equal
First off, making apps and programming are two very different things. The latter means you know how to write code, and how to solve a problem in technical terms, by means of instructing a computer what to do. The former means a lot more than that.
Making apps is: planning architecture and structure, knowing a bit of design, knowing how to create a user interface and experience, and so on. It’s the ultimate application of knowledge, really, to go from programming to creating your own apps.
Briding The Gap: Learning How To Plan
Back when I was younger, I wasn’t really good at planning. I would apply what I now know as The Waterfall Method. When working on a project, I’d just start somewhere. Of course, I’d end up somewhere too, but rarely that was where I wanted to go initially. You can steer your boat a bit before you fall off the face of the waterfall, maybe. Most of it is just house-of-cards guesswork.
The first step to get from coding to app, is to learn how to plan. Pick a project, anything. Here’s some app project ideas:
- A to-do list app
- An app you can use to send photos to other people
- A chat app
These are medium-sized projects, and will at least take you a couple of days to create an initial prototype. They’re perfect!
OK, here’s what you do next: you divide the app project up in smaller pieces. A to-do list app has multiple screens, so the creation of each of the screens is a separate task in your project. The chat app has both front-end and back-end functionality, there’s got to be a webserver that handles message sending between people. So, you divide the front- and back-end in two tasks!
Then, divide some more. You go 3 layers of tasks deep. You need to define each of the tasks very clearly, like this: Create one to-do list interface, called “Create New To-Do”, that can create a new to-do, with one input field (the text of the to-do) and a submit button.
Now, you can execute such a task, right?
Programming Is Solving Problems
You know Swift programming, but you don’t know how to make apps. By dividing a real-life app project up into simple tasks, you can find out if you can apply your Swift programming skill to such a simple task. The key of programming is knowing how to solve a problem with code. If you don’t know how, you can find out how!
In order to create that to-do list interface, you might need to find out:
- How can I install Xcode?
- How do I add a new Interface Builder file to my project?
- How do I add UI elements to the interface?
- How do I connect the UI elements to code?
- How can the user now navigate the app?
- How do I test my app?
By breaking down a big project into smaller steps, and by filling your knowledge gaps with new questions, you’ve gone from indecision to action. First, you didn’t know how to apply your newly achieved Swift programming skill to a real-life project – and now you do.
Learn how to code iOS apps with me. We'll focus on app architecture, best practices and fundamental topics.
Become an insider. Get access to our members-only courses and private community. » Learn more
Most Popular Content
- How To Make An App (In 9 Steps)
- How To Develop iOS Apps On A Windows PC
- How To: Pass Data Between View Controllers In Swift (Extended)
- Creating A Simple iOS Game With Swift In Xcode
- How To: Build A Real-Time Chat App With Firebase And Swift
- How To: Random Numbers in Swift
- Understanding The "Use of Unresolved Identifier" Error In Xcode
- Understanding The «Unexpectedly found nil while unwrapping an Optional value» Error
Comments & Questions
Got a comment or question? Let me know! I read and respond to every one. Thanks!