Hi! This is my log of iOS development skills, resources, highlights and many more that eventially evolved into a constantly growing knowledge base
Here gethered the bare minimum you need to know to become an iOS developer. Highlighted
themes are most essential topics
Feel free to contribute!
- Pet projects
- Practice projects
- Languages
- Memory management
- Multithreading and concurrency
- SwiftUI
- Cocoa Touch
- Software Architecture
- Dependencies management
- Project structure organisation
- Version Control Systems
- Debugging
- UX
- Caching and Persistency
- Testing
- Performance optimization
- Code signing
- Tools
- Continuous Integration
- Security
- tvOS
- WatchKit
- Core ML
π§ Computer Science knowledge
π₯ Project Management knowledge
- My Skills and Experience
- References
- Useful Tools
- Useful links
- Courses and books
- Inspiration
- Job hunt
- Command Line
-
Objective-C
- Program Structure
- Basic Syntax
- Data Types
- Variables
- Constants
- Operators
- Loops
- Decision Making
- Functions
-
Blocks
- Numbers
- Arrays
- Pointers
- Strings
- Structures
- Preprocessors
- Typedef
- Type Casting
- Log Handling
- Error Handling
- Line Arguments
- Classes & Objects
- Inheritance
- Polymorphism
- Data Encapsulation
- Categories
- Posing
- Extensions
- Protocols
- Dynamic Binding
- Composite Objects
- Foundation Framework
- Fast Enumeration
- Memory Management
- KVC
- KVO
- Toll-free bridging
-
Runtime
- Method messaging
- NSZombies and KVO implementation
- Swizzling
-
Swift
- The Basics
- Basic operators
- Strings and Characters
- Collection Types
- Control Flow
- Functions
- Closures
-
Enums
-
Structures and Classes
- Properties
- Methods
- Subscript
- Inheritance
-
Initialization
- Deinitialization
- Optional Chaining
- Error Handling
- Concurrency
- Type Casting
- Nested Types
- Extensions
-
Protocols
- Generics
- Opaque Types
- Automatic Reference Counting
- Memory Safety
- Access Control
- Advanced Operators
- Runtime
- KVO
- Swift & Objective-C work together
-
Stack and Heap
-
Value vs Reference type
- MRC
-
ARC
-
Retain cycles
- Garbage collection
-
Memory leaks
- Shallow and deep copying
- Autorelease pool
- POSIX and NSThreads
- Perform selector family
-
GCD
-
NSOperation(Queue)
-
Runloop
-
Synchronization
- Problems
- Race condition
- Deadlock
- Readersβwriters problem
-
UIKit
-
Foundation
- UserNotifications
- Core Location
- Core Motion
-
Work in background mode
-
Design Patterns
-
Cocoa
- Abstract Factory
- Class cluster
- Adapter
- Command Pattern
- Chain of Responsibility
- Decorator
- Delegation
- Categories
- Facade
- Memento
- Observer
- Proxy
- Receptionist
- Singleton
- Template Method
- MVC
- Abstract Factory
-
Architectural
-
Creational
- Factory
- Abstract Factory
- Builder
- Factory Method
- Object Pool
- Prototype
- Singleton
-
Structural
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
-
Behavioural
- Command
- Chain of responsibility
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Visitor
- Concurrency
- Anti-pattern
-
-
Design Principles
-
SOLID
-
DRY
-
KISS
-
YAGNI
-
Inversion of Control
- Protocol-Oriented Programming
-
- Instruments
- Best practices
- Checklists
- UserDefaults
- Saving files to disk (Codable)
- Keychain
- SQLite
- Core Data
- Realm
- Property Lists
- YAPDatabase
-
FIRST principles
-
Unit Tests
- Snapshot Tests
- Functional test
- UI Tests
- TDD (Test Driven Development)
- BDD
- Increase FPS
- Decrease memory footprint
- Jenkins / CircleCI / Bitrise / Github Actions
- Xcode server
- Keychain
- Security Transforms API
- Secure Enclave
- Focus interactions
-
Sorting
-
Graph Theory
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
- Minimum Spanning Tree (MST)
- Trees
-
Strings
- Greedy
- Dynamic Programming
- Bit Manipulation
-
Recursion
- Game Theory
- NP Complete
-
Big-O notation
-
Arrays
-
Lists
-
Maps
-
Hash tables
-
Graphs
-
Queues
- Trees
- Problems
-
Object-Oriented
- Functional
- Functional Reactive Programming Frameworks
- React Native
- RxSwift
- RxRealm, RxDataSources
- Combine
- Functional Reactive Programming Frameworks
Mail: [email protected]
Instagram: @lemonbrusher
Twitter: @Lemonbrusher
I was inspired by Syknapse. He does cool things! The tree is almost complete copy of iOS-Developer-Roadmap