Updated: Oct 2, 2015
This is my article series to teach people how to build iPhone and iPad applications who have no programming experience.
My focus is to explain things in simple, plain English and get people started making their own apps. Rather than trying to teach everything I learned about Computer Science in University or every last aspect of programming, I’ll distill it into what you need. My approach will be to slowly introduce concepts as you need them, rather than trying to equip you with everything up front only to overwhelm you!
It’s really not that far fetched as long as you have the desire to learn and the persistence to keep at it and get better!
Programming can be self-taught and yes, you can start your own career in software development even if you don’t have a formal background. It’s probably the single greatest thing I love about my field; that merit is based on your achievements and hard work rather than seniority or experience (as in the case of a surgeon for example).
Apple recently released a new programming language called Swift for developing iPhone apps. Previously, it was Objective-C that people had to learn in order to build apps. This raised a common question from beginners on which language they should learn.
The good news is that this resource covers both Swift and Objective-C languages!
However, if you’re starting from scratch with no programming experience, I’d highly recommend that you learn Swift because it’s easier to learn for beginners.
The biggest point of failure for beginners is giving up before they pass “the hump”.
The hump is what i like to call that point where it turns from frustrating to fun. It’s kinda like that point where you’re riding your bike without training wheels for the first time and you’re really wobbly, but not falling! Then it’s just fun from there.
With Objective-C, that hump is high because the code contains a lot more weird characters/symbols and it’s less forgiving. Beginners tend to give up before it “clicks” for them.
Swift is more natural to both read/write and so it’s a lower barrier to entry. My advice would be to start with Swift, pass “the hump” and then if Objective-C is something that you need, you’ll have the confidence to learn it and not give up.
With that said, here are the Swift tutorials for How To Make An App With No Programming Experience using Xcode 7 and iOS 9.
Farther below the page is the Objective-C crash course which uses Xcode 5.
Module 1: Basics
In this module, you’ll get an orientation of the development environment, a tiny taste of Swift code and participate in building 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 getting your feet wet
An unintimidating dabbling into Swift code!
3. Xcode 7 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!
Module 2: The art of war
In Module 2, you’ll dive right into creating a simple version of the card game, War.
6. Creating the user interface – Auto layout
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 size classes and how they can aid us in laying elements out in different orientations and screen sizes
8. Completing the UI with Auto Layout and Size Classes
In this lesson, you’ll use what you learned about auto layout and size classes 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 7 project and display them in your app. You’ll also learn about various images sizes that you need for retina and high resolution displays.
Download the images used in this video here. Card images by Charles Esquiaqui licensed under Creative Commons.
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.
For reference: Apple’s Swift Programming Language Guide
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. We’ll also add additional graphics to liven the app up!
Download the graphics or source code.
This introduction article is a great place to start for those who want to learn how to program but don’t have a programming background. This short lesson introduces concepts which will make the subsequent lessons easier to understand and digest!
This first article talks about the core concepts of object oriented programming, introduces you to writing some Objective-C code to create classes and describing ways in which classes can interact with each other through methods, properties and variables.
The second part of our series will introduce more programming concepts with Objective-C examples. With the introduction of control structures, loops and collections, you’ll be able to write more complex methods. Level up, yeah!
The third part of our series will introduce the Model View Controller pattern (MVC) and the critical part it plays in iOS app development.
We’re finally ready to tackle XCode, write code and build apps! We’ll go through all the elements of the XCode development environment and get started with our demo project.
In this part, I’ll show you how to lay out the on-screen user interface elements for your app, navigating between views in your app and responding to user interaction by hooking up the UI elements to your code!
For those who have a programming background
If you DO have a development background and you know another programming language then I believe you’ll still find value in this article series but I also urge to you check out the Stanford iPhone App Development videos. (People with no programming experience may find it difficult to follow because the course assumes that you know the basics of object oriented programming).