No history yet

Introduction to Swift

Welcome to Swift

Swift is the programming language used to build apps for all of Apple's platforms, from your iPhone to your Mac. It was designed to be safe, fast, and easy to read and write. Think of it as the set of instructions you'll use to tell a device what to do. Before you can build complex apps, you need to understand the basic grammar and vocabulary of the language. Let's start with the fundamentals.

Swift is a powerful and intuitive programming language developed by Apple for iOS, macOS, watchOS, and tvOS app development.

Storing Information

Programs work by manipulating data. To do that, we first need a way to store it. In Swift, we use variables and constants to hold values. A variable, declared with var, is like a labeled box where you can change the contents. A constant, declared with let, is like a sealed envelope; once you put something inside, you can't change it.

Use let when a value won't change. It makes your code safer and easier to understand. Use var only when you know a value needs to be updated later.

Every piece of data also has a type, which tells Swift what kind of information it is. Here are the most common ones:

TypeDescriptionExample
StringA piece of text."Hello, world!"
IntAn integer, or whole number.42
DoubleA number with a fractional component.3.14159
BoolA boolean value, either true or false.true

Here's how you declare constants and variables with these types in Swift.

// A constant holding a string
let greeting = "Hello, Swift!"

// A variable holding an integer
var userScore = 100

// userScore can be changed
userScore = 150

// A constant holding a double
let pi = 3.14159

// A variable holding a boolean
var isAuthenticated = false

Controlling the Flow

Your code doesn't always run straight from top to bottom. Often, you need it to make decisions or repeat actions. This is called control flow.

The most common way to make a decision is with an if statement. It checks if a condition is true and runs a block of code accordingly. You can also provide an else block to run if the condition is false.

let temperature = 75

if temperature > 80 {
    print("It's a hot day.")
} else {
    print("It's not too hot.")
}

When you need to repeat a task, you use a loop. The for-in loop is perfect for running a piece of code for each item in a collection, like a list of names.

let names = ["Anna", "Brian", "Catherine"]

for name in names {
    print("Hello, \(name)!")
}

This code will print a greeting for every single name in the list, one by one.

Functions and Closures

As your programs get bigger, you'll want to organize your code into reusable pieces. Functions are named blocks of code that perform a specific task. You can define a function once and call it whenever you need it.

Functions can take in data, called parameters, and can also return a value as output.

// Defines a function to greet a person
func greet(person: String) -> String {
    let message = "Hello, " + person + "!"
    return message
}

// Calls the function and stores the result
let personalGreeting = greet(person: "Maria")
print(personalGreeting) // Prints "Hello, Maria!"

Swift also has something called closures, which are like functions without a name. They are self-contained blocks of functionality that can be passed around and used in your code. You can think of them as mini, on-the-fly functions for simple tasks, like defining a custom sorting rule for an array.

let numbers = [5, 1, 9, 2, 8]

// Use a closure to sort numbers in descending order
let sortedNumbers = numbers.sorted(by: { (a: Int, b: Int) -> Bool in
    return a > b
})

print(sortedNumbers) // Prints [9, 8, 5, 2, 1]

These are the fundamental building blocks of Swift. Let's see how well you've grasped them.

Quiz Questions 1/6

In Swift, when should you use the let keyword to declare a new piece of data?

Quiz Questions 2/6

What is the data type of the value 10.5 in Swift?

With variables, control flow, and functions, you have the core tools needed to start writing meaningful programs in Swift.