Swift Grundlagen
Swift ist eine moderne Programmiersprache von Apple, die für die Entwicklung von Apps auf iOS, macOS, watchOS und tvOS verwendet wird.
Installation & Setup
Xcode Installation
# Xcode über App Store installieren
# Oder über Apple Developer Portal herunterladen
Swift Playground
- Xcode → File → New → Playground
- Ideal zum Experimentieren und Lernen
Variablen und Konstanten
Deklaration
// Konstanten (unveränderlich)
let name = "Arlind"
let pi = 3.14159
// Variablen (veränderlich)
var age = 25
var score = 0
Type Annotation
let name: String = "Arlind"
let age: Int = 30
let height: Double = 1.75
let isActive: Bool = true
Datentypen
Grundlegende Typen
// Zahlen
let integer: Int = 42
let double: Double = 3.14
let float: Float = 2.5
// Text
let string: String = "Hello World"
let character: Character = "A"
// Boolean
let isTrue: Bool = true
Collections
// Arrays
var numbers = [1, 2, 3, 4, 5]
var names: [String] = ["Arlind", "Mehmet", "Dion"]
// Dictionaries
var person = ["name": "Arlind", "city": "Zuerich"]
var ages: [String: Int] = ["Dion": 25, "Arlind": 30]
// Sets
var uniqueNumbers: Set<Int> = [1, 2, 3, 4, 5]
Kontrollstrukturen
If-Statements
let temperature = 25
if temperature > 30 {
print("Es ist heiss")
} else if temperature > 20 {
print("Angenehm warm")
} else {
print("Kühl")
}
Switch-Statement
let grade = "s"
switch grade {
case "A":
print("Ausgezeichnet")
case "B":
print("Gut")
case "C":
print("Befriedigend")
default:
print("Unbekannte Note")
}
Schleifen
// For-In Loop
for i in 1 ... 5 {
print("Zahl: \(i)")
}
// While Loop
var counter = 0
while counter < 5 {
print(counter)
counter += 1
}
// Array durchlaufen
let fruits = ["Apfel", "Banane", "Orange"]
for fruit in fruits {
print(fruit)
}
Funktionen
Grundlegende Syntax
func greet(name: String) -> String {
return "Hallo, \(name)!"
}
let greeting = greet(name: "Max")
print(greeting)
Parameter und Return Values
// Mehrere Parameter
func add(a: Int, b: Int) -> Int {
return a + b
}
// Ohne Return Value
func printMessage(_ message: String) {
print(message)
}
// Default Parameter
func greet(name: String = "Welt") -> String {
return "Hallo, \(name)!"
}
Optionals
Was sind Optionals?
var optionalName: String? = "Arlind"
var optionalAge: Int? = nil
// Optional Binding
if let name = optionalName {
print("Name ist: \(name)")
} else {
print("Kein Name vorhanden")
}
// Guard Statement
func processUser(name: String?) {
guard let userName = name else {
print("Ungültiger Name")
return
}
print("Verarbeite User: \(userName)")
}
Nil Coalescing
let defaultName = "Unbekannt"
let actualName = optionalName ?? defaultName
print(actualName)
String Interpolation
let name = "Arlind"
let age = 25
let message = "Mein Name ist \(name) und ich bin \(age) Jahre alt."
print(message)
// Berechnungen in String Interpolation
let result = "Das Ergebnis ist: \(5 + 3)"
Best Practices
-
Naming Conventions
- Variablen und Funktionen: camelCase
- Konstanten: camelCase oder PascalCase für globale Konstanten
- Klassen: PascalCase
-
Optionals richtig verwenden
- Prefer Optional Binding über Force Unwrapping
- Verwende Guard Statements für frühe Returns
-
Type Inference nutzen
// Gut
let name = "Arlind"
// Unnötig verbose (ausführlich)
let name: String = "Arlind"