- Stack and Heap
- Value vs Reference type
- ARC
- MRC
- Retain cycles
- Memory leaks
- Autorelease pool
- Shallow and deep copying
- Weak/Strong references
- Closures
- Generics
- Initializers
- Protocols
- Struct
- Enums
- Runtime
- Method dispatch
-
GCD
- Semaphors
- DispatchGroup
- DispatchWorkItem
- [+-] DispatchSource
- [+-] NSOperationQueue
- Race condition
- Deadlock
- Livelock
- Readers/writers problem
- Green threads
- Runloop
- UIApplication
- UIApplication: States
-
UIViews
- UITableViews
- UICollectionViews
-
Layout
- Frame-based
- Autolayout
- Navigation
- UIViewController
- UIViewController: Lifecycle
- URLSession
- Alamofire
- Rest API
- Difference between
GET
,POST
,PUT
,PATCH
,DELETE
- Notifications vs Delegation vs Observing
- Collections
- Networking
-
Serialization
- NSCoding
- Codable
- JSON
- XML
- MVC
- MVVM
- MVP
- VIPER
-
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
-
SOLID
- Single responsibility principle
- Open/closed principle
- Liskov substitution principle
- Interface segregation principle
- Dependency inversion principle
- Inversion of Control
- Dependency Injection
- Dry (don't repeat yourself)
- KISS (keep it simple, stupid)
- Cocoapods
- Carthage
- Swift Package Manager
- git
- SVN
- Core Data
- Realm
- YAPDatabase
- SQLite
- Unit Tests
- Snapshot Tests
- Functional test
- TDD
- BDD
- Workspace/cocoapods
- Interface Builder
- Keychain
- Security Transforms API
- UI Debbuging
- [[X] Reveal for UI Debuggin
- Instruments: Leaks
- Instruments: Time profiler
- Instruments: Allocations
- Zombies
- Activity monitor
- etc...
- Fastlane
- Jenkins
- Xcode server
- 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
- Protocol-Oriented
- OOP
- Functional
- React Native
- RxSwift
- RxRealm, RxDataSources
- 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
- Specta
- Expecta
- OCMock
-
Ray Wenderlich
- RxSwift ◼◼◼◽◽◽◽◽◽◽ 33%
- Animations ◼◽◽◽◽◽◽◽◽◽ 14%
- Jon Hoffman. Swift 4. Protocol-oriented Programming
- Try to catch Zombie
- Apple Human Interface Guideline
- Structs and class
- Design patterns
- Swift styleguide
- @AUTORELEASEPOOL
- Runloop
- Blocks
- Runtime
- KVC
- KVO
- NSZombies and KVO implementation
- Swizzling
- Method Swizzling
- KVO Implementation Official Documentation
- KVO Implementation Analysis By MikeAsh
- Introduction to Key-Value Observing Programming Guide
- Key-Value Observing
- About Key-Value Coding
- The Swift Programming Language: Closures
- The Swift Programming Language: Enumerations
- Generics in Swift 4
- Swift Generics Tutorial: Getting Started
- The Swift Programming Language: Generics
- Initialization In Depth, Part 1/2
- Initialization In Depth, Part 2/2
- Method Dispatch in Swift
- Separation of concerns using protocols in Swift
- Swift Optional Protocol Methods
- The Swift Programming Language: Protocols
- How does iOS Swift Runtime work
- The Swift Programming Language: Classes and Structures
- The Foundation Collection Classes
- A Crash Course on Networking in iOS
- >> WHEN TO USE DELEGATION, NOTIFICATION, OR OBSERVATION IN IOS
- Swift Codability
- Swift Blog: Working with JSON in Swift
- NSCoding / NSKeyedArchiver
- Introduction to Protocol Buffers on iOS
- Foundation Framework
- Parallel programming with Swift: Basics
- Concurrent Programming
- Multithreading: Common Pitfalls
- NSOperation
- performSelector may cause a leak because its selector is unknown
- Alternatives to performSelector
- Wiki: Readers–writers problem
- Dispatch Barriers in Swift 3
- Run Loops
- Synchronization
- Dependency Injection
- Protocol Oriented Programming in Swift: An Introduction
- Protocol-Oriented Programming in Swift
- Basic iOS Security: Keychain and Hashing
- The Three Laws of TDD
- Behavior-Driven Testing Tutorial for iOS with Quick & Nimble
- iOS Unit Testing and UI Testing Tutorial
- Singleton, Service Locator and tests in iOS
- Unit testing asynchronous Swift code
- iOS User Interfaces: Storyboards vs. NIBs vs. Custom Code
- Focus-Driven Interfaces with UIKit
- The App Life Cycle
- UIApplicationDelegate
- Managing Your App's Life Cycle
- UIApplication
- Understand the View Controller Lifecycle
- The Role of View Controllers
- Custom Collection View Layouts
- >> Clean Table View Code
- UIView Fundamentals
- objc.io Animations
- The Ultimate Guide To IOS AutoLayout
- Understanding Autolayout Constraints In Depth
- CGGeometry
- CALayer Tutorial for iOS: Getting Started
- Demystifying iOS Layout
- Improve your iOS Architecture with FlowControllers
- Screen navigation in iOS
- Introduction To UIStackView
- Understanding UIView transform property (part 1)
- Understanding UIView transform property (final)
- UIKit Framework
- How to make friends with UIKit
- UIKit fundamentals
- Pro Git
- Friday Q&A 2015-12-11: Swift Weak References
- Beginning ARC in iOS 5 Tutorial Part 1
- Swift’s ARC and Memory Leaks
- Memory Management Tutorial for iOS
- Retain Cycles, Weak and Unowned in Swift
- Object copying
- Stack and Heap Objects in Objective-C
- Stack vs Heap
- Articles #2
- About Memory Management
- How do reference counting and garbage collection compare?
- RIBs
- Clean architecture with RxSwift
- Stanford MVC
- Do MVC like it’s 1979
- iOS Architecture Patterns
- Designing iOS architecture: Motivation
- Designing iOS architecture: Checklist
- Class Clusters
- Cocoa Design Patterns
- Collection for Design Patterns in Swift
- Instruments Tutorial with Swift: Getting Started
- Carthage Tutorial: Getting Started
- CocoaPods Tutorial for Swift: Getting Started
- Swift Package Manager
- Core Data Programming Guide
- Core Data from Scratch: Concurrency
- Realm
- iOS Location Tracking
- Core Motion
- Health and Fitness with Core Motion
- Creating Immersive Apps with Core Motion
- UserNotifications in Swift 3 (Part 1)
- Background Modes Tutorial: Getting Started
- Big O notation
- Swift Algorithm Club: Boyer Moore String Search Algorithm
- Swift Algorithm Club
- Algorithms Specialization
- Interactive diagrams of Rx Observables
- Structures in Swift
- Copy-On-Write
- GCD
- HTTP timeouts
- Когда удаляются autorelease объекты
- Unsafe Swift
- Лицензирование (Licenses)
- SSH
- Increase FPS
- Decrease memory footprint
- Protobuf
- Work in background mode
- Learning Path: RxSwift from Start to Finish
- fastlane Tutorial: Getting Started
- Fastlane
- Objective-C Runtime Programming Guide
- Obj-Runtime
- How Objective-C messaging works
- Friday Q&A 2013-02-08: Let's Build Key-Value Coding
- Friday Q&A 2009-08-14: Practical Blocks
- How blocks are implemented (and the consequences)
- generate a unique ID for each URL?
- How would you generate unique IDs at scale (thousands of URL shortening requests coming every second)?
- How would your service handle redirects?
- How would you support custom short URLs?
- How to delete expired URLs etc?
- How to track click stats?
- How would you record stats about videos e.g the total number of views, up-votes/down-votes, etc.
- How would a user add comments on videos (in realtime)
- How would you design one-on-one conversations between users?
- How would you extend your design to support group chats?
- What to do when the user is not connected to the internet?
- When to send push notifications?
- Can you provide end-to-end encryption. How?
- Records stats for each answer e.g. the total number of views, upvotes/downvotes, etc.
- Users should be able to follow other users or topics
- Their timeline will consist of top questions from all the users and topics they follow (similar to newsfeed generation).
- How would users be able to upload/view/search/share files or photos?
- How would you track persmissions for file sharing
- How would you allow multiple users to edit the same document
- Efficient storage and search for posts or tweets.
- Newsfeed generation
- Social Graph (who befriends whom or who follows whom — specially when millions of users are following a celebrity)
- The most critical use case — when a customer requests a ride and how to efficiently match them with the nearby drivers?
- How to store millions of geographical locations for drivers and riders who are always moving.
- How to handle updates to driver/rider locations (millions of updates every second)?
- How to store previous search queries?
- How to keep the data fresh?
- How to find the best matches to the already typed string?
- How to handle updates and the user is typing too fast?