Hack iOS Development

The following checklist is a roadmap for iOS developers who want to become experts in this area. Read the Medium post to learn more.

Computer Science

  • History of the computer
  • Hardware
    • CPU
    • RAM
    • Storage (HDD, SSD)
  • Basics of programming (Swift)
    • Constants, Variables, Data Types
    • Basic Operations
    • Strings and Characters
    • Collection Types
    • Control Flow
    • Functions
    • Basics of Algorithms
      • Efficiency (Big O and Omega Notations)
      • Search (Linear, Binary)
      • Sort (Bubble, Selection, Insertion, Merge)
      • Graphs
      • Machine Learning
    • Basics of Data Structures
      • Array
      • Queue
      • List
      • Tree
      • Hash table
      • Sets
      • Graphs
    • Memory
      • Pointers
      • Segmentation Faults
      • Dynamic Memory Allocation
      • Stack
      • Heap
      • Buffer Overflow
      • Data Structures
      • File I/O
      • Images
  • Swift Language
    • Closures
    • Enumerations
    • Structures and Classes
    • Properties
    • Methods
    • Subscripts
    • Inheritance
    • Initialization
    • Deinitialization
    • Optional Chaining
    • Error Handling
    • Concurrency
    • Type Casting
    • Nested Types
    • Extensions
    • Protocols
    • Generics
    • Opaque Types
    • Automatic Reference Counting
    • Memory Safety
    • Access Control
    • Advanced Operators
    • Method Dispatch
    • Advanced Memory Management (Memory Layout, Copy-on-write)
    • Async/await

iOS Platform

  • Xcode
    • Project
    • Target
    • Settings, Configurations, Schemes
    • Property List Files, Nib Files, Code Files, Resources,
    • Frameworks, SDKs, and Packages
    • App Launch Process
  • UIKit
    • UIView
    • UIWindow
    • UIViewController
    • Auto Layout
    • Touches
    • Gestures
  • Core Graphics
    • Images,
    • Drawing
  • Core Animation
    • Layers
    • Animation
  • Advanced View Controllers
    • Storyboard Layout
    • Manual Layout
    • Tab Bar Controller
    • Navigation Controller
    • Page View Controller
    • Container View Controller
  • Scroll View
  • Table View
  • Collection View
  • SwiftUI
  • Text
    • Label
    • Text Filed
    • Text View
    • Attributed Strings
    • Text Kit
  • Controls
  • Multithreading
    • Thread
    • Grand Central Dispatch
    • Operations
    • Runloop
  • Notification Center
  • Web View
  • Modal View
  • Audio
  • Video
  • Camera and Photo Library
  • Contacts
  • Calendar
  • Map
  • Core Location
  • Persistent Storage
    • User Defaults
    • Files
    • XML, JSON
    • SQLite
    • Core Data
    • PDF
  • Networking
  • In-App Purchases
  • User Notifications
  • TCP/IP
  • Sockets
  • Power Management
  • File System
  • Security

Product Thinking

  • Processes
    • Time Management
    • Communications
    • Decision Making
  • Product (Economics)
    • Market Research
    • Customer Development
    • Analytics
    • Monetisation
    • A/B-testing, Experiments
    • Minimal Viable Product
  • Design
    • User Experience, Human Oriented Design
    • Visual Design, User Interface Design

Resources

CS50 – one of the most popular Computer Science courses developed by Harvard University. It helps to learn basics of programming. Algorithms, data structures, memory, computational thinking, the C language and more.

Book «Code: The Hidden Language of Computer Hardware and Software» – a book describes how computer works. Even if you don’t have any technical background, this book will help you understand computer work.

Swift Language Guide – official documentation of the Swift language provided by Apple and Swift’s open-source community.