Tapping on a link will take you to relevant materials.
-
iOS Developer
-
Practical knowledge
- Getting started
-
Languages
-
Memory management
-
Multithreading and concurrency
-
Cocoa Touch
-
Software Architecture
-
Design Patterns
-
Cocoa
- Abstract Factory
- Adapter
- Command Pattern
- Chain of Responsibility
- Decorator
- Delegation
- Categories
- Facade
- Memento
- Observer
- Proxy
- Receptionist
- Singleton
- Template Method
- MVC
-
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
-
Inversion of Control
-
Dependency Injection
- Service Locator
-
- Protocol-Oriented Programming
-
-
-
Dependencies management
- Project structure and File/Group organisation
-
Version Control Systems
- Debugging
- Instruments
- Best practices
- Checklists
- UX
-
Caching and Persistency
-
Testing
-
Unit Tests
- Snapshot Tests
- Functional test
- UI Tests
- TDD
- BDD
-
- Performance optimization
- Increase FPS
- Decrease memory footprint
- Code signing
- Tools
- IDE
- Xcode
- Swiftlint
- Sourcery
- Fastlane
- Charles
- IDE
- Continuous Integration
- Jenkins / CircleCI / Bitrise / Github Actions
- Xcode server
- Security
- Keychain
- Security Transforms API
- Secure Enclave
- tvOS
- WatchKit
-
Computer Science knowledge
-
Algorithms
-
Sorting
-
Graph Theory
- Trees
-
Strings
- Greedy
- Dynamic Programming
- Bit Manipulation
-
Recursion
- Game Theory
- NP Complete
-
Big-O notation
-
-
Abstract Data Types
-
Stack
-
Array
-
List
-
Map
- Multimap
-
Set
- Multiset (Bag)
-
Graph
- Tree
-
Queue
- Priority Queue
- Double-ended priority queue
- Double-ended queue
-
-
System design
- Programming Paradigms
- Object-Oriented
- Functional
- Functional Reactive Programming Frameworks
- React Native
- RxSwift
- RxRealm, RxDataSources
- Combine
- Functional Reactive Programming Frameworks
-
-