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