The following checklist is a roadmap for iOS developers who want to become experts in this area. Read the Medium post to learn more.
- 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
- 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
- Networking
- In-App Purchases
- User Notifications
- TCP/IP
- Sockets
- Power Management
- File System
- Security
- 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
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.