We all know that mobile app development is growing with astonishing speed. At the last WWDC, Apple announced that the AppStores’ all-time earnings were over $100 billion from which about $70 billion was paid out to the developers. And if you think that’s a huge figure, developers collected over $20 billion in the last year alone.
So it wouldn’t be surprising that more and more people are looking into this field of work. If you’re are one of them I must warn you that learning new languages is not an easy thing to do. You’ll need extensive knowledge of many different aspects but if you’re persistent enough, at the end it will pay out.
I’ve met many people that started out directly with iOS development, without any previous knowledge of programming. Maybe most of them, if not all, figured things out and developed their first Swift iOS apps but it doesn’t mean they’ve been developed in a way that is efficient, readable and done with best practice in mind. If you just want to develop a basic app and see what iOS development is about, then this route is most certainly the right way to go.
But, if you’d like to make a career out of it, where you’ll be able to pick up different frameworks, languages, technologies and interact with things other people have built, then the fundamental basis are a must have. They will let you be much more versatile and stimulate you to pick up new things much more easily.
I always say that a good, solid foundation in different programming paradigms (e.g. if statements, for loops, etc.) and data processing is the key point in understanding mobile app development. For this, you’ll need to learn Python (or equivalent) and the theory behind Software Engineering.
iOS Development Basics
After you’ve successfully managed the fundamental basics, you’re ready to start learning iOS development. Bellow is a compiled list of all the things you should know to become a professional iOS developer.
- Swift Programming Language
- Objective-C Programming Language
- Understanding Xcode (IDE)
A) View Layouts
– Storyboards (Segues, @IB Properties)
– Xibs (Many Old Projects Use This)
– Programmatic Layouts
B) Data Persistence
– User Defaults
– NSCoding (NSKeyed Archive / Unarchive)
– Core Data
C) Notifications (Observing)
– Implementing Navigation Controllers
– Single View Application
– Tab Bar Application
– Universal Application
– Understanding View Controller Life Cycle
– Accessing APIs (URLSession / AFNetworking)
– Parsing and Understanding JSON Objects
F) Concurrency (Grand Central Dispatch)
G) MVC Architecture Pattern
H) Core Animation
I) Core Graphics
J) Unit Testing (XCTests)
K) App Store Submission Process
L) Have an app in the App Store (Portfolio)
M) Memory Management (ARC Knowledge)
N) Understanding Object Oriented Programming
A) Version Control (Git / Github)
B) Sketch / Adobe Experience Design
C) Understanding Apple’s Guidelines (UI / UX)
D) Reactive Programming
E) Agile / Scrum Knowledge
F) iCloud Sync
G) MVVM Architecture Pattern
H) Protocol Oriented Programming
I) AppCode (IDE)
K) iOS 10 APIs (Or recent iOS)
- Apple’s Swift Documentation – A must read for all beginners.
- Hacking with Swift – Real-world Swift tutorial projects.
- Devslope’s Course – With over than 70 hours of video courses, it’s one of the best out there.
- Ray Wenderlich – Tutorials and book about iOS with A LOT of knowledge in them.
- Stanford Developing iOS – One of the best free video courses out there.
- Google’s Material Design, or more specifically, their Color Style Guide.
- AppCode IDE – Amazing IDE for editing your Xcode projects.
- Sketch Digital Design – Make your app designs.
- PaintCode – Draw objects and gives you back Objective-C or Swift code.
- Little Bites of Cocoa – Tips and tricks for iOS and macOS development.
- Free Programming Books
- Free IT Books
- Trello iOS Mastery Path
- How to break into the Tech Industry
- Eli the Computer Guy