Books
Ray Wenderlich
- Grosch S. - Concurrency by Tutorials (1st Edition) - 2019
- SwiftUI by Tutorials - 2020
- Todorov M. - Realm. Building Modern Swift Apps with Realm Database (2nd Edition) - 2019
- Animations by Tutorials - 2019
- Greene J., Strawn J. - Design Patterns by Tutorials (3rd Edition) - 2019
- Jon Hoffman. Swift 4. Protocol-oriented Programming
☑️ Memory manadgment
- Stack and Heap
- Value vs Reference type
- ARC/ MRC
- Retain cycles / Memory leaks
- Shallow and deep copying
- Weak/Strong references
☑️ Swift
- Closures,
- Generics
- Initializers
- Protocols
- Struct
- Enums
- Runtime
- Method dispatch
☑️ Multithreading and concurency
- GCD
- NSOperationQueue
- Race condition, deadlock, livelock
- Readers/writers problem
- Green threads
☑️ UIKit
- UIApplication
- UIApplication: States
Layout
- Navigation
- UIViewController
- UIViewController: Lifecycle
☑️ Networking
- URLSession
- Alamofire
- Rest API (Difference between
GET
, POST
, PUT
, PATCH
, DELETE
)
☑️ Foundation
- Notifications vs Delegation vs Observing
- Collections
- Networking
- Serialization (NSCoding, Codable, JSON, XML)
☑️ Software Architecture
Design patterns
Creational
- Factory
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Object Pool
- Singleton
Structural
- Adapter
- Bridge
- Composite
- Decorator
- Facade
- Flyweight
- Proxy
Behavioural
- Command
- Chain of responsibility
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Visitor
Other
- Anti-pattern
- Class cluster
- Chain of Responsibility
- Receptionist
- Template Method
Design principles
- SOLID
- Inversion of Control
- Dependency Injection
- Dry (Don't repeat yourself)
- KISS (Keep it simple, stupid)
☑️ Dependency management
- Cocoapods
- Carthage
- Swift Package Manager
☑️ Version Control System
Caching and Presistency
- Core Data
- Realm
- YAPDatabase
- SQLite
Testing
- Unit Tests
- Snapshot Tests
- Functional test
- TDD
- BDD
- Workspace/cocoapods
- Interface Builder
- Keychain
- Security Transforms API
- UI Debbuging
- Reveal for UI Debuggin
- Instruments: Leaks
- Instruments: Time profiler
- Instruments: Allocations
- Zombies
- Activity monitor
- Charles: request/response. Mock, rewrite http data etc...
Continuous Integration
- Fastlane
- Jenkins
- Xcode server
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
Programming Paradigms
Libs, frameworks, pods, Kit's
- ObjectMapper (pod)
- Charts (pod)
- Payments and subscription
- Moya
- BLE (Bluetooth Low Energy)
- AVFoundation
- AVKit
- ARKit
- HomeKit
- MedKit
- MapKit
- YandexMap
- Animations
- Core Graphics
- Core Animation
- Transformation
- tvOS
- Focus interactions
- WatchKit
- TDD utils
☑️ Course and tutorials
Articles (must have)