by Chris Ching
How to get started
I often get emails asking, “How do I get started with building apps?”.
At first, it seems like a silly question to me because I see so many resources available for making apps.
But then I realize it’s not that simple:
As a beginner, you might not even know what you’re looking for.
Do I need a mac?
What’s Swift and Objective-C?
What’s this Xcode thing?
What sort of equipment do I need?
And to top it all off, there’re a lot of outdated resources out there. The worst part is that you might not even be able to tell that it’s no longer relevant if you’re just starting out.
Talk about frustration and huge amounts of wasted time!
Your first 3 steps for building apps
This guide on how to make an app is going to change all that.
1. Orientation: All of the tools that are available. Which ones are important and which ones are not.
2. Mindset: The critical mindset to prime yourself for learning app development.
3. Core Skills: The essential skills for building a solid iOS foundation if you want to make app after app…
Let me promise you this:
You’re going to have completed your first app within the next 20 hours.
It’s time to catch you up to speed and give you the lay of the land. Let’s do this in a quick question/answer format!
What do I need to learn in order to build my app?
I recommend to focus on the core/basic skills first which you’ll find from the lessons below. After that, you’ll have to identify which traits your app has in order to know what to learn next.
For example, if your app needs to have users register and login then you’ll need to have a database to store that data. I’m writing an article that can help you with identifying those traits once you’ve completed the basic training. Make sure you’re on my newsletter to be notified when it’s published!
How long will it take for me to build my app?
This is a really hard question to answer because some apps are easy, some are complex and everyone learns at different speeds. Also some people have really busy schedules so they can’t dedicate much time to learning. In terms of number of hours, I would say at least 20 to get some of the fundamentals down.
I would also recommend that you try to find a little bit of time each day to learn rather than saving it all for a Sunday evening because if you wait 7 days in between lessons, you’ll spend a lot of time backtracking to remember where you left off.
Should I learn Swift or Objective-C?
Swift all the way because it’s what Apple has transitioned to.
It’s way easier for beginners to pick up and now that it’s open source, Swift is beginning to be used for other things as well such as server side development.
Lastly, it’ll also make it a lot easier to find tutorials on the net for Swift because most educators have moved to teaching with Swift.
Do I need a Mac? (Can I use a PC?)
Technically yes, because the program where we write Swift code and design the app is a MacOS app and Apple hasn’t released a Windows equivalent.
Two solutions you can try instead of buying a Mac:
- Use a Mac remotely via MacInCloud.com
- If you’re technical enough, use virtualization software such as VMWare and VirtualBox to run MacOS on your PC.
In addition to that, there’re a lot of third party solutions to create iOS apps where you wouldn’t need a Mac at all.
Here are some that you can check out:
If you are thinking about buying a Mac, you can buy used to save some money. An iMac, MacBook, Mac Mini.. any will work.
As long as it can run the latest operating system, you’ll be good to go because Xcode usually requires the latest.
A safe bet for current compatibility and getting mileage out of your purchase is to get something less than 2 years old.
What sort of equipment do I need?
Aside from a Mac (or using one of the PC solutions above), not much else!
You’ll need to download Xcode for free from the Mac App Store.
Swift doesn’t need to be downloaded separately.
Then you just need to launch Xcode and start following along!
If you want to publish your app into the App Store, you’ll need to pay for an Apple iOS Developer Membership which costs around $99/year.
You don’t need to pay anything if you just want to run the app on your own device.
2. The Mindset for Success
I’ve guided over 3000 students through learning app development and here’s one interesting observation that I’ve made:
I’ve noticed that having the right mindset when starting out is a strong predictor of whether or not the student will succeed.
So what’s this mindset?
Impatience leads to frustration which leads to quitting.
As with learning anything new, there’s going to be roadblocks and obstacles but this is where having the right mindset is so important.
Those obstacles are opportunities for growth and learning.
As a seasoned programmer, I can tell you that a large part of building apps will be troubleshooting and figuring out why your app doesn’t work the way you intended it to.
25% coding, 75% debugging
It’s not a knock against the coder; it’s just that when you’re writing code, it’s impossible to foresee 100% of the user scenarios and edge cases and interactions with other parts of your code.
There’s bound to be bugs and unexpected behavior and then you’re going be spending a lot of time debugging and trying to figure out how to fix it.
Don’t let that discourage you though because the feeling that you get when you finally solve the problem is a natural high like no other!
Not to mention that by overcoming your roadblock, you “level up” and learn a lot!
When you get very familiar with Swift code and Xcode, you’ll find that you can hack together an app idea really quickly but the majority of time afterwards is spent refining, debugging and polishing your app.
Before you can hack together a prototype of any app idea in a weekend, you have to pass “The Hump”.
This is a certain point on the learning curve where too many beginners have given up.
They encounter their first adversity and experience frustration.
Things aren’t going smoothly.
Rather than facing it, overcoming it and learning from it, they decide that app development isn’t for them.
It’s a graveyard of lost hopes and dreams 🙁
If you can beat “The Hump”, you’ll be flying and learning faster than you thought you ever could.
This is where having the right mindset makes all the difference!
3. Core Skills
It’s time to put the pedal to the metal.
The 17 lesson mini-course below will teach you the core skills you need to build any sort of app.
It’s designed with beginners in mind and you don’t need any coding experience (if you already have a programming background then you’ll fly through it!)
This is where you want to start.
I’ve also written the main points into a printable PDF which you can download below. However, the notes won’t make much sense if you haven’t at least gone through the core lessons below.
Upon downloading the notes, you’ll also be subscribed to my newsletter where I send out exclusive tutorials, motivation and lessons learned for app developers.
You’re going to get an orientation of the development environment, a tiny taste of Swift code and you’ll also make your very first app!
1. Introduction to the tools and materials
An orientation of the tools and resources used for iOS development.
2. Playgrounds and Swift
An unintimidating dabbling into Swift code!
3. Xcode 8 tutorial and tour
Get acquainted with the development environment where you’ll bring your idea to life!
4. The anatomy of an iPhone app
How’s an app put together? We break it down into the major components.
5. Your first Swift app
Create your first ceremonious “Hello World” app!
Diving In: Building The War App
You’ll dive right into creating a simple version of the card game, War.
6. Auto Layout and Stack Views
In this lesson, you’ll see how easy it is to visually create your app interface.
7. Multiple Orientations – Size Classes
In this lesson, you’ll learn about stack views and how they can aid us in laying elements out
8. Completing the UI with Auto Layout and Size Classes
In this lesson, you’ll use what you learned about auto layout and stack views and finish adding additional elements to the user interface.
9. Basic building blocks of Swift programming
Learn about object oriented programming, classes, objects, methods and properties.
10. More Swift concepts and UIKit
In this lesson, we go through more Swift programming basics and learn about what UIKit is.
11. Hooking it all up – Swift IBOutlet properties
Now we’re ready to learn how to expose the user interface elements so you can manipulate them with code.
12. Handling button taps – Methods
We’ll go through how to capture a tap on a button so that you can respond to it!
13. Adding and displaying images in your app
Learn how to add images to your Xcode 8 project and display them in your app. You’ll also learn about various images sizes that you need for retina and high resolution displays.
14. Getting a random number and randomizing the cards
War is a game of chance, so we’ll need to know how to generate random numbers. In this lesson, we also learn how to change the card images based on the randomly generated numbers.
15. Using Arrays to manage the card images
This lesson introduces Arrays. It shows you how to use this collection class to improve the way we display the card images.
16. Determining a winner – IF statements
Implement the simple game logic in code to determine a winner.
17. Styling and keeping score
By implementing the score keeping, we’ll learn the importance of understanding scope.
I hope you’ve learned a lot about building iOS apps through this guide.
More importantly, I hope that you’ve inspired yourself to continue learning and building your skill so that you can bring your app idea to life!
If this guide and the lessons helped you in any way, I really appreciate it if you could do two things for me:
1. Use the share buttons below to share this Get Started guide with your friends and family.
2. Leave me a comment below and let me know how you’ve benefited from the lessons.
I truly and sincerely appreciate that you have chosen to learn with me.
– Chris Ching