Mobile Application Development

  1. Native iOS Development
    1. The Apple Ecosystem
      1. iOS, iPadOS, watchOS
        1. Platform Differences
          1. Screen Sizes
            1. Interaction Models
            2. Universal Apps
              1. Multi-Platform Support
                1. Shared Codebase
              2. Human Interface Guidelines (HIG)
                1. Design Principles
                  1. Clarity
                    1. Deference
                      1. Depth
                      2. UI Components
                        1. Tab Bars
                          1. Buttons and Controls
                      3. Setting Up the Development Environment
                        1. Xcode IDE
                          1. Installation and Configuration
                            1. Mac Requirements
                              1. Developer Account Setup
                              2. Interface Builder
                                1. Storyboard Design
                                  1. Auto Layout
                                2. iOS SDK
                                  1. Frameworks Overview
                                    1. UIKit
                                      1. SwiftUI
                                        1. Foundation
                                      2. Simulators
                                        1. Device Simulation
                                          1. Multiple Device Types
                                            1. iOS Version Testing
                                            2. Debugging Tools
                                              1. Breakpoints
                                                1. Console Output
                                            3. The Swift Programming Language
                                              1. Basic Syntax and Types
                                                1. Variables and Constants
                                                  1. Data Types
                                                    1. Type Inference
                                                    2. Control Flow
                                                      1. Conditional Statements
                                                        1. Loops
                                                          1. Switch Statements
                                                          2. Functions and Closures
                                                            1. Function Declaration
                                                              1. Parameters and Return Types
                                                                1. Closure Expressions
                                                                2. Structs, Classes, and Enums
                                                                  1. Value vs Reference Types
                                                                    1. Inheritance
                                                                      1. Associated Values
                                                                      2. Protocols and Extensions
                                                                        1. Protocol Definition
                                                                          1. Protocol Conformance
                                                                            1. Extension Methods
                                                                            2. Optionals and Error Handling
                                                                              1. Optional Binding
                                                                                1. Nil Coalescing
                                                                                  1. Error Throwing
                                                                                  2. Concurrency (async/await)
                                                                                    1. Structured Concurrency
                                                                                      1. Async Functions
                                                                                        1. Await Expressions
                                                                                        2. Task and TaskGroup
                                                                                          1. Task Creation
                                                                                            1. Task Cancellation
                                                                                        3. iOS Application Fundamentals
                                                                                          1. App Delegate and Scene Delegate
                                                                                            1. App Lifecycle Management
                                                                                              1. Launch Process
                                                                                                1. Background Transitions
                                                                                              2. The App Lifecycle
                                                                                                1. States
                                                                                                  1. Active
                                                                                                    1. Inactive
                                                                                                      1. Background
                                                                                                        1. Suspended
                                                                                                      2. Info.plist Configuration
                                                                                                        1. App Metadata
                                                                                                          1. Bundle Identifier
                                                                                                            1. Version Information
                                                                                                            2. Permissions
                                                                                                              1. Usage Descriptions
                                                                                                                1. Required Capabilities
                                                                                                            3. Building User Interfaces
                                                                                                              1. Declarative UI with SwiftUI
                                                                                                                1. Views and Modifiers
                                                                                                                  1. View Protocol
                                                                                                                    1. Modifier Chains
                                                                                                                      1. Custom Modifiers
                                                                                                                      2. State Management
                                                                                                                        1. @State
                                                                                                                          1. Local State
                                                                                                                            1. State Updates
                                                                                                                            2. @Binding
                                                                                                                              1. Two-Way Binding
                                                                                                                                1. Parent-Child Communication
                                                                                                                                2. @StateObject
                                                                                                                                  1. Observable Objects
                                                                                                                                    1. Object Lifecycle
                                                                                                                                  2. Layouts
                                                                                                                                    1. VStack
                                                                                                                                      1. HStack
                                                                                                                                        1. ZStack
                                                                                                                                          1. Grids
                                                                                                                                            1. LazyVGrid
                                                                                                                                              1. LazyHGrid
                                                                                                                                            2. Animations and Transitions
                                                                                                                                              1. Implicit Animations
                                                                                                                                                1. Explicit Animations
                                                                                                                                                  1. Custom Transitions
                                                                                                                                                2. Imperative UI with UIKit
                                                                                                                                                  1. View Controllers
                                                                                                                                                    1. UIViewController Lifecycle
                                                                                                                                                      1. View Controller Hierarchy
                                                                                                                                                      2. Storyboards and XIBs
                                                                                                                                                        1. Interface Builder
                                                                                                                                                          1. Segues
                                                                                                                                                          2. Auto Layout
                                                                                                                                                            1. Constraints
                                                                                                                                                              1. Priority and Resistance
                                                                                                                                                              2. Programmatic UI Creation
                                                                                                                                                                1. View Creation
                                                                                                                                                                  1. Constraint Programming
                                                                                                                                                                  2. Table Views and Collection Views
                                                                                                                                                                    1. Data Sources
                                                                                                                                                                      1. Delegates
                                                                                                                                                                        1. Cell Configuration
                                                                                                                                                                    2. Data Persistence
                                                                                                                                                                      1. UserDefaults
                                                                                                                                                                        1. Key-Value Storage
                                                                                                                                                                          1. Standard Defaults
                                                                                                                                                                            1. Custom Property Lists
                                                                                                                                                                          2. SwiftData
                                                                                                                                                                            1. Lightweight Data Storage
                                                                                                                                                                              1. Model Definition
                                                                                                                                                                                1. Query Interface
                                                                                                                                                                              2. Core Data
                                                                                                                                                                                1. Entities and Relationships
                                                                                                                                                                                  1. Data Model Design
                                                                                                                                                                                    1. Relationship Types
                                                                                                                                                                                    2. Fetch Requests
                                                                                                                                                                                      1. Predicate Filtering
                                                                                                                                                                                        1. Sort Descriptors
                                                                                                                                                                                        2. Migrations
                                                                                                                                                                                          1. Lightweight Migrations
                                                                                                                                                                                            1. Custom Migrations
                                                                                                                                                                                          2. Property Lists and Codable
                                                                                                                                                                                            1. Serialization and Deserialization
                                                                                                                                                                                              1. JSON Encoding
                                                                                                                                                                                                1. Property List Format
                                                                                                                                                                                              2. Filesystem Storage (FileManager)
                                                                                                                                                                                                1. Document Directory
                                                                                                                                                                                                  1. User Documents
                                                                                                                                                                                                    1. File Operations
                                                                                                                                                                                                    2. Temporary Directory
                                                                                                                                                                                                      1. Cache Management
                                                                                                                                                                                                        1. Cleanup Strategies
                                                                                                                                                                                                    3. Networking
                                                                                                                                                                                                      1. URLSession
                                                                                                                                                                                                        1. Data Tasks and Download Tasks
                                                                                                                                                                                                          1. Request Configuration
                                                                                                                                                                                                            1. Response Handling
                                                                                                                                                                                                          2. Handling JSON with Codable
                                                                                                                                                                                                            1. Automatic Encoding
                                                                                                                                                                                                              1. Custom Coding Keys
                                                                                                                                                                                                              2. Async/Await for Network Calls
                                                                                                                                                                                                                1. Asynchronous Networking
                                                                                                                                                                                                                  1. Error Propagation
                                                                                                                                                                                                                  2. Error Handling in Networking
                                                                                                                                                                                                                    1. Network Error Types
                                                                                                                                                                                                                      1. Retry Mechanisms