WWDC20: SwiftUI Yenilikleri

WWDC20 konferansında SwiftUI devasa yeniliklerle ve değişimlerle uygulama geliştirmeyi daha da profesyonel ve basit bir hale getirdi.

Rana Taki
TurkishKit
6 min readJun 24, 2020

--

Merhaba TurkishKit okuyucuları🤟 Bu yazımızda sizlerle birlikte SwiftUI kütüphanesine gelen yeni özelliklerden bahsedeceğiz. Tahmin edebileceğiniz üzere SwiftUI kütüphanesi çok yeni bir özellik olduğundan bu sene bir çok değişiklik vardı. Hiç zaman kaybetmeden hemen başlayalım!

WWDC 2020 Haftasını Yakından Takip Edin!

TurkishKit Medium sayfamızı takip ederek WWDC 2020 haftası boyunca tanıtılan yeniliklerden anında haberdar olun. WWDC 2020 serimizi keşfetmek için aşağıdaki linke tıklamanız yeterli.

SwiftUI kütüphanesindeki değişiklikler bu sene 5 temel başlık altında anlatıldı. Apple’a yeni gelen Widget’lar ile birlikte SwiftUI kütüphanesinin işlevleri tamamen değişti denilebilir. SwiftUI oturumunda en dikkat çekici özellik her yenliğin sonunda sürekli başka videolara yönlendirmeleriydi. Konuların yoğunlukları nedeniyle yeniliklerin tamamını bir videoya sığdıramamış, bir tanesini anlatırken zaman kaybetmemek için yeniliklerin tamamını gösteren farklı videolara ve linklere yönlendiriyorlardı.

SwiftUI hakkında en temel bilgileri edinmek istiyorsanız bu konu hakkında yazdığımız makalelere aşağıdaki linkten ulaşabilirsiniz.

App ve Widget API‘ları

Apple’ın yeni çıkardığı widget özelliği ile birlikte SwiftUI kütüphanesinin tamamen farklı bir görev aldığını söyleyebiliriz. Yeni ekledikleri API’lar ile SwiftUI ile kodlanan tüm özellikler her cihazlar ile uyumlu hale getirilmiştir. Yani Mac ve iPad uygulamalarını uyumlu hale getirmek için ekstradan kodlamanıza gerek kalmaz!

App API

Artık tüm cihazlar için uyumlu uygulamalar aynı kodla geliştirilebiliyor. Her cihaz için farklı bir kod yazmanıza gerek kalmadığı için yeni SwiftUI, zamandan tasarruf etmenizi sağlıyor.

Bu noktadaki en çarpıcı değişiklikle başlayayım: Artık 100% SwiftUI kullanarak bir uygulama kodlayabiliyorsunuz. Yani SwiftUI kullanmak için bir kısmını normal uygulama yazarmış gibi yazmanıza gerek yok. Tamamen, baştan sona, SwiftUI kullanabilirsiniz!

iPad ve Mac gibi cihazlarda uygulama içinde birden fazla pencereyi aynı anda açabiliyorsunuz. Bu yeni App API’ının güçlendiğini belirtiyor. Böylece uygulamanız takılmadan rahatça kullanabiliyorsunuz.

WindowGroup: Bu API, SwiftUI ile kodlarken uygulamanızda kullandığınız tüm ekranları düzenler ve kontrol eder. Ekranlar arasında yaptığınız geçişler bu API tarafından sağlanır.

DocumentGroup: Dokümanlarınızı düzenlemek için yaptığınız uygulamaları kodlarken DocumentGroup özelliğini kullanabilirsiniz. Bu özellik, her cihazda rahatça dokümanlarınıza erişiminizi sağlayacak ve otomatik olarak uygulamanızın görünüşünü düzenleyecektir. Mac’te her yeni doküman için yeni bir pencere açacaktır. Menünüze dokümanlarınızı daha rahat düzenleyebilmek için yeni işlevler ekleyecektir.

