Mobile Apps · ADC-03-14

Basic iOS Development with Swift and SwiftUI

Basic iOS Development with Swift and SwiftUI is a beginner course in building iPhone apps, covering Xcode, the Swift language and SwiftUI screens through to multi-screen apps, shared data with Observable, storage with SwiftData, API data, photos and maps. It suits students and developers with a little programming experience, and you leave able to write and run your own iPhone app.

Updated
From 6,750 THB / person 7,500 −10% excl. VAT 7% · group rates available
PDFDownload the course outline
  • Duration18 hours · 3 days
  • FormatOnsite / live online
  • Next roundOn request
  • CertificateIncluded

Course overview

iPhone apps today are built mainly with the Swift language and SwiftUI, which describes screens in readable code, shows results instantly in Xcode and uses the same ideas on iPhone and iPad. Beginners who have seen older Objective-C or Storyboard examples are often unsure where to start, so this course lays the Swift foundations you need and then builds apps with SwiftUI from the very first screen.

This 2026 edition uses Swift 6.4, Xcode 27 and iOS 27. Learners use Xcode and run apps on a real iPhone, write Swift, build screens with SwiftUI, manage data with State, Binding and Observable, show lists, build multi-screen apps with NavigationStack and TabView, store data with SwiftData, load data from an API, and work with photos, maps and location. (3 days, 6 hours per day, 18 hours in total, Beginner level.)

What you’ll gain

  • Understand the parts of an iOS app and develop with Xcode, the Simulator and a real iPhone
  • Write basic Swift, including variables, optionals, functions, closures, structs, enums and protocols
  • Build screens with SwiftUI and manage on-screen data with State and Binding
  • Show alerts, dialogs and sheets, and display data in lists
  • Build multi-screen apps with NavigationStack and TabView and pass data between screens
  • Share data across the app with Observable and store it on the device with SwiftData
  • Load JSON from an API with URLSession, async/await and Codable
  • Work with photos, video, maps and location using PhotosPicker, MapKit and Core Location

Who this course is for

  • School and university students who want to start writing iPhone apps
  • Developers from other languages who want to start building iOS apps with Swift
  • IT teams who want to understand native iOS app development
  • Anyone with a little programming experience who wants to build their own app

Prerequisites

  • A little programming experience in any language; no previous Swift is needed
  • Able to use a Mac at a basic level and install and remove software
  • Comfortable using the internet and basic networking
  • Bring your own Mac that can run Xcode 27, and an iPhone for testing (recommended)

Curriculum

Course Details

This course is the 2026 edition of Basic iOS Development, rewritten for Swift 6.4, SwiftUI, Xcode 27 and iOS 27. It runs for 3 days, 6 hours per day (18 hours in total, 09:00-16:00), as lectures alternating with labs and workshops throughout. Beginner level. It suits people with a little programming experience who want to start writing iPhone apps. Learners build Swift foundations, create screens with SwiftUI, make multi-screen apps, store data with SwiftData, load data from an API and use photos and maps, before combining everything into a complete coffee shop app running on a real iPhone. They take home a lab guide and source code.

Day 1 Xcode and the Swift Language

Section 1: The Building Blocks of an iOS App

  • The Apple ecosystem: iOS, iPadOS, Xcode and the App Store
  • SwiftUI app structure: App, Scene and View
  • Design guidance from the Human Interface Guidelines
  • From code to iPhone: the Simulator, real devices, TestFlight and the App Store
  • How an Apple Account differs from the Apple Developer Program

Section 2: Lab: Using Xcode 27

  • Install Xcode and the iOS Simulator on macOS
  • Create a SwiftUI iOS app project and tour the navigator, editor and inspector
  • See results instantly with previews and #Preview
  • Run on the Simulator and on a real iPhone with an Apple Account
  • Lab: your first Hello iPhone app

Section 3: Lab: Swift Language Basics

  • let and var, type inference and basic types
  • String interpolation and type conversion
  • Optionals, if let and guard let
  • if, switch, for-in, while and ranges
  • Practise in a Swift playground in Xcode

Section 4: Lab: Functions, Collections and Closures

  • Functions, argument labels and default values
  • Array, Dictionary and Set
  • Closures with map, filter and sorted
  • Error handling with throws and do-catch
  • Lab: calculate and summarise a list of expenses

Section 5: Lab: Structs, Classes, Enums, Protocols and async/await

  • How structs differ from classes, and when to use each
  • Enums with associated values
  • Protocols and extensions
  • async/await basics and MainActor for work that updates the screen
  • Lab: design the data model for the sample app
Day 2 Building Screens with SwiftUI

Section 6: Lab: Views and Layout in SwiftUI

  • Text, Image, SF Symbols and Button
  • Layout with VStack, HStack, ZStack and Spacer
  • Modifiers for fonts, colours, padding and size
  • Support for dark mode, Dynamic Type and different screen sizes
  • Lab: a card-style profile screen

