iOS Training Outline

curriculum made for the real world

Module 1: Learner

OOPS Concepts

Implement basic Swift features like Xcode project setup, Playgrounds, Constants , Variables, Properties: Stored, Computed , Static, Data Types, Explicit/Implicit type declaration, Optional variables, Control Statements (if , if else), Array, Dictionary, set , tuple, Loops (for loop, while loop),

Functions(declaration, body, calling ), Optional binding (If let, guard let, nil coalescing), Optional Chaining, Protocols , Enum, . Struct, Class, Struct vs class, Initializers, Class/Protocol extension, Closures

App life cycle and View Controller Life Cycle

Create Storyboard , Xib and basic UI controls like UILabel , UIButton, TableView, Custom Table View Cell, Navigation View Controller -Connect IBOutlets and IBActions

Auto layout constraints, Leading, Trailing, Top , Bottom etc -Size Classes

Json Structure and Parse Using JSON Decoder
Apply Apple networking class URLSession to do Rest API Call

Navigate from one view Controller to another and pass data
Understand MVC architecture
Writing basic Unit tests using XCtest for logic parts
Tab Bar controller, Handling Multiple Storyboards
Collaboration on Git with a large team, fixing merge conflicts in Story boards ,project files, Swift files

Apply Core Location framework to get users current location and displaying on Map using MapKit Framework

Module 2: Practitioner

Understand MVVM architecture and creating MVVM project from scratch

Compare MVC and MVVM and Migrate MVC code to MVVM architecture

Understand Reactive framework Combine, (publisher, Sink, Operators)

Apply Combine to URLSession to do network Api calls

Apply Combine to do data binding in MVVM
Apply Async Await to implement URLSession
Able to perform Code Reviews
Apply Dependency Inversion Principle
Write Unit tests for ViewModel and Network Layer (Mocking and Stubbing)

Apply SwiftUI Concepts to create UI, Understand Test, Buttons, List , Grids, Stacks.

Apply SwiftUI Concepts like State BInding, Observed Object, State Object, Environment Object, View Modifiers, View Builders, GeometricReader, Geometric Proxy

Use POP Concepts (Protocol Oriented Programming)

Implement Swift feature like Generic, Associated Type, Error Handling, Do try catch, try, try!, throw, throws, Escaping/Non Escaping closures, auto closures, Use of struct vs Classes, Dependency Injections (initializers vs function vs global properties), Access Specifiers, Higher Order functions (map,

Reduce, filter, sort, compactMap), Memory Management, Strong, Weak vs Unowned References, Retain Cycle, how to resolve retain cycle, Associated Values

Module 3: Specialist

Implement Swift features like Concurrency, GCD, Operation/Operation Queue, Async Await, Actors, Creational Design Patterns like Singleton, Factory, Behaviour Design Patterns like Protocol Delegation pattern, Strategy Pattern, Used Version control to cr eate branch and merge branches

Security in iOS and write code for SSL pinning to prevent Man in middle attack

Keychain to store small sensitive data
Userdefault to store small non sensitive data
4 Core Data to store Large Data

Core Data Stack, Multithreading in Core Data , Core Data Migration -Integrate 3rd Party Frameworks Using Cocoa Pods and SPM -Creating certificates and provisioning profiles
Creating App file and iPA file

Manually releasing app to Testflight and App Store
Adding 3rd Party Frameworks Like Firebase Crashlytics, Analytics, Alamofire

Module 4: Advanced

VIPER architecture, Migrating from MVC to VIPER -Adding Coordinator Layer in MVVM i.e MVVM C -Adding Repository Layer in MVVM
Clean Architecture

RxSwift to do data Binding
Accessibility (Voice Over, Dynamic Fonts ) -CI/CD tools (Jenkins, Circle CI etc ) -Integration of external system like Azure, AWS

Implement Device Features LIke BaroMeter, Compass, Gyroscope, Magnetometer, Core Bluetooth Connections -Biometric Authentication using LA Framework

Implementing Audio Video Streaming using AVKIT (HLS Streaming)

The course outline above is a general overview of topics covered and skills learned. It is subject to change. Actual course may slightly differ from the outlined topics and assignments.

Ready for the next step?