.commands: Bu özelliği kullanarak Mac’inizin menüsüne yeni işlevler ekleyebileceksiniz.

Xcode uygulamasında da SwiftUI için yapılan bir çok yenilik oldu.

Multiplatform Template: Yeni bir proje açarken Multiplatform Template oluşturarak tamamen SwiftUI ile kodlanmış bir uygulama yazabiliyorsunuz.

Launch Screen Configuration: Bu özellik ile tüm UI elemanlarınızı görebiliyorsunuz. Önceden bildiğiniz Storyboard’ın yerini alan bir özellik olarak tanıtıldı. Tabi Storyboard’a alışmış olan programcılar bu özelliği kullanmak yerine Storyboard özelliğini kullanmayı tercih edebilirler.

Widget API

Apple’ın yeni çıkardığı özelliklerden en çok dikkat çekenlerden biri olan Widget’lar tamamen SwiftUI ile kodlanmıştır. Eğer cihazınıza yeni, kişisel Widget’lar tasarlamak istiyorsanız başvuracağınız platform SwitUI kütüphanesi olacaktır.

SwiftUI kütüphanesinin tüm cihazlara uyumlu olması Widget’ların kodlamasını da kolaylaştırdı. Artık tek bir kod ile tüm cihazlarınıza widget tasarımı yapabiliyorsunuz. API otomatik olarak kodladığınız widgetları cihazlarınıza uyumlu yapıyor.

Apple Watch’ınızın arkaplanından sıkıldınız mı? Hiç merak etmeyin, SwiftUI ile kendi arkaplanınızı tasarlayabiliyor ve bu tasarımı arkadaşlarınızla paylaşabiliyorsunuz!

Listeler ve Koleksiyonlar

Listeler ve koleksiyonlar yepyeni özellikler kazanıyorlar ve artık onları kodlamak daha kolay! iOS 14 ile birlikte Apple cihazlarında listeler ve koleksiyonlara farklı, ferah bir tasarım geldi. SwiftUI ile artık bu tasarıma uygun listeleri uygulamanıza otomatik olarak ekleyebiliyorsunuz!

Tasarımı beğenmediyseniz hiç sorun değil. Artık listelerinizi düzenlemek ve tasarımını ayarlamak oldukça kolay. Satırlarca kod yazmanıza gerek yok, aşağıdaki kod ile listelerinizin tasarımını istediğiniz gibi ayarlayabilirsiniz:

LazyVGrid: Bu özellik ile listeleriniz sıra ve dize sayıları ekranınızın boyutuna göre otomatik olarak ayarlanacaktır. Sıra ve dizeler arasındaki boşlukları da rahatça ayarlayabileceksinizdir.

LazyVStack: Bu özellik ile telefonunuzdaki fotoğraflar uygulamasında olduğu gibi listelerinizi istediğiniz bir tasarımda kullanıcıya gösterebileceksinizdir. Uygulamanızı adeta bir galeri olarak kullanabileceksiniz!

Toolbar ve Kontroller

Toolbar ve kontrollerin yeni çıkan iOS 14 ile yeni bir görünümü vardır. Artık uygulamanızdaki toolbar elemanlarını tamamiyle SwiftUI kullanarak kodlayabiliyorsunuz. Ve bunu yapmak çok kolay! Aynı zamanda, SwiftUI, “toolbar”ınızın görevine göre onu otomatik olarak ekranda en uygun yere yerleştirebiliyor! Bu hem tasarım açısından hem kullanım açısından size ve kullanıcınıza büyük bir konfor sağlıyor.

Label View: UI elemanlarını ekranınızda tanımlamak için kullanılan yeni bir özellik. UI elemanınızın ekrandaki oranlamaları otomatik olarak SwiftUI ile yapılır, artık constraintlerle saatlerce uğraşmanıza gerek yok!

.help: Bu modifier ile artık ekranınızda bulunan herhangi bir SFSymbol’un tanımını yapabilir, kullanıcılara onun ne işe yaradığını “tag” ekleyerek gösterebilirsiniz. Bu özelliği her cihazda kullanabilirsiniz. Mac’lerde fare imlecinizi üstüne getirdiğinizde ve bir süre beklediğinizde tanımı otomatik olarak yazarken, iPhone ve iPad’lerde sesli olarak tanımları size söylenir.

ProgressView: Artık SwiftUI’da yükleme ekranları gösterilebiliyor. Kimsenin sevmediği meşhur yükleme ekranlarını daha sevilecek hale, SwiftUI kullanarak getirebilirsiniz!

Gauge: Bu özelliği kullanarak Apple Watch cihazınıza yeni tasarımlar ekleyebilirsiniz. Mesela ana ekranınızda hava durumunun mu gözükmesini istediniz? Hemen SwiftUI ile hava durumunu gösterecek bir tasarım kodlayabilir, Apple Watch cihazınıza ekleyebilirsiniz.

Yeni Efektler ve Tasarım

SwiftUI kütüphanesinde menü kontrollerinin rengini değiştirebilirsiniz! Uygulamanızdaki toolbar elemanlarının rengini değiştirmek istiyorsanız ve otomatik olarak gelen yeşil rengini kullanmak istemiyorsanız aşağıdaki kodu kullanarak farklı renkler verebilirsiniz.

System Integration

Şu ana kadar fark ettiyseniz SwiftUI kütüphanesine bir çok otomasyon eklendi. Bu otomasyonlar API’lar sayesinde oldu. API’ların yaptığı bir mükemmel işlem de artık uygulamanıza eklediğiniz bağlantıların sadece internet sitesi olmasına gerek yok! Artık cihazınızda bulunan uygulamalara yönlendiren bağlantılar da ekleyebiliyorsunuz. Mesela herhangi bir haberi uygulamanızda referans ediyorsanız, eklediğiniz bağlantı ile haberin bulunduğu uygulamayı açabiliyorsunuz.

URL linkleri sadece uygulamalarda değil, cihazınıza eklediğiniz Widget’larda da çalışabiliyor.

Akıl almayan özelliklerin yanında bir de SwiftUI ile iki ayrı uygulama açıkken bir tanesinden bir objeyi sürükle ve bırak kullanarak öbür uygulamaya geçirebiliyorsunuz! Mesela herhangi bir alana resim yüklemek istediğinizde, ekranınızın diğer yarısında fotoğraflar uygulamasını açıp oradan bir fotoğraf seçip resmi yüklemek istediğiniz uygulamaya sürükle ve bırak yaparak ekleyebiliyorsunuz. Yani iki uygulama arası bilgi aktarımı yapabiliyorsunuz. Bu özelliğin sizi 2030'da hissettireceğine garanti verebilirim!😂

SwitUI ile “Sign in with Apple” butonu kodlanabiliyor. Artık uygulamalarınıza bu butonu eklediğinizde kullanıcılar tek bir tıklama ile Apple ID’leri ile giriş yapabilecekler.

SwiftUI kütüphanesinde daha bir çok yenilik oldu ancak bunların hepsini bir makalede anlatmak imkansız. SwiftUI mühendisleri bile bu yenilikleri oluşturdukları videoya sığdıramamış, izleyicileri farklı linklere yönlendirmişlerdi.😅

Şimdilik bahsettiğimiz yenilikleri kısa başlıklar ile özetlersek: “App ve Widget API’ları”, “Liste ve Koleksiyonlar”, “Toolbar ve Kontroller”, “Yeni Efektler ve Tasarım” ve sonuç olarak “System Integration” gibi bir liste karşımıza çıkacaktır.

SwiftUI kütüphanesindeki yenilikler geliştiricilerin kodlayabileceği uygulamaların yelpazesini açtığı söylenebilir. Hepinize SwiftUI ile iyi kodlamalar diliyorum!

Bizi daha yakından takip etmek istiyorsanız, sosyal medya hesaplarımıza aşağıdan ulaşabilirsiniz!

Twitter | Instagram | Facebook

--

--