Section 7: Lab: State and Binding

  • How SwiftUI redraws the screen when data changes
  • @State for data a screen owns
  • TextField, Toggle, Picker, Stepper and Slider
  • @Binding to let a child screen edit data
  • Lab: a tip and bill-splitting calculator

Section 8: Lab: Alerts, Dialogs and Sheets

  • Show alerts with confirm and cancel buttons
  • confirmationDialog for several choices
  • Present sheets and full-screen covers
  • Close screens with dismiss and return a result
  • Lab: an add-item form in a sheet

Section 9: Lab: Displaying Data in Lists

  • List and ForEach with Identifiable data
  • Sections, headers and list styles
  • Deleting and moving rows, and swipe actions
  • Search with searchable
  • Lab: a searchable list of coffee shops

Section 10: Lab: Multi-Screen Apps with NavigationStack and TabView

  • NavigationStack, NavigationLink and navigationDestination
  • Pass data to a detail screen and set titles with navigationTitle
  • ToolbarItem and navigation bar buttons
  • Divide the app into main tabs with TabView
  • Lab: a multi-screen coffee shop app
Day 3 Data, Media, Maps and a Complete App

Section 11: Lab: Sharing Data Across the App with Observable

  • Create models with @Observable instead of the older ObservableObject
  • Hold models with @State and pass them through the environment
  • @Bindable to edit model data in forms
  • Separate data from views so code stays readable
  • Lab: an order basket shared across several screens

Section 12: Lab: Storing Data on the Device with SwiftData

  • Define models with @Model
  • Set up a modelContainer for the app
  • Read data with @Query, with sorting and filtering
  • Insert, update and delete through the modelContext
  • Lab: a notes app whose data survives closing the app

Section 13: Lab: Loading Data from an API

  • REST APIs and the JSON data format
  • Call an API with URLSession and async/await
  • Convert JSON into models with Codable
  • Show loading and error states, and load images with AsyncImage
  • Lab: a drinks menu loaded from a sample API

Section 14: Lab: Photos, Video, Maps and Location

  • Pick images from the photo library with PhotosPicker
  • Play video with AVKit's VideoPlayer
  • Show a map with Map and markers in SwiftUI
  • Request permission and read the current location with Core Location
  • Lab: a branch map screen with photos

Section 15: Workshop: A Complete App and Preparing for the App Store

  • Combine navigation, SwiftData, the API and maps into one app
  • Add the app icon, app name and accent colour
  • Test on a real iPhone and fix common problems
  • An overview of archiving, TestFlight and App Store Connect
  • Present your work and next steps for further learning

Schedule & training options

For individuals — public rounds

No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770

For organisations — in-house / private

  • Tailor the content to your team’s tools and projects
  • Your dates, at your office or live online
  • Quotation with tax ID for procurement
Corporate training quote

Instructors

Frequently asked questions

What is SwiftUI and how is it used to build app screens?

SwiftUI is Apple's framework for building app interfaces in Swift using a declarative style: you describe what the screen should look like for the current data, and SwiftUI redraws it automatically when the data changes. Screens are built from smaller views such as Text, Image, Button and List, arranged with VStack and HStack, and you can see the result immediately in the Xcode preview.

How do you pass data between screens in SwiftUI with State, Binding and Observable?

Use @State for data a screen owns. If a child screen needs to change it, declare @Binding in the child and pass the value with a $ prefix. For data shared by several screens, create a class marked @Observable, hold it with @State, pass it through the environment, and use @Bindable when a form needs to edit the model's properties.

How does SwiftData store data in an app?

SwiftData is Apple's framework for persistent on-device storage. Mark the classes you want to store with @Model, set up a modelContainer for the app, and read data in views with @Query, which can sort and filter and updates the screen automatically when data changes. Inserts, edits and deletes go through the modelContext, and the data remains after the app is closed and reopened.

What do I need to prepare for the Basic iOS Development course?

You need to bring your own Mac, because iOS apps are developed in Xcode, which runs only on the Mac, and Xcode 27 requires macOS Tahoe 26.6 or later. An iPhone for testing is recommended, and you can run your own apps on it with an Apple Account. TestFlight and App Store publishing require the Apple Developer Program, which has an annual fee. You do not need to know Swift already.

Who is the Basic iOS Development with Swift and SwiftUI course for, and what should I know beforehand?

It suits students, developers from other languages who want to start writing iPhone apps, IT teams and anyone with a general interest. You should have a little programming experience in any language, be able to use a Mac at a basic level, install and remove software and use the internet. The course starts from Swift syntax and Xcode basics.

What will I be able to do after the Basic iOS Development with Swift and SwiftUI course?

You will be able to write basic Swift, use Xcode to build single and multi-screen apps with SwiftUI, show alerts, dialogs and sheets, display data in lists, pass data between screens with State, Binding and Observable, use NavigationStack and TabView, store data with SwiftData, load data from an API, work with photos, video, maps and location, and run your app on a real iPhone. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.

Related articles

Articles are published in Thai.