Introduction to Swift
Swift is Apple's powerful programming language for iOS, macOS, watchOS, and tvOS. Learn how to build iOS apps that integrate with cloud APIs.
Setting Up Swift Project
// ViewController.swift
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
fetchDataFromAPI()
}
func fetchDataFromAPI() {
guard let url = URL(string: "https://api.example.com/data") else { return }
URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
guard let data = data else { return }
do {
let json = try JSONSerialization.jsonObject(with: data)
print("Data: \(json)")
} catch {
print("JSON Error: \(error)")
}
}.resume()
}
}
Making API Calls
struct APIService {
static func fetchUsers(completion: @escaping ([User]) -> Void) {
guard let url = URL(string: "https://api.example.com/users") else { return }
var request = URLRequest(url: url)
request.httpMethod = "GET"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else { return }
do {
let users = try JSONDecoder().decode([User].self, from: data)
DispatchQueue.main.async {
completion(users)
}
} catch {
print("Decode error: \(error)")
}
}.resume()
}
}
Best Practices
- Use Codable for JSON parsing
- Handle errors gracefully
- Update UI on main thread
- Use async/await in Swift 5.5+
- Implement proper error handling