Geçtiğimiz Haziran ayında Apple, Apple platformlarında SwiftUI adı verilen Kullanıcı Arabirimleri (UI) oluşturmaya yönelik yeni bildirim frameworkü açıkladı . Eylül 2019'da, iOS 13, bu yeni SwiftUI frameworku içeren halka duyuruldu.

Peki SwiftUI Apple'nin neden bu kadar gözdesi? Bu yazıda SwiftUI'nin geliştiriciler için faydaları avantajları ve dezavantajlarını irdelemeye çalışalım. 

SwiftUI Nedir?

SwiftUI, Apple platformları için Kullanıcı Arabirimleri (UI) oluşturmaya tamamen yeni bir yaklaşımdır. İOS, macOS, tvOS ve watchOS için kullanıcı arayüzlerinizi (ve davranışlarını) doğrudan Swift programlama diliyle kodlayabilirsiniz.



SwiftUI'den önce, Xcode'da Interface Builder ve Storyboard'larla iOS uygulamaları için kullanıcı arayüzleri oluşturursunuz. Orada aslında bir grup UI öğesini ekrana sürükleyip kodla bağlarsınız. Tablo görünümleri, gezinme, harita görünümleri ve düğmeler gibi standart UI öğeleri, geliştiricinin tercihlerine uyacak şekilde özelleştirilebilir. Interface Builder ile UI oluşturmak etkili ancak ideal değil.

İOS 13'ten bu yana, geliştiriciler UU'larını SwiftUI ile oluşturmayı seçebilirler. Çerçeve farklı bir yaklaşım kullanıyor: Swift koduyla tamamen bir kullanıcı arayüzü oluşturabilirsiniz.

İşte bir örnek:

struct ContentView : View {
      var body: some View {
           VStack(alignment: .leading) {
               Text("Jane Appleseed")
                        .font(.title)
        HStack {
            Text("Product developer at Acme Inc.")
                .font(.subheadline)
            Spacer()
            Text("+1-123-4567-890")
                .font(.subheadline)
           }
      }
       .padding()
    }

}

Yukarıdaki kodda, "yapı" olarak adlandırdık. Bu yapı, Kullanıcı Arabirimi hakkında görünüm adı verilen bilgiler içerir. Örneğin, bu kullanıcı arayüzü altında iki alt başlık bulunan bir başlık metninden oluşur.

SwiftUI'nin kullandığı yaklaşıma bildirimsel programlama denir. Bir uygulamanın kodu genellikle zorunludur: bunu yapın, yapın. SwiftUI ile, sadece istenen son sonucun ne olduğunu (durum olarak adlandırılır) beyan edersiniz. Çerçeve daha sonra bu sonuca nasıl ulaşılacağını bulabilir.

SwiftUI'de bir görünüm durumunun bir işlevidir - sadece bir olaylar dizisi değildir. React Native ve Flutter gibi uygulama platformları zaten bildirimsel kullanıcı arayüzü kullanıyor. Web geliştiricileri, HTML ve CSS ile çağlar için bildirim kodu kullanmaktadır.

SwiftUI'yi kullanmaya başlayalım

Bugün SwiftUI ile çalışmaya başlayabilirsiniz. Çerçeve, iOS 13 ve Xcode 11 ile birlikte gönderildi ve App Store'da SwiftUI ile açılan uygulamaları (kısmen) görüyoruz.

İOS veya Apple platformlarında yeniyseniz, başlamak için akıllı bir yol Swift'i öğrenmektir . Swift, Apple'ın uygulama platformlarına güç veren güçlü programlama dilidir ve aynı zamanda SwiftUI için kullandığımız dildir. HTML, CSS, JavaScript, React Native veya Flutter - daha da iyisi!

Başlamadan önce birkaç şeye ihtiyacınız olacak:

• macOS'lu bir Mac veya bilgisayar, ideal olarak macOS Mojave (10.14) veya Catalina (10.15)
• Mac App Store'dan veya doğrudan buradan indirebileceğiniz Xcode 11
• Apple Kimliği ve bir veya iki saat boş zaman :)

Bir sıçrama tahtası olarak kullanılacak harika bir kaynak, Apple'ın SwiftUI için resmi öğreticileridir . Temel ilkeler ve kavramlar konusunda size rehberlik edecek ve ilk birkaç SwiftUI görünümünüzü yazmanıza yardımcı olacaklar. Özellikle uygulama geliştirmeyi zaten biliyorsanız, başlamak için iyi bir yerdir . Eğiticiler, listeler, gezinme ve kullanıcı etkileşimi gibi birçok temel konuya değinmektedir.

Hızlı İpucu: macOS Catalina'daki Xcode 11 ile SwiftUI görünümlerinizin Canlı Önizlemelerini kullanabilirsiniz. Bu, verimliliği büyük ölçüde artırır, çünkü uygulamanızın yeniden derlenmesine gerek kalmadan bir görünümde yaptığınız değişiklikleri görebilirsiniz.

SwiftUI'nin avantajları ve dezavantajları nelerdir?

SwiftUI yeni bir teknolojidir ve bu heyecan verici ve ferahlatıcı olduğu anlamına gelir, ancak birkaç uyarı etiketi ile birlikte gelir. SwiftUI ile çalışmanın artıları ve eksileri nelerdir?

Her şeyden önce, SwiftUI sadece iOS 13 ve sonraki sürümlerden kullanılabilir. Bugünlerde çoğu uygulamanın bir veya iki sürümle (yani iOS 12 ve 11) geriye dönük olarak uyumlu olması gerektiği göz önüne alındığında, henüz SwiftUI ile tamamen oluşturulmuş pek çok uygulama görmeyeceksiniz.

SwiftUI, Interface Builder (UIKit, Storyboards, vb.) İle oluşturulan uygulamalarla sorunsuz bir şekilde entegre ederek bu sorunu hafifletir. SwiftUI görünümlerini Storyboard tabanlı kullanıcı arayüzlerinde veya tam tersi şekilde kullanabilirsiniz. Bu, bir uygulamayı yavaşça SwiftUI'ye geçirmede çok yardımcı olur.

SwiftUI'nin bir başka yararı da tamamen geliştiricilerin iş akışına odaklanıyor. Şimdiye kadar, uygulamalar için arayüzler Arayüz Oluşturucu ile oluşturuldu. Dahili olarak, Interface Builder XML tabanlı bir dosya formatı kullanır. Aynı Arayüz üzerinde çalışan iki geliştiricinin, bu Arayüz Oluşturucu XML dosyasının yapısı nedeniyle birleştirme çakışmalarına yol açması muhtemeldir. SwiftUI tamamen Swift kodundan oluştuğu için, birleştirme çakışmalarının oluşma olasılığı daha düşüktür ve çözülmesi daha kolaydır. Bu, daha iyi geliştirici verimliliği sağlar.

Swift programlama dilinin kendisinin benimsenmesine ve evrimine bakarsak, dilin son 5 yıl içinde olgunlaştığını görürüz. Aslında, Swift'in kendisi 2014'te tanıtıldı, bu yüzden dil nispeten eski değil. SwiftUI ile aynı benimseme yörüngesini göreceğiz.

Gelecek yıl, SwiftUI geliştiriciler tarafından test edilecek ve bu da çerçevenin nasıl daha iyi hale getirileceğine dair fikirlere yol açacak. SwiftUI'nin şimdiye kadar aldığı övgü göz önüne alındığında, bir veya iki yıl içinde geliştiricilerin tamamen SwiftUI'ye geçmesi pek mümkün değil.

Bu, bugün iOS geliştirmeye başlıyorsanız, yalnızca SwiftUI ile çalışmayı öğrenmeniz gerektiği anlamına mı geliyor? Muhtemelen değil. Storyboard tabanlı UI'ler yakın gelecekte alakalı kalacak ve Objective-C'nin birçok uygulama için hala alakalı olduğu gibi, Interface Builder ve UIKit de SwiftUI'nın yanında kalacak.