Skip to content

TypingDad logoTypingDadFree

Practice that's friendly and fast

🦇 Swift Programs

105 Essential Programs from Beginner to Advanced

Your Progress

0/105Total
0/20Beginner
0/35Intermediate
0/50Advanced
105Total Programs
20Beginner
35Intermediate
50Advanced
13Categories

Filter by Category

Filter by Level

105 programs shown
🟢

Hello World

#1

Print Hello World

BeginnerBasics
🟢

Add Numbers

#2

Add two variables

BeginnerBasics
🟢

String Interpolation

#3

Print variables inside string

BeginnerBasics
🔵

Even or Odd

#4

Check even or odd

BeginnerConditions
🔵

Largest of Two

#5

Find largest number

BeginnerConditions
🔄

Factorial

#6

Find factorial of an integer

BeginnerLoops
🔄

Fibonacci

#7

Print Fibonacci series

BeginnerLoops
📝

Reverse String

#8

Reverse a string

BeginnerStrings
📝

Palindrome String

#9

Check palindrome

BeginnerStrings
📚

Sum of Array

#10

Find sum of array elements

BeginnerArrays
📝

Count Vowels

#11

Count vowels in a string

BeginnerStrings
🔵

Leap Year

#12

Check if leap year

BeginnerConditions
🔵

Switch Case

#13

Using switch for grades

BeginnerConditions
🟢

Random Number

#14

Generate random Int

BeginnerBasics
📊

Dictionary Basics

#15

Key value pairs

BeginnerCollections
🟢

Optionals

#16

Safely unwrap optional

BeginnerBasics
⚙️

Function Basics

#17

Simple function

BeginnerFunctions
📊

Set Basics

#18

Unique items

BeginnerCollections
🏗️

Struct Basics

#19

Value types

BeginnerOOP
🔄

For Each

#20

Iterate array

BeginnerLoops
🔗

Map Array

#21

Transform array

IntermediateClosures
🔗

Filter Array

#22

Filter elements

IntermediateClosures
🔗

Reduce Array

#23

Aggregate elements

IntermediateClosures
🏗️

Class Basics

#24

Reference types

IntermediateOOP
🏗️

Inheritance

#25

Subclassing

IntermediateOOP
🧩

Protocol

#26

Define requirements

IntermediateProtocols
🏗️

Extensions

#27

Extend existing types

IntermediateOOP
🟢

Enums

#28

Value types with cases

IntermediateBasics
🟢

Enum with Associated Value

#29

Enums holding data

IntermediateBasics
🔵

Guard Statement

#30

Early exit

IntermediateConditions
🟢

Defer Statement

#31

Execute at scope exit

IntermediateBasics
🟢

Tuples

#32

Group values

IntermediateBasics
🏗️

Mutating Structs

#33

Modify struct properties

IntermediateOOP
🏗️

Computed Properties

#34

Getter/setter

IntermediateOOP
🏗️

Property Observers

#35

willSet/didSet

IntermediateOOP
🟢

Typecasting

#36

as, as?, as!

IntermediateBasics
🟢

Nil Coalescing

#37

Default value for optional

IntermediateBasics
🔗

Closures

#38

Functions as variables

IntermediateClosures
📊

Compact Map

#39

Discard nil values

IntermediateCollections
🏗️

Lazy Variables

#40

Initialize on first use

IntermediateOOP
🧬

Generics

#41

Template types

IntermediateGenerics
📚

Error Handling

#42

do/try/catch

IntermediateError Handling
🟢

Custom Operators

#43

Define new operators

IntermediateBasics
🏗️

Subscripts

#44

Custom indexing

IntermediateOOP
🏗️

Access Control

#45

private/public

IntermediateOOP
📊

FlatMap

#46

Flatten nested arrays

IntermediateCollections
🧬

Any vs AnyObject

#47

Type erasure

IntermediateGenerics
📊

Set Intersection

#48

Common items

IntermediateCollections
🧮

Binary Search

#49

O(log n) search

IntermediateAlgorithms
🧮

Bubble Sort

#50

O(n^2) sort

IntermediateAlgorithms
🏗️

Property Wrappers

#51

@propertyWrapper

AdvancedOOP
🧩

Opaque Types

#52

some Protocol

AdvancedProtocols
🧩

Associated Types

#53

Protocols with generic types

AdvancedProtocols

Actors

#54

Concurrency safe types

AdvancedConcurrency

Async/Await

#55

Modern concurrency

AdvancedConcurrency

Task Groups

#56

Concurrent child tasks

AdvancedConcurrency

Global Actors

#57

@MainActor

AdvancedConcurrency
🏗️

Dynamic Member Lookup

#58

@dynamicMemberLookup

AdvancedOOP
🏗️

Dynamic Callable

#59

@dynamicCallable

AdvancedOOP
🏗️

KeyPaths

#60

Reference properties

AdvancedOOP
📚

Result Type

#61

Result<Success, Failure>

AdvancedError Handling
🧩

Custom Sequences

#62

Sequence Protocol

AdvancedProtocols
🟢

Codable

#63

JSON encode/decode

AdvancedBasics
🟢

Custom Coding Keys

#64

Map JSON keys

AdvancedBasics
🏗️

Deinitializers

#65

deinit

AdvancedOOP
📚

ARC Weak

#66

Prevent reference cycles

AdvancedMemory
📚

ARC Unowned

#67

Unowned references

AdvancedMemory
🔗

Capture Lists

#68

[weak self]

AdvancedClosures
📚

Method Swizzling

#69

Runtime manipulation

AdvancedRuntime
🧬

Macros

#70

Swift Macros (Swift 5.9+)

AdvancedGenerics
⚙️

Variadic Parameters

#71

Variable length args

AdvancedFunctions
⚙️

Inout Parameters

#72

Pass by reference

AdvancedFunctions
📚

AnyCancellable

#73

Combine framework

AdvancedFrameworks
📚

CurrentValueSubject

#74

Combine reactive

AdvancedFrameworks
📚

PassthroughSubject

#75

Combine streams

AdvancedFrameworks
📱

SwiftUI State

#76

@State

AdvancedUI/Framework
📱

SwiftUI Binding

#77

@Binding

AdvancedUI/Framework
📱

ObservableObject

#78

Reactive objects

AdvancedUI/Framework
📱

StateObject

#79

@StateObject

AdvancedUI/Framework
📱

EnvironmentObject

#80

Global state

AdvancedUI/Framework
📱

AppStorage

#81

UserDefaults binding

AdvancedUI/Framework
📱

ViewModifier

#82

Custom UI Modifiers

AdvancedUI/Framework
📱

GeometryReader

#83

Responsive sizes

AdvancedUI/Framework
📱

PreferenceKeys

#84

Pass data up hierarchy

AdvancedUI/Framework
📱

MatchedGeometryEffect

#85

Hero animations

AdvancedUI/Framework
📚

CoreData Entity

#86

NSPersistentContainer

AdvancedFrameworks
📚

CoreData Fetch

#87

NSFetchRequest

AdvancedFrameworks
📚

FileManager

#88

Read/Write Disk

AdvancedFrameworks
📚

URLSession

#89

Network calls

AdvancedFrameworks
📚

JSONSerialization

#90

Legacy JSON

AdvancedFrameworks

DispatchQueue

#91

GCD concurrency

AdvancedConcurrency

DispatchGroup

#92

Wait for multiple tasks

AdvancedConcurrency

Semaphore

#93

Limit concurrent execution

AdvancedConcurrency
📚

Timer

#94

Schedule tasks

AdvancedFrameworks
📚

NotificationCenter

#95

Pub/Sub

AdvancedFrameworks
📚

NSCache

#96

In-memory caching

AdvancedFrameworks
📚

Dependency Injection

#97

Design patterns

AdvancedArchitecture
📚

Singleton

#98

Design patterns

AdvancedArchitecture
📚

Factory Pattern

#99

Design patterns

AdvancedArchitecture
📚

Observer Pattern

#100

Design patterns

AdvancedArchitecture
📚

MVVM Architecture

#101

Model View ViewModel

AdvancedArchitecture
📚

Clean Architecture

#102

Domain logic isolation

AdvancedArchitecture
🧮

Graph DFS

#103

Depth First Search

AdvancedAlgorithms
🧮

Graph BFS

#104

Breadth First Search

AdvancedAlgorithms
🧮

Dijkstra

#105

Shortest Path

AdvancedAlgorithms