Swift to nowoczesny język programowania stworzony przez Apple w 2014 roku. Zastąpił Objective-C jako główny język do budowy aplikacji na platformy Apple. Swift jest szybki, bezpieczny (memory safe) i ekspresyjny.
SwiftUI — deklaratywny framework UI od Apple — pozwala budować interfejsy na wszystkie platformy Apple z jednego kodu. W połączeniu z Xcode oferuje najlepsze narzędzia do budowy natywnych aplikacji iOS.
struct User: Codable, Identifiable {
let id: UUID
var name: String
var email: String
var age: Int
var isAdult: Bool { age >= 18 }
var displayName: String {
"\(name) (\(age))"
}
}
// Enum z associated values
enum NetworkError: Error {
case invalidURL
case serverError(code: Int)
case decodingFailed
}
struct ProfileView: View {
let user: User
@State private var showDetails = false
var body: some View {
VStack(alignment: .leading, spacing: 12) {
HStack {
Image(systemName: "person.circle.fill")
.font(.title)
.foregroundStyle(.purple)
VStack(alignment: .leading) {
Text(user.displayName)
.font(.headline)
Text(user.email)
.font(.caption)
.foregroundStyle(.secondary)
}
}
Button("Szczegóły") {
withAnimation { showDetails.toggle() }
}
if showDetails {
Text("Wiek: \(user.age)")
.transition(.slide)
}
}
.padding()
}
}
class UserService {
func fetchUsers() async throws -> [User] {
let url = URL(string: "https://api.example.com/users")!
let (data, response) = try await URLSession.shared.data(from: url)
guard let http = response as? HTTPURLResponse,
http.statusCode == 200 else {
throw NetworkError.serverError(code: 500)
}
return try JSONDecoder().decode([User].self, from: data)
}
}
Pełny dostęp do API Apple: HealthKit, ARKit, CoreML, MapKit, StoreKit, Push Notifications.
Deklaratywny UI na iOS, macOS, watchOS, tvOS. Animacje, gestures, accessibility.
Natywne aplikacje desktopowe z menu bar, dock, Spotlight, widgets.
Aplikacje na Apple Watch i Apple TV. Komplikacje, Siri, HealthKit.
On-device machine learning. Vision, NLP, Sound Analysis. Prywatność danych.
Vapor framework. REST API w Swift. Mniej popularne, ale możliwe.
Idealny gdy: budujesz wyłącznie na platformy Apple, potrzebujesz pełnego dostępu do natywnych API (HealthKit, ARKit, CoreML), zależy Ci na najlepszej wydajności iOS.
Nie najlepszy gdy: potrzebujesz też Androida (lepiej Flutter), budujesz web app (lepiej TypeScript), potrzebujesz szybkiego MVP na obie platformy jednocześnie.