Get Started. It's Free
or sign up with your email address
IOS developer by Mind Map: IOS developer

1. Security

1.1. Keychain

1.2. Security Transforms API

2. Swift

2.1. Closures

2.2. Initializers

2.3. Generics

2.4. Protocols

2.5. Structs

2.6. Enums

2.7. Runtime

2.7.1. Method dispatch

3. Languages

3.1. Objective-C

3.1.1. Blocks

3.1.1.1. Memory Management

3.1.2. KVC

3.1.3. KVO

3.1.4. Toll-free bridging

3.1.5. Runtime

3.1.5.1. Swizzling

3.1.5.2. NSZombies and KVO implementation

3.1.5.3. Method messaging

3.2. Perform selector family

4. Factory

5. Memory management

5.1. Stack and Heap

5.2. Value vs Reference type

5.3. MRC

5.4. ARC

5.4.1. Weak references

5.5. Retain cycles

5.6. Garbage collection

5.7. Memory leaks

5.8. Shallow and deep copying

5.9. Autorelease pool

6. Practical knowledge

6.1. First pet project ideas

6.2. Multithreading and concurency

6.2.1. POSIX and NSThreads

6.2.2. GCD

6.2.3. NSOperation(Queue)

6.2.4. Runloop

6.2.5. Synchronization

6.2.6. Problems

6.2.6.1. Race condition

6.2.6.2. Deadlock

6.2.6.3. Readers–writers problem

6.3. Cocoa Touch

6.3.1. UIKit

6.3.1.1. UIApplication

6.3.1.1.1. States

6.3.1.1.2. UIApplicationDelegate

6.3.1.2. UIViews

6.3.1.2.1. UITableViews

6.3.1.2.2. UICollectionViews

6.3.1.3. Layers

6.3.1.4. Layout

6.3.1.4.1. Frame-based

6.3.1.4.2. Autolayout

6.3.1.5. Animations

6.3.1.6. Transform

6.3.1.7. Navigation

6.3.1.8. UIViewController

6.3.1.8.1. Lifecycle

6.3.2. Core Motion

6.3.3. UserNotifications

6.3.4. Core Location

6.4. Foundation

6.4.1. Notifications vs Delegation vs Observing

6.4.2. Collections

6.4.3. Networking

6.4.4. Serialization

6.4.4.1. NSCoding

6.4.4.2. Codable

6.4.4.3. JSON

6.4.4.4. XML

6.4.4.5. Protobuf

6.5. Work in background mode

6.6. Software Architecture

6.6.1. Design Patterns

6.6.1.1. Cocoa

6.6.1.1.1. Abstract Factory

6.6.1.1.2. Adapter

6.6.1.1.3. Command Pattern

6.6.1.1.4. Chain of Responsibility

6.6.1.1.5. Decorator

6.6.1.1.6. Facade

6.6.1.1.7. Memento

6.6.1.1.8. Proxy

6.6.1.1.9. Receptionist

6.6.1.1.10. Singleton

6.6.1.1.11. Observer

6.6.1.1.12. Template Method

6.6.1.1.13. MVC

6.6.1.2. Architectural

6.6.1.2.1. MVC

6.6.1.2.2. MVVM

6.6.1.2.3. MVP

6.6.1.2.4. Clean architecture

6.6.1.2.5. Coordinators

6.6.1.3. Creational

6.6.1.3.1. Abstract Factory

6.6.1.3.2. Builder

6.6.1.3.3. Factory Method

6.6.1.3.4. Prototype

6.6.1.3.5. Object Pool

6.6.1.3.6. Singleton

6.6.1.4. Structural

6.6.1.4.1. Adapter

6.6.1.4.2. Bridge

6.6.1.4.3. Composite

6.6.1.4.4. Decorator

6.6.1.4.5. Facade

6.6.1.4.6. Flyweight

6.6.1.4.7. Proxy

6.6.1.5. Behavioural

6.6.1.5.1. Command

6.6.1.5.2. Chain of responsibility

6.6.1.5.3. Interpreter

6.6.1.5.4. Iterator

6.6.1.5.5. Mediator

6.6.1.5.6. Memento

6.6.1.5.7. Observer

6.6.1.5.8. State

6.6.1.5.9. Strategy

6.6.1.5.10. Visitor

6.6.1.6. Concurrency

6.6.1.6.1. Anti-pattern

6.6.2. Design Principles

6.6.2.1. SOLID

6.6.2.2. Inversion of Control

6.6.2.2.1. Dependency Injection

6.6.2.2.2. Service Locator

6.6.2.3. Protocol-Oriented Programming

6.6.3. Object-Oriented Programming

6.6.3.1. Focus interactions

6.6.4. Functional programming

6.6.4.1. Functional Reactive Programming Frameworks

6.6.4.1.1. React Native

6.6.4.1.2. RxSwift

6.6.4.1.3. RxRealm, RxDataSources

6.7. Dependencies management

6.7.1. Cocoapods

6.7.2. Carthage

6.7.3. Swift Package Manager

6.8. Project structure and File/Group organisation

6.9. Version Control Systems

6.9.1. Git

6.10. Debugging

6.10.1. Best practices

6.10.1.1. Checklists

6.10.2. Instruments

6.11. UX

6.12. Caching and Persistency

6.12.1. Core Data

6.12.2. Realm

6.12.3. YAPDatabase

6.13. Testing

6.13.1. Unit Tests

6.13.2. Snapshot Tests

6.13.3. Functional test

6.13.4. TDD

6.13.5. BDD

6.14. Performance optimization

6.14.1. Increase FPS

6.14.2. Decrease memory footprint

6.15. Code signing

6.16. Tools

6.16.1. IDE

6.16.1.1. Xcode

6.16.1.1.1. Interface Builder

6.16.2. Swiftlint

6.16.3. Sourcery

6.16.4. Fastlane

6.17. Continuous Integration

6.17.1. Jenkins

6.17.2. Xcode server

6.18. tvOS

6.19. WatchKit

7. Computer Science knowledge

7.1. Algorithms

7.1.1. Sorting

7.1.2. Graph Theory

7.1.2.1. Trees

7.1.3. Strings

7.1.4. Greedy

7.1.5. Dynamic Programming

7.1.6. Bit Manipulation

7.1.7. Recursion

7.1.8. Game Theory

7.1.9. NP Complete

7.1.10. Big-O notation

7.2. Abstract Data Types

7.2.1. Stack

7.2.2. Array

7.2.3. List

7.2.4. Map

7.2.5. Multimap

7.2.6. Set

7.2.6.1. Multiset (Bag)

7.2.7. Graph

7.2.7.1. Tree

7.2.8. Queue

7.2.9. Double-ended queue

7.2.10.  Priority Queue

7.2.11. Double-ended priority queue

7.3. System design

7.3.1. Problems