pitt500 / how-to-become-an-ios-developer

how to become an ios developer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

How to become an iOS Developer

The purpose of this document is the creation of a repository with information about how to start and grow in my career becoming an expert iOS developer. Also, this document could works as an interview guide to cover the most important topics.

⚠️Disclaimer⚠️

The following information is work in progress. Feel free to create a pull request if you think a topic/tutorial/course is important to be here.

How to start?

If you aren't new in the programming world, but yes for iOS, follow this quick guide first. If you have experience with iOS already and you wanted to dominate more about all the topics to become an expert, please continue reading the document.

Two sides

Let's divide the roadmap in two major topics:

This topic is frequently ignored by some developers thinking that mobile devs "don't need" to build complex algorithms. This is a wrong assumption. If you want to become the best developer (doesn't matter the language or platform), you should study algorithms and know the most used data structures very well.

iOS world is vast. There are a lot of topics to learn from Cocoa/Cocoa Touch, design patterns, software architectures and of course, Swift and Objective-C languages. This guide will help you to focus and find a way to study all those concepts.

Computer Science

The following list are the base concepts to learn and being on shape with computer science topics:

References for studying:

Algorithms

Check Cracking the coding interview for more details

Data Structures

Check Swift Algorithm Club for more details

iOS

The following list include the most important concepts you should know in order to develop apps for iOS:

Languages

iOS Support two languages: Objective-C (used for two decades) and Swift from 2014. You can create apps with a single of these languages or mix them if it's convinient. Nowadays, Apple take Swift as its main language for development, however, there are a lot of legacy apps that still require support from Objective-C (because is expensive and time consuming doing a migration), that's why it's important to know both of them.

Which language to learn?

If you are new and wonder where to start, I recommend you to start with Swift, because it's well robust and supported today, keep it as the main language to develop iOS apps, but also keep knowledge of Objective-C, that will help you in interviews or situations when you require to interact with it.

Swift

Objective-C

Memory Management

Multithreading

Testing

Beta Distribution

App Distribution

Design Patterns

Design patterns are templates to problems well known and help us to builds apps with great quality, maintenance, and scalability. The following resources will help you to learn more about those patterns used in iOS.

Human Interface Guidelines

Apple provide us some design principles for all the different platforms in its ecosytem like macOS, WatchOS, tvOS and of course iOS (iPadOS included). Learn this topic in order to provide a better user experience for your users in all your apps. That's makes the difference between "another random app" and "the app taht everybody wants and know how to use it".

Cocoa Touch

Auto layout

Networking

Push Notifications

Persisting Data

Core Data

External libraries

SwiftUI

Xcode Previews

Internationalization

Reactive Functional Programming

Combine

RxSwift

Architecture

Debugging

Instruments

About

how to become an ios developer