- Swift, temiz söz dizimi, statik tipleme ve kod yazmayı kolaylaştıran özel özellikleri sayesinde kullanıcı arayüzleri oluşturmak için uygundur
- Adwaita for Swift, Swift’in bu özelliklerinden yararlanarak GNOME platformu için uygulama geliştirmeye yönelik sezgisel bir arayüz sunar
- GNOME, Linux için popüler bir açık kaynak masaüstü ortamıdır ve sadelik ile erişilebilirliğe odaklanır
Kod örneği
- Adwaita for Swift kullanılan kod örneğinde, pencere içindeki kullanıcı arayüzü bölümünü göstermek için
Counter adlı bir görünüm tanımlanır
- Görünümler başka görünümlerin içine iç içe yerleştirilebilir veya pencereye alt öğe olarak eklenebilir; ayrıca görünüm hiyerarşisindeki konumuna göre içerikleri dışarıdan değiştirilebilir
- Bu sayede farklı sonuçlar üretmek için görünümleri birleştirmek daha kolay hale gelir
Motivasyon
- Amaç, Swift kullanarak GNOME uygulamaları yazmayı mümkün kılmaktır
- Mevcut libadwaita ve GTK binding’leri, kullanıcı arayüzünü bir dizi komut kullanarak oluşturan emirsel bir kodlama stilini izler
- Adwaita for Swift veri merkezli olarak inşa edilmiştir; örneğin bir düğmeye basıldığında
count değişkeni değişirse kullanıcı arayüzü otomatik olarak güncellenir
Kullanım kolaylığı
- Geleneksel binding’lerde, bir değer her değiştiğinde widget’ın içeriğini güncellemesi için nesne üzerinde bir fonksiyon çağrılması gerekir
- Adwaita for Swift’te ise saklanacak değişkenlere yalnızca benzersiz tanımlayıcılar eklemeniz yeterlidir, gerisini kendisi halleder
Okunabilirlik
- Veri merkezli yaklaşım, okunabilirlik üzerinde olumlu etki yaratır
- Kullanıcı arayüzünün deklaratif olarak tanımlanması sayesinde, sonuca nasıl ulaşılacağından çok uygulamanın görünümüne ve davranışına odaklanabilirsiniz
Çapraz platform uygulama geliştirme
- Adwaita for Swift, Linux, macOS ve Windows’ta tek bir kod tabanıyla çalışan uygulamalar yazmayı mümkün kılar
- SwiftUI uygulamaları ile GNOME uygulamaları arasında arka uç Swift kodu paylaşılabilir
- Swift kullanarak yeni GNOME uygulamaları oluşturabilir ve yüksek kod okunabilirliği ile bellek güvenliği elde edebilirsiniz
Uygulama dağıtımı
- Adwaita for Swift, Flathub ile iyi çalışır ve masaüstü Linux için uygulamaların kurulumu ile dağıtımını basitleştirir
- Swift 5 için bir Freedesktop SDK uzantısı ve Swift Package Manager bağımlılıklarını Flatpak kaynaklarına dönüştüren bir araç mevcuttur
GN⁺ görüşü
- Swift ile GNOME’un birleşimi, geliştiricilere yeni bir platformda uygulama geliştirme fırsatı sunuyor; özellikle Swift’in güçlü dil özellikleri ile GNOME’un kullanıcı dostu ortamının birleşmesi verimli bir geliştirme deneyimi sağlayabilir
- Bu yazı, Linux masaüstü ortamına yönelik yeni bir yaklaşım ortaya koyarken, mevcut geliştirme yöntemlerine kıyasla deklaratif stilin sağladığı kolaylık ve okunabilirliği vurguluyor
- Çapraz platform geliştirmenin avantajlarını öne çıkarırken, farklı işletim sistemlerinde aynı kullanıcı deneyimini sunmanın önemine dikkat çekiyor
- Teknik arka plan açısından, Swift’in statik tiplemesi ve bellek güvenliği uygulamanın performansını ve kararlılığını artırmaya katkı sağlayabilir
- Eleştirel açıdan bakıldığında, GNOME dışındaki masaüstü ortamlarında uyumluluk sorunları veya performans problemleri ortaya çıkma ihtimali de göz önünde bulundurulmalıdır
3 yorum
https://stuff.mit.edu/afs/athena/…
Gnome’un resmi telaffuzu "gnom" değil, "genom"dur.
Harika.
Hacker News yorumları
SwiftUI benzeri wrapper üzerine tartışma
Diğer projeler ve araçlardan bahsedilmesi
Kişisel proje deneyiminin paylaşılması
Geçmiş deneyimlerle karşılaştırma
Mac’te çalıştırma sorunu
adwaita.heksik hatasıyla karşılaşılmış.Kişisel "hayal framework" hakkındaki görüş
gtk4’te 3D desteği hakkında soru
Fonksiyon parametrelerinde anahtar kullanımı hakkındaki görüş
Swift kod tabanının test edilmesi üzerine tartışma
Swift’in masaüstü geliştirme için ilginç bir seçenek haline gelmesi