материалы
Objective-C
Blocks
Memory Management
KVC
KVO
Toll-free bridging
Runtime
Method messaging
NSZombies and KVO implementation
Swizzling
————————————————
Swift
Closures
Initializers
Generics
Protocols
Structs
Enums
Runtime
Method dispatch
—————————————————
Memory management
Stack and Heap
Value vs Reference type
MRC
ARC
Weak references
Retain cycles
Garbage collection
Memory leaks
Shallow and deep copying
Autorelease pool
—————————————————
Multithreading and concurrency
POSIX and NSThreads
Perform selector family
GCD
NSOperation(Queue)
Runloop
Synchronization
Problems
Race condition
Deadlock
Readers–writers problem
————————————————
UIKit
UIApplication
States
UIApplicationDelegate
UIViews
UITableViews
UICollectionViews
Layers
Layout
Frame-based
Autolayout
UIStackView
Animations
Transform
Navigation
UIViewController
Lifecycle
————————————————
Foundation
Notifications vs Delegation vs Observing
Collections
Networking
Serialization
NSCoding
Codable
JSON
XML
Protobuf
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
Architectural
MVC
MVVM
MVP
Clean architecture
VIPER
RIBs
Coordinators
————————————————
Design Principles
SOLID
Inversion of Control
Dependency Injection
Service Locator
Protocol-Oriented Programming
—————————————————
Dependencies management
Cocoapods
Carthage
Swift Package Manager
————————————————
Git
———————————————
Caching and Persistency
Core Data
Realm
YAPDatabase
———————————————
Testing
Unit Tests
Snapshot Tests
Functional test
UI Tests
TDD
BDD