2014 senesinde Apple tarafından duyurulan Swift, yıllar içerisinde değişime uğrayarak dünyada en ilgi çekici ve güçlü dilleri arasında yerini almayı başarmıştır.
Günümüzde ise Swift bir güncellemeden daha ileri giderek bir evrim geçirmek üzere atılım yapmıştır ve SwiftUI’ın duyurusunu gerçekleştirmiştir. SwiftUI, kullanıcı arayüz yaratımında yeni bir yöntem gütmektedir. SwiftUI ile beraber emirli(imperative) programlamadan tanımlı(declarative) programlamaya doğru bir geçiş olacaktır. İkisi arasındaki farka kısaca değinecek olursak, emirli programlamada “nasıl” olacağı sorusuna yanıt ararken, tanımlı programlama “ne” olacağı sorusuna göre programlama yapılır. Bu durumda programın daha çok şey biliyor olması gerekmektedir ki nasıl olacağı konusunu programcıdan aldıktan sonra gerçekleyebilsin. Tanımlı programlamanın ışığında nasıl olacağı sorusuna cevap veren küçük modüllerden oluşan bir modüler uygulama yapısına erişileceği öngörülmektedir. Apple, bu keskin dönüşü şu an zorunlu tutmayarak SwiftUI içerisinde UIKit kullanımını sağlamıştır.
- SwiftUI yıllardır süregelen Storyboard veya kod ile tasarım tartışmalarına da son verecektir.
- Apple ürünleri içerisinde cross-platform bir arayüz tasarımı gerçekleştirilebilecektir.
- SwiftUI’da bileşenler görünüm olarak adlandırılır ve View protokolü ile oluşturulur. Protokol “body” adında bir zorunlu özelliğe sahiptir ve View döner. Bu sayede özyinelemeli bir yapı elde edilip görünüm içerisinde görünüm yapıları kolayca uygulanabilir.
Örnek
Öncelikle basit bir örnek ile başlayarak ilerleyen yazılarda daha kompleks yapılara geçmeyi planlıyorum.
1 2 3 4 5 6 7 8 9 |
struct ContentView: View { var body: some View { Text("Hello World") } } |
Bu örnek bir SwiftUI projesi oluşturduğumuz zaman hazır olarak verilen kod parçacığı. Görüntü “View” protokolü kullanılarak tanımlanmış ve gerekli özellik olan “body” uygulanmış. Burada Apple yine Swift 5.1 ile karşımıza çıkan bir özelliğini bizlere kullandırmaya çalışmış, eğer bir fonksiyon tek satırdan oluşuyorsa bu satırı “return” satırı olarak algılayıp “return” keyword’ünü kullanmaya gerek kalmadan değer döndürebileceğiz. Bu halde yukarıdaki kodu aşağıdaki haliyle de yazabilirdik.
1 2 3 4 5 6 7 8 9 |
struct ContentView: View { var body: some View { return Text("Hello World") } } |
SwiftUI, tıpkı Swift’in yaşadığı gibi bir çok değişime ve evrime maruz kalacaktır. Bu değişimler ve yer yer evrimler, programlama dillerinin modernleşmesi, yazılımcıların ve/veya kullanıcıların ihtiyaçları gibi ana maddeler ışığında olacaktır.