Program

Mobile Development iOS

The Mobile Development iOS training program is designed for developers who want to advance their careers and strengthen their professional iOS development skills.

Throughout the course, students will explore application architecture, SwiftUI, and multitasking, while gaining intensive hands-on experience in building complex and animated user interfaces and solving real world multitasking challenges.

Apply
Start date

April 2026

Duration

5 months

Group size

15-20 Students

Schedule

On Tuesdays and Fridays from 19:00 to 22:00, with practical lessons on Sundays

Admission requirements
Expectation

Readiness for intensive training

Language skills

Knowledge of English at least Intermediate level

Requirement

Personal computer or

Age

18 years and older

Upon the course completion you will::

After successfully completing the program, you will gain the knowledge and skills required to work as a Junior iOS Developer.

You will learn how to develop an iOS application from idea to implementation and publish it on the App Store.

Through SwiftUI, you will gain hands-on experience in creating dynamic, animated, and professional user interfaces.

Program

Mobile Development iOS
6

Number of modules

Lesson 1 - Swift Basics & Xcode Setup

  • Xcode environment & Playgrounds
  • Variables & Constants
  • Type Safety & Type Inference
  • Basic Operators

Lesson 2 - Data Types & Collections

  • String, Int, Double, Bool
  • Tuples
  • Arrays
  • Sets
  • Dictionaries

Lesson 3 - Control Flow

  • if / else
  • guard
  • switch
  • for / while loops
  • Optional binding

Lesson 4 - Functions & Enums

  • Function declaration & parameters
  • Return types
  • Default parameters
  • Enumerations
  • Associated values

Lesson 5 - Closures

  • Closure syntax
  • Trailing closure
  • Completion handlers
  • Closures as parameters

Lesson 6 - Structs, Classes & OOP

  • Struct vs Class
  • Stored & computed properties
  • Methods
  • Initializers
  • Value vs reference types

Lesson 7 - Protocols & Extensions

  • Protocol definition
  • Protocol conformance
  • Using protocols for abstraction
  • Extensions
  • Default implementations

Lesson 8 - Memory Management & ARC

  • Strong vs Weak references
  • Retain cycles
  • Closure capture lists
  • Basic memory debugging

Lesson 9 - Introduction to UIKit & Interface Builder

  • Xcode project structure
  • Storyboards
  • IBOutlets & IBActions
  • Asset catalogs
  • Dark / Light mode

Lesson 10 - Auto Layout & Navigation

  • Constraints
  • Adaptive UI
  • UIViewController lifecycle
  • UINavigationController
  • UITabBarController

Lesson 11 - Programmatic UI & SnapKit

  • Building views in code
  • Layout without Storyboards
  • SnapKit basics
  • View hierarchy management

Lesson 12 - UITableView

  • DataSource & Delegate
  • Custom cells

Lesson 13 - UICollectionView

  • Layout types
  • Custom cells

Lesson 14 - Data Passing Between Controllers

  • Property injection
  • Init injection
  • Configure methods
  • Closure-based callbacks

Lesson 15 - Git & Collaboration Workflow

  • Git basics
  • Branching
  • Pull requests concept
  • gitignore best practices

Lesson 16 - Local Persistence

  • UserDefaults
  • Keychain basics
  • FileManager introduction
  • Simple data storage strategies

Lesson 17 - JSON & Codable

  • JSON structure
  • Codable protocol
  • Encoding / Decoding
  • Error handling in decoding

Lesson 18 - MVC vs MVVM Architecture

  • Separation of concerns
  • ViewModel creation
  • Data flow
  • Folder structure basics

Lesson 19 - Design Patterns & Dependency Injection

  • Singleton
  • Delegation
  • Builder
  • Dependency Injection fundamentals

Lesson 20 - Client–Server & URLSession

  • REST API overview
  • HTTP methods
  • URLRequest
  • URLSession
  • DataTask
  • JSON decoding from API

Lesson 21 - Building a Network Layer

  • NetworkManager structure
  • Request abstraction
  • Error handling
  • Reusable architecture
  • Basic dependency injection in networking

Lesson 22 - Concurrency in iOS

  • Main vs Background thread
  • DispatchQueue
  • async / await
  • Task
  • MainActor
  • UI updates safely

Lesson 23 - Firebase & Package Managers

  • Firebase setup
  • Authentication overview
  • Firestore read/write

Lesson 24 - SwiftUI Fundamentals

  • SwiftUI vs UIKit
  • Views & layout system
  • HStack, VStack, ZStack
  • Basic UI components
  • Modifiers

Lesson 25 - State & Data Flow in SwiftUI

  • @State
  • @Binding
  • ObservableObject
  • @Published
  • @StateObject vs @ObservedObject
  • @EnvironmentObject

Lesson 26 - Navigation & App Flow in SwiftUI

  • NavigationStack
  • Sheets
  • Alerts
  • TabView
  • Toolbar
  • View lifecycle basics

Lesson 27 - SwiftUI + MVVM + API Integration

  • Building a real API-based app
  • MVVM in SwiftUI
  • .task modifier
  • Loading & error states
  • Cancellation behavior

Lesson 28 - SwiftUI & UIKit Interoperability

  • UIViewRepresentable
  • Using UIKit inside SwiftUI
  • Using SwiftUI inside UIKit
  • Coordinator pattern basics

Lesson 29 — User Interaction in SwiftUI

  • Forms
  • TextField & SecureField
  • FocusState
  • Validation logic
  • Button state management
  • Alerts & dynamic UI updates

Lesson 30 - Gestures & Animations in SwiftUI

  • TapGesture
  • LongPressGesture
  • DragGesture
  • withAnimation
  • Transitions
  • Basic animations

Lesson 31 - Testing & Debugging

  • Unit testing basics
  • XCTest
  • Breakpoints
  • Memory Graph Debugger
  • View Hierarchy Debugging

Lesson 32 - Deployment & TestFlight

  • App lifecycle overview
  • Certificates & Provisioning
  • App Store Connect
  • TestFlight setup
  • Distribution workflow

Note: Students will present a final project at the end of the program.