Swift Nedir? Apple Uygulamaları İçin Programlama Dili
Sözlük

Swift Nedir? Apple Uygulamaları İçin Programlama Dili

Hazırlayan: Mindset Institute EditörlüğüGüncellendi: 4 dk okuma

Swift, Apple platformları için geliştirilen güvenli, hızlı bir programlama dilidir. Nasıl çalıştığını, optional yapısını ve kullanım alanlarını örnekle öğrenin.

Swift programlama dili nedir

Swift, Apple tarafından geliştirilen genel amaçlı bir programlama dilidir. iPhone, iPad, Mac, Apple Watch ve Apple TV için uygulama yazmanın başlıca yolu olarak kullanılır. Derlenen, statik tipli ve nesne yönelimli ile fonksiyonel yaklaşımları birlikte destekleyen bir dildir.

Dilin çıkış amacı, Apple platformlarında uzun süre kullanılan Objective-C diline göre daha okunaklı, hata yapmayı zorlaştıran ve hızlı bir alternatif sunmaktır. Kod, geliştiricinin niyetini açık biçimde ifade eder; derleyici de birçok hatayı program çalışmadan önce yakalar. Swift açık kaynaklıdır; sunucu tarafında ve komut satırı araçlarında da kullanılabilir, ağırlığı ise Apple ekosistemindedir.

Swift nasıl çalışır

Swift kodu bir derleyiciden geçerek doğrudan makine koduna çevrilir. Yorumlayıcı üzerinde satır satır çalışan betik dillerinden farkı budur: hız ve bellek kullanımı bakımından cihaz üzerinde verimli sonuç verir. Geliştirici Xcode adlı geliştirme ortamında kod yazar, derler, simülatörde ya da gerçek cihazda çalıştırır.

Dil statik tiplidir. Bir değişkenin tipi derleme anında bellidir, çoğu durumda derleyici tipi atamadan çıkarır. Bellek yönetimi ise otomatik başvuru sayımıyla yapılır: bir nesneye hiçbir yerden başvuru kalmadığında bellekten serbest bırakılır. Çöp toplayıcı olmadığı için uygulama beklenmedik duraklamalar yaşamaz, bunun karşılığında geliştirici döngüsel başvuruları, yani nesnelerin birbirini canlı tutmasını bilinçli yönetmelidir.

Optional, değer tipleri ve güvenlik

Swift'in en belirgin özelliği optional kavramıdır. Bir değişken değer taşıyabilir ya da boş olabilir; boşluk ihtimali tipin içinde açıkça yazılır ve değere ulaşmadan önce kontrol edilmesi zorunludur. Böylece "boş değere erişim" hataları büyük ölçüde derleme aşamasına çekilir.

Örneğin bir kullanıcı adının henüz girilmediği durumu şöyle ele alırsınız:

let name: String? = nil if let shown = name { print(shown) } else { print("Ad girilmedi") }

Burada name boş olduğu için else dalı çalışır. Diğer önemli ayrım struct ve class arasındadır. Struct değer tipidir, atandığında kopyalanır; class başvuru tipidir, aynı nesneye birden fazla yerden ulaşılır. Swift'te veri modelleri çoğunlukla struct ile yazılır, çünkü kopyalanan değer beklenmedik yan etkileri azaltır.

Swift ile neler geliştirilir

Swift'in başlıca kullanım alanı mobil ve masaüstü Apple uygulamalarıdır. Bir alışveriş uygulamasının ürün listesi ya da bir bankacılık uygulamasının kimlik doğrulama akışı Swift ile yazılır.

Kullanım alanları şunlardır: • iOS ve iPadOS uygulamaları, SwiftUI ya da UIKit arayüzüyle • macOS masaüstü uygulamaları ve Apple Watch uygulamaları • Ağ istekleri, yerel veri saklama, bildirim ve konum gibi sistem özelliklerini kullanan katmanlar • Sunucu tarafı servisler ve komut satırı araçları

Swift, Objective-C, SwiftUI ve UIKit farkı

Objective-C, Apple platformlarının eski ana dilidir ve hâlâ birçok mevcut uygulamada bulunur. Swift aynı projede Objective-C ile birlikte çalışabilir, bu yüzden şirketler eski kod tabanını bir anda yeniden yazmak yerine kademeli geçiş yapabilir.

SwiftUI ve UIKit ise dil değil, arayüz çerçevesidir. UIKit uzun yıllardır kullanılan, olay ve yaşam döngüsü odaklı çerçevedir. SwiftUI daha yeni olan, arayüzü bildirimsel biçimde tarif ettiğiniz ve durum değiştikçe ekranı otomatik güncelleyen çerçevedir. Her çerçeve Swift ile yazılır. Dil ile çerçeveyi karıştırmamak önemlidir: Swift bilmek bir arayüz çerçevesini bilmek anlamına gelmez.

Swift öğrenirken sık yapılan hatalar

Yeni başlayanlar optional değerleri zorla açmaya, yani kontrol etmeden kullanmaya eğilir. Bu yöntem kodu kısaltır ama boş değer geldiğinde uygulamanın çökmesine yol açar. Güvenli açma yöntemlerini alışkanlık haline getirmek gerekir.

Bir başka yaygın hata, değer tipi yeterliyken her şeyi class olarak modellemektir; nesneler beklenmedik yerde değişir. Arayüz çerçevesine hemen dalıp dilin temellerini atlamak da hata mesajlarını anlamayı zorlaştırır.

Mindset eğitimlerinde Swift

Mindset kataloğunda Swift, iOS Uygulama Geliştirme (Swift) Temelleri programında dil temelleri, Xcode ortamı, SwiftUI ve UIKit, veri kalıcılığı ve App Store hazırlığı modül başlıklarıyla ele alınır. Mobil geliştirmeye yeni başlayan yazılımcılar ve başka bir dilden Apple platformuna geçen ekipler için uygun bir başlangıç noktasıdır.

Daha ileri aşamada Swift ile İleri Seviye iOS Geliştirme (SwiftUI) programı durum yönetimi, eşzamanlılık ve test edilebilirlik başlıklarını içerir; iOS Uygulama Mimarisi ve Bağımlılık Yönetimi ise ekip ölçeğinde kod düzenini konu alır. Arayüz tarafı için iOS HIG ve Material Design kuralları programı da ilgili başlıklar sunar.

İlgili Mindset programı

iOS Uygulama Geliştirme (Swift) Temelleri

Sık sorulanlar

Sık sorulan sorular

Swift sadece iPhone uygulaması için mi kullanılır?

Hayır. Swift en çok iPhone ve iPad uygulamaları için kullanılır ama aynı dil macOS, Apple Watch ve Apple TV uygulamalarında da çalışır. Açık kaynak olduğu için sunucu tarafı servislerde ve komut satırı araçlarında da tercih edilebilir. Yine de iş ilanlarında ve eğitim içeriklerinde ağırlık Apple platformlarındaki uygulama geliştirmededir.

Swift öğrenmek için Mac gerekir mi?

Uygulama geliştirme ortamı olan Xcode yalnızca Mac üzerinde çalışır. Bu yüzden iOS uygulaması derleyip simülatörde denemek için Mac gerekir. Dilin söz dizimini öğrenmek için çevrimiçi oyun alanları da kullanılabilir, ancak gerçek uygulama geliştirme sürecine geçerken Xcode ve bir Mac bilgisayara ihtiyaç duyulur.

Swift ile Objective-C arasında hangisi öğrenilmeli?

Yeni projeler büyük ölçüde Swift ile başlar, bu yüzden yeni başlayanlar için öncelik Swift'tir. Objective-C, eski kod tabanlarına bakım yapacak geliştiriciler için sonradan öğrenilebilir. Dillerin aynı projede birlikte kullanılabilmesi sayesinde eski kodu okuyabilmek yeterli bir başlangıç seviyesidir.

Swift ile SwiftUI aynı şey mi?

Hayır. Swift programlama dilidir; SwiftUI ise bu dille yazılan bir arayüz çerçevesidir. Swift değişkenleri, fonksiyonları ve tipleri tanımlar; SwiftUI ekranda ne görüneceğini ve veri değiştiğinde ekranın nasıl güncelleneceğini tarif eder. Çerçeveyi kullanabilmek için önce dilin temellerini bilmek gerekir.

Swift zor bir dil mi?

Temel söz dizimi okunaklı olduğu için Swift başlangıç düzeyi için ulaşılabilir kabul edilir. Zorlanılan noktalar genellikle optional kavramı, değer ve başvuru tipi ayrımı, bellek yönetimi ve eşzamanlı çalışan kodlardır. Küçük uygulamalarla pratik yapmak bu kavramların oturmasını hızlandırır.

Swift Programlama Dili Nedir, Ne İşe Yarar?