My-iOS-Dev-Learning-Tracker icon indicating copy to clipboard operation
My-iOS-Dev-Learning-Tracker copied to clipboard

A log of my iOS development skills, links to useful articles, highlights and many more.

RepoCover

🎯 My-iOS-Dev-Learning-Tracker

Hi! This is my log of iOS development skills, resources, highlights and many more that eventially evolved into a constantly growing knowledge base
Here gethered the bare minimum you need to know to become an iOS developer. Highlighted themes are most essential topics Feel free to contribute!

🗺 iOS Developer skills Tree navigation

❇️ General notes

✊ Practical knowledge

  • Pet projects
  • Practice projects
  • Languages
  • Memory management
  • Multithreading and concurrency
  • SwiftUI
  • Cocoa Touch
  • Software Architecture
  • Dependencies management
  • Project structure organisation
  • Version Control Systems
  • Debugging
  • UX
  • Caching and Persistency
  • Testing
  • Performance optimization
  • Code signing
  • Tools
  • Continuous Integration
  • Security
  • tvOS
  • WatchKit
  • Core ML

🧠 Computer Science knowledge

  • Algorithms
  • Abstract Data Types
  • System design
  • Programming Paradigms

🥁 Project Management knowledge

  • Project Management Metodologies

❇️ General notes


✊ Practical knowledge

Pet projects

Practice projects

Languages

Memory management

  • [X] Stack and Heap
  • [X] Value vs Reference type
  • [X] MRC
  • [X] ARC
    • [X] Weak references
  • [X] Retain cycles
  • [X] Garbage collection
  • [X] Memory leaks
  • [X] Shallow and deep copying
  • [X] Autorelease pool

Multithreading and concurrency

  • [ ] POSIX and NSThreads
  • [ ] Perform selector family
  • [ ] GCD
  • [X] NSOperation(Queue)
  • [X] Runloop
  • [X] Synchronization
  • [ ] Problems
    • [ ] Race condition
    • [ ] Deadlock
    • [ ] Readers–writers problem

SwiftUI

Cocoa Touch

Software Architecture

  • [ ] Design Patterns
    • [ ] Cocoa
      • [ ] Abstract Factory
        • [ ] Class cluster
      • [ ] Adapter
      • [ ] Command Pattern
      • [ ] Chain of Responsibility
      • [ ] Decorator
        • [ ] Delegation
        • [ ] Categories
      • [ ] Facade
      • [ ] Memento
      • [ ] Observer
      • [ ] Proxy
      • [ ] Receptionist
      • [X] Singleton
      • [ ] Template Method
      • [ ] MVC
    • [ ] Architectural
      • [X] MVC
      • [X] MVVM
      • [X] MVP
      • [ ] Clean architecture
        • [ ] VIPER
        • [ ] RIBs
      • [ ] Coordinators
    • [ ] Creational
      • [ ] Factory
      • [ ] Abstract Factory
      • [ ] Builder
      • [ ] Factory Method
      • [ ] Object Pool
      • [ ] Prototype
      • [X] Singleton
    • [ ] Structural
      • [ ] Adapter
      • [ ] Bridge
      • [ ] Composite
      • [ ] Decorator
      • [ ] Facade
      • [ ] Flyweight
      • [ ] Proxy
    • [ ] Behavioural
      • [ ] Command
      • [ ] Chain of responsibility
      • [ ] Interpreter
      • [ ] Iterator
      • [ ] Mediator
      • [ ] Memento
      • [ ] Observer
      • [ ] State
      • [ ] Strategy
      • [ ] Visitor
    • [ ] Concurrency
      • [ ] Anti-pattern
  • [X] Design Principles
    • [X] SOLID
    • [X] DRY
    • [X] KISS
    • [X] YAGNI
    • [X] Inversion of Control
      • [X] Dependency Injection
      • [ ] Service Locator
    • [ ] Protocol-Oriented Programming

Dependencies management

Project structure organization

Version Control Systems

Debugging

  • [ ] Instruments
  • [ ] Best practices
    • [ ] Checklists

UX

Caching and Persistency

  • [X] UserDefaults
  • [ ] Saving files to disk (Codable)
  • [ ] Keychain
  • [ ] SQLite
  • [ ] Core Data
  • [ ] Realm
  • [ ] Property Lists
  • [ ] YAPDatabase

Testing

  • [X] FIRST principles
  • [X] Unit Tests
  • [X] Snapshot Tests
  • [X] Functional test
  • [X] UI Tests
  • [X] TDD (Test Driven Development)
  • [ ] BDD

Performance optimization

  • [ ] Increase FPS
  • [ ] Decrease memory footprint

Code signing

Tools

Continuous Integration

  • [ ] Jenkins / CircleCI / Bitrise / Github Actions
  • [ ] Xcode server

Security

  • [ ] Keychain
  • [ ] Security Transforms API
  • [ ] Secure Enclave

tvOS

  • [ ] Focus interactions

WatchKit

Core ML

  • [X] Model conversion
  • [X] Create ML

Augmented Reality


🧠 Computer Science knowledge

Algorithms

Abstract Data Types

System design

  • [ ] Problems

Programming Paradigms

  • [X] Object-Oriented
  • [ ] Functional
    • [ ] Functional Reactive Programming Frameworks
      • [ ] React Native
      • [ ] RxSwift
      • [ ] RxRealm, RxDataSources
      • [ ] Combine

🥁 Project Management knowledge

Project Management Metodologies

  • [X] Kanban
  • [ ] Scrum
  • [ ] Agile
  • [ ] Lean
  • [ ] Waterfall
  • [ ] Six Sigma
  • [ ] PMI/PMBOK

😉 Feel free to text me

Mail: [email protected]
Instagram: @lemonbrusher
Twitter: @Lemonbrusher

🙏 Acknowledgments

I was inspired by Syknapse. He does cool things! The tree is almost complete copy of iOS-Developer-Roadmap


⬆️ Return to the Tree navigation ⬆️