Swift · 6/8
Uygulamaya özel: ilk iPhone ekranın
SwiftUI içinde durumdan üretilen küçük bir ekran kurmak.
Önerilen çalışma: 25–45 dakika; örnekleri kendin uygula. Süre kişiye göre değişir.
Bu sayfada · 9 başlık
Başlamadan önce
Önceki dersteki örneği çalıştırmış olman ve dosya/çıktı ayrımını biliyor olman yararlı.
Öğrenme sırası: konuyu oku → çıktıyı tahmin et → örneği değiştir → alıştırmayı çöz → cevabını gerekçelendir.

Videoyla adım adım izle
Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.
Video bölümleri ve tam metin
Uygulamaya özel: ilk iPhone ekranın
SwiftUI içinde durumdan üretilen küçük bir ekran kurmak.
Kavramı kur
Swift dili ile SwiftUI çatısı aynı şey değildir. print konsola yazarken Text bir arayüz görünümüdür. Bu ders Xcode’da SwiftUI kullanan bir iOS App projesi gerektirir; sayfadaki konsol derleyicisinde iPhone ekranı açılmaz. Önce projeyi ve hedef simülatörü seç, sonra ContentView dosyasını düzenle.
Neden böyle çalışıyor?
SwiftUI arayüzünü mevcut duruma göre tanımlarsın. @State bir görünümün yerel değişen durumunu saklar. Düğme sayacı artırınca Text içindeki gösterim yeni değerle yeniden değerlendirilir. Ekran yazısını elle arayıp değiştirmek yerine durumun değişmesi görünümü günceller.
Çalışma sırası
VStack alt görünümleri dikey yerleştirir. spacing aralarındaki mesafeyi, padding dıştaki iç boşluğu düzenler. Başlangıçta yalnızca sayaç ve düğme kur; sonra sıfırlama gibi ikinci bir etkileşim ekle. Fiziksel telefona yükleme, imzalama ve yayınlama bu küçük konsol örneklerinden farklı süreçlerdir.
İkinci örnek · 1
@State sayacın değişen yerel durumunu saklar. Kodun tamamı yazılı derste bulunur.
Kod
import SwiftUI
struct ContentView: View {
@State private var sayi = 0
var body: some View {
VStack(spacing: 16) {
Text("Sayaç: \(sayi)")
Button("Artır") { sayi += 1 }
}
.padding()
}
}Beklenen sonucu oku
Button olayı durumu artırır; görünüm kendini yeni değerle günceller.
Beklenen çıktı: Xcode simülatöründe Sayaç: 0 yazısı ve Artır düğmesi; dokundukça değer artar.
Bir değeri sen değiştir
Xcode’da yeni SwiftUI iOS App projesinde örneği ContentView içine koy. Artır düğmesini dene; konsol ile ekrandaki metnin farkını açıkla.
Hata nereden gelir?
SwiftUI kodunu yalnızca Swift konsol yorumlayıcısında çalıştırmak UI çatısı bulunamadı hatası verebilir; Xcode App hedefini kullan.
Kendi çözümünü kur
Sıfırla düğmesi ekle; sayacı 0 yaptığında görünümün güncellendiğini doğrula. Button("Sıfırla") { sayi = 0 } ifadesini VStack içindeki ilk düğmenin altına ekle.
Çözüm varyasyonu · 1
Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.
Kod
import SwiftUI
struct ContentView: View {
@State private var sayi = 0
var body: some View {
VStack(spacing: 16) {
Text("Sayaç: \(sayi)")
Button("Artır") { sayi += 1 }
Button("Sıfırla") { sayi = 0 }
}
.padding()
}Çözüm varyasyonu · 2
Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.
Kod
}Kendini kontrol et
@State sayacı değiştiğinde Text neden yeni sayıyı gösterir? Yanıt: SwiftUI görünümü mevcut duruma göre yeniden değerlendirir; arayüz o durumdan üretilir.
Beklenen çıktı: Artır ve Sıfırla düğmeleri aynı @State değerini değiştirir.
Konu anlatımı
Swift dili ile SwiftUI çatısı aynı şey değildir. print konsola yazarken Text bir arayüz görünümüdür. Bu ders Xcode’da SwiftUI kullanan bir iOS App projesi gerektirir; sayfadaki konsol derleyicisinde iPhone ekranı açılmaz. Önce projeyi ve hedef simülatörü seç, sonra ContentView dosyasını düzenle.
SwiftUI arayüzünü mevcut duruma göre tanımlarsın. @State bir görünümün yerel değişen durumunu saklar. Düğme sayacı artırınca Text içindeki gösterim yeni değerle yeniden değerlendirilir. Ekran yazısını elle arayıp değiştirmek yerine durumun değişmesi görünümü günceller.
VStack alt görünümleri dikey yerleştirir. spacing aralarındaki mesafeyi, padding dıştaki iç boşluğu düzenler. Başlangıçta yalnızca sayaç ve düğme kur; sonra sıfırlama gibi ikinci bir etkileşim ekle. Fiziksel telefona yükleme, imzalama ve yayınlama bu küçük konsol örneklerinden farklı süreçlerdir.
İlk örneği oku ve dene
Uygulamaya özel: ilk iPhone ekranın
SwiftUI ile birkaç satırda bir uygulama ekranı tasarlayabilirsin. VStack öğeleri alt alta dizer.
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
Text("Merhaba Dünya! 👋")
.font(.largeTitle)
Button("Bana dokun") {
print("Butona dokunuldu!")
}
}
}
}
▶ Sonuç
iPhone ekranında büyük bir "Merhaba Dünya! 👋" yazısı ve altında "Bana dokun" butonu görünür.
Bu örnek bir SwiftUI görünümüdür; sayfadaki konsol derleyicisinde iPhone ekranı açmaz. Xcode’da yeni bir iOS App projesi oluşturup ContentView.swift içeriğini bu kodla değiştir; simülatörde çalıştır. Xcode rehberi →
Adım adım neden böyle çalışıyor?
- @State sayacın değişen yerel durumunu saklar.
- body mevcut durumdan arayüz tanımlar.
- Text sayıyı metne yerleştirir.
- Button olayı durumu artırır; görünüm kendini yeni değerle günceller.
İkinci çözümlü örnek
SwiftUI içinde durumdan üretilen küçük bir ekran kurmak.
import SwiftUI
struct ContentView: View {
@State private var sayi = 0
var body: some View {
VStack(spacing: 16) {
Text("Sayaç: \(sayi)")
Button("Artır") { sayi += 1 }
}
.padding()
}
}
▶ Sonuç
Xcode simülatöründe Sayaç: 0 yazısı ve Artır düğmesi; dokundukça değer artar.
Bu örnek bir SwiftUI görünümüdür; sayfadaki konsol derleyicisinde iPhone ekranı açmaz. Xcode’da yeni bir iOS App projesi oluşturup ContentView.swift içeriğini bu kodla değiştir; simülatörde çalıştır. Xcode rehberi →
Kolaydan zora sen dene
- Xcode’da yeni SwiftUI iOS App projesinde örneği ContentView içine koy.
- Artır düğmesini dene; konsol ile ekrandaki metnin farkını açıkla.
- Sıfırla düğmesi ekle; sayacı 0 yaptığında görünümün güncellendiğini doğrula.
İpucunu aç
Button("Sıfırla") { sayi = 0 } ifadesini VStack içindeki ilk düğmenin altına ekle.
Üç görevin açıklamalı çözümünü oku
- Kod bir SwiftUI App hedefindeki ContentView içine konur; konsol hedefi ekran oluşturmaz.
- Button @State sayıyı değiştirir; Text yeni durumdan güncellenir. print yalnızca konsolu etkiler.
- VStack içine Button("Sıfırla") { sayi = 0 } ekle. Tam görünüm varyasyonu aşağıda bulunur.
Bir çözüm varyasyonu gör
Çözüm varyasyonu
Önce kendi görevlerini dene. Bu varyasyonda girdi ve sonuçları karşılaştır.
import SwiftUI
struct ContentView: View {
@State private var sayi = 0
var body: some View {
VStack(spacing: 16) {
Text("Sayaç: \(sayi)")
Button("Artır") { sayi += 1 }
Button("Sıfırla") { sayi = 0 }
}
.padding()
}
}
▶ Sonuç
Artır ve Sıfırla düğmeleri aynı @State değerini değiştirir.
Bu örnek bir SwiftUI görünümüdür; sayfadaki konsol derleyicisinde iPhone ekranı açmaz. Xcode’da yeni bir iOS App projesi oluşturup ContentView.swift içeriğini bu kodla değiştir; simülatörde çalıştır. Xcode rehberi →
Yaygın hata ve çözümü
- SwiftUI kodunu yalnızca Swift konsol yorumlayıcısında çalıştırmak UI çatısı bulunamadı hatası verebilir; Xcode App hedefini kullan.
- Durumu sıradan sabitle karıştırmak değişimi görünür yapmaz; bu örnekte değişen sayaç için @State var gerekir.
Kendini değerlendir
Ezberlemeden açıklayabiliyor musun?
@State sayacı değiştiğinde Text neden yeni sayıyı gösterir?
Açıklamalı yanıt
SwiftUI görünümü mevcut duruma göre yeniden değerlendirir; arayüz o durumdan üretilir.
Kendi çözümünde bir girdiyi değiştir. Çalıştırmadan önce beklenen sonucu yaz; gerçek sonuçla karşılaştır ve fark varsa hangi satırdan kaynaklandığını açıkla.
Kaynak ve çalışma ortamı
Örnekler küçük öğretim senaryolarıdır. Java/C#/PHP/Swift çalışma ortamını kendi cihazında ayrıca doğrula; yazılı sonuçlar beklenen davranışı açıklar.
Resmî dil belgeleriBu içerik işine yaradı mı?
Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.