CodeWars

iOS Developer Roadmap


HackerRank profile

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
    • Frame-based
    • Autolayout
  • 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

  • MVC
  • MVVM
  • MVP
  • VIPER

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

  • Git
  • SVN

Caching and Presistency

  • Core Data
  • Realm
  • YAPDatabase
  • SQLite

Testing

  • Unit Tests
  • Snapshot Tests
  • Functional test
  • TDD
  • BDD

XCode/Tools/Debbuging

  • 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

  • Protocol-Oriented
  • OOP

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
    • Specta
    • Expecta
    • OCMock

☑️ Course and tutorials

Articles (must have)



Skills matrix

Контакты для связи: