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

1. Practical knowledge

1.1. First pet project ideas

1.2. Languages

1.2.1. Objective-C

1.2.1.1. Blocks

1.2.1.1.1. Memory Management

1.2.1.2. KVC

1.2.1.3. KVO

1.2.1.4. Toll-free bridging

1.2.1.5. Runtime

1.2.1.5.1. Swizzling

1.2.1.5.2. NSZombies and KVO implementation

1.2.1.5.3. Method messaging

1.2.2. Swift

1.2.2.1. Closures

1.2.2.2. Initializers

1.2.2.3. Generics

1.2.2.4. Protocols

1.2.2.5. Structs

1.2.2.6. Enums

1.2.2.7. Runtime

1.2.2.7.1. Method dispatch

1.3. Memory management

1.3.1. Stack and Heap

1.3.2. Value vs Reference type

1.3.3. MRC

1.3.4. ARC

1.3.4.1. Weak references

1.3.5. Retain cycles

1.3.6. Garbage collection

1.3.7. Memory leaks

1.3.8. Shallow and deep copying

1.3.9. Autorelease pool

1.4. Multithreading and concurency

1.4.1. POSIX and NSThreads

1.4.2. Perform selector family

1.4.3. GCD

1.4.4. NSOperation(Queue)

1.4.5. Runloop

1.4.6. Synchronization

1.4.7. Problems

1.4.7.1. Race condition

1.4.7.2. Deadlock

1.4.7.3. Readers–writers problem

1.5. Cocoa Touch

1.5.1. UIKit

1.5.1.1. UIApplication

1.5.1.1.1. States

1.5.1.1.2. UIApplicationDelegate

1.5.1.2. UIViews

1.5.1.2.1. UITableViews

1.5.1.2.2. UICollectionViews

1.5.1.3. Layers

1.5.1.4. Layout

1.5.1.4.1. Frame-based

1.5.1.4.2. Autolayout

1.5.1.5. Animations

1.5.1.6. Transform

1.5.1.7. Navigation

1.5.1.8. UIViewController

1.5.1.8.1. Lifecycle

1.5.2. Foundation

1.5.2.1. Notifications vs Delegation vs Observing

1.5.2.2. Collections

1.5.2.3. Networking

1.5.2.4. Serialization

1.5.2.4.1. NSCoding

1.5.2.4.2. Codable

1.5.2.4.3. JSON

1.5.2.4.4. XML

1.5.2.4.5. Protobuf

1.5.3. UserNotifications

1.5.4. Core Location

1.5.5. Core Motion

1.5.6. Work in background mode

1.6. Software Architecture

1.6.1. Design Patterns

1.6.1.1. Cocoa

1.6.1.1.1. Abstract Factory

1.6.1.1.2. Adapter

1.6.1.1.3. Command Pattern

1.6.1.1.4. Chain of Responsibility

1.6.1.1.5. Decorator

1.6.1.1.6. Facade

1.6.1.1.7. Memento

1.6.1.1.8. Observer

1.6.1.1.9. Proxy

1.6.1.1.10. Receptionist

1.6.1.1.11. Singleton

1.6.1.1.12. Template Method

1.6.1.1.13. MVC

1.6.1.2. Architectural

1.6.1.2.1. MVC

1.6.1.2.2. MVVM

1.6.1.2.3. MVP

1.6.1.2.4. Clean architecture

1.6.1.2.5. Coordinators

1.6.1.3. Creational

1.6.1.3.1. Factory

1.6.1.3.2. Abstract Factory

1.6.1.3.3. Builder

1.6.1.3.4. Factory Method

1.6.1.3.5. Object Pool

1.6.1.3.6. Prototype

1.6.1.3.7. Singleton

1.6.1.4. Structural

1.6.1.4.1. Adapter

1.6.1.4.2. Bridge

1.6.1.4.3. Composite

1.6.1.4.4. Decorator

1.6.1.4.5. Facade

1.6.1.4.6. Flyweight

1.6.1.4.7. Proxy

1.6.1.5. Behavioural

1.6.1.5.1. Command

1.6.1.5.2. Chain of responsibility

1.6.1.5.3. Interpreter

1.6.1.5.4. Iterator

1.6.1.5.5. Mediator

1.6.1.5.6. Memento

1.6.1.5.7. Observer

1.6.1.5.8. State

1.6.1.5.9. Strategy

1.6.1.5.10. Visitor

1.6.1.6. Concurrency

1.6.1.6.1. Anti-pattern

1.6.2. Design Principles

1.6.2.1. SOLID

1.6.2.2. Inversion of Control

1.6.2.2.1. Dependency Injection

1.6.2.2.2. Service Locator

1.6.2.3. Protocol-Oriented Programming

1.6.3. Object-Oriented Programming

1.6.4. Functional programming

1.6.4.1. Functional Reactive Programming Frameworks

1.6.4.1.1. React Native

1.6.4.1.2. RxSwift

1.6.4.1.3. RxRealm, RxDataSources

1.7. Dependencies management

1.7.1. Cocoapods

1.7.2. Carthage

1.7.3. Swift Package Manager

1.8. Project structure and File/Group organisation

1.9. Version Control Systems

1.9.1. Git

1.10. Debugging

1.10.1. Instruments

1.10.2. Best practices

1.10.2.1. Checklists

1.11. UX

1.12. Caching and Persistency

1.12.1. Core Data

1.12.2. Realm

1.12.3. YAPDatabase

1.13. Testing

1.13.1. Unit Tests

1.13.2. Snapshot Tests

1.13.3. Functional test

1.13.4. TDD

1.13.5. BDD

1.14. Performance optimization

1.14.1. Increase FPS

1.14.2. Decrease memory footprint

1.15. Code signing

1.16. Tools

1.16.1. IDE

1.16.1.1. Xcode

1.16.1.1.1. Interface Builder

1.16.2. Swiftlint

1.16.3. Sourcery

1.16.4. Fastlane

1.17. Continuous Integration

1.17.1. Jenkins

1.17.2. Xcode server

1.18. Security

1.18.1. Keychain

1.18.2. Security Transforms API

1.19. tvOS

1.19.1. Focus interactions

1.20. WatchKit

2. Computer Science knowledge

2.1. Algorithms

2.1.1. Sorting

2.1.2. Graph Theory

2.1.2.1. Trees

2.1.3. Strings

2.1.4. Greedy

2.1.5. Dynamic Programming

2.1.6. Bit Manipulation

2.1.7. Recursion

2.1.8. Game Theory

2.1.9. NP Complete

2.1.10. Big-O notation

2.2. Abstract Data Types

2.2.1. Stack

2.2.2. Array

2.2.3. List

2.2.4. Map

2.2.5. Multimap

2.2.6. Set

2.2.7. Multiset (Bag)

2.2.8. Graph

2.2.8.1. Tree

2.2.9. Queue

2.2.10.  Priority Queue

2.2.11. Double-ended priority queue

2.2.12. Double-ended queue

2.3. System design

2.3.1. Problems