deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak Hacker News – Front Page (native)

ElementaryUI, SwiftUI tarzı bildirimsel Swift'i WebAssembly üzerinden tarayıcıya taşıyor

ElementaryUI, SwiftUI tarzı bildirimsel Swift kodunu WebAssembly'e derleyerek uygulamaların tarayıcıda doğal biçimde çalışmasını sağlıyor; yerleşik state yönetimi ve kilobayt boyutlarında wasm bundle'ları sunuyor.

ElementaryUI, SwiftUI tarzı bildirimsel Swift'i WebAssembly üzerinden tarayıcıya taşıyor

Tarayıcı arayüzlerine Swift yaklaşımı

29 Ekim 2026'da Hacker News'in ana sayfasına çıkan açık kaynak bir proje olan ElementaryUI, geliştiricilerin Swift ile kullanıcı arayüzleri oluşturmasını ve bunları WebAssembly'e derleyerek doğrudan tarayıcıda çalıştırmasını sağlıyor. Projenin sitesine göre framework, API'lerini SwiftUI üzerinden modelliyor; dolayısıyla Apple'ın bildirimsel araç setini bilenler, sıradan web elemanlarını hedeflerken söz dizimini tanıdık bulmalı.

Sitede aktarıldığı haliyle projenin vaadi üç ayak üzerinde duruyor: arayüzleri tanımlamak için SwiftUI benzeri söz dizimi, framework'ün kendisinin üstlendiği state yönetimi ve megabaytlara şişmek yerine kilobayt aralığında kalan wasm bundle'ları.

Kod nasıl görünüyor

Projenin açılış sayfasındaki örnek bir LoveCounter view'u. Tek bir state parçası tutan bir Swift struct'ı: count, @State property wrapper'ı ile tanımlanmış ve 1'den başlıyor. View'un body'si yinelenen bir kalp emojisi içeren bir paragraf render ediyor, sonra dallanıyor: sayı ondan küçükken bir buton her tıklamada onu artırıyor; sınıra ulaşıldığında view, butonu bir mesaj ve sayacı sıfırlayan bir kontrolle değiştiriyor.

İlginç olan kısım sayacın kendisi değil, etrafındaki zahmetin olmayışı. Manuel DOM manipülasyonu yok, açık bir refresh çağrısı yok ve listelemede görünür hiçbir JavaScript yapıştırıcısı yok. Arayüz bildirimsel olarak tanımlanıyor ve state değiştiğinde değişiklikleri uygulamak framework'ün sorumluluğunda.

Reaktivite, animasyon ve araçlar

Projenin sayfasına göre reaktivite üç property wrapper etrafında kurulu — @State, @Environment ve @Reactive — ve güncellemeler elle yazılan güncelleme mantığı yerine otomatik olarak uygulanıyor. Bunun üzerinde CSS tabanlı bir animasyon sistemi var; öğelerin layout durumları arasında geçerken eski konumlarından yeni konumlarına animasyonla taşındığı FLIP tekniğini otomatik uygulaması da buna dahil.

Gündelik geliştirme için ElementaryUI, Vite ile entegre oluyor ve geliştiricilere hot reload'lu bir dev server sunarak değişikliklerin iterasyon sırasında hızlıca görünmesini sağlıyor. Küçük bundle boyutları, tam Embedded Swift desteğiyle derlemeden geliyor — tam bir runtime'ın fazla ağır olacağı hedefler için tasarlanmış Swift'in kompakt lehçesi — ve proje, wasm çıktısını kilobaytlarda tutan şeyin bu olduğunu belirtiyor.

Proje açık kaynak ve sponsorlar tarafından finansal olarak destekleniyor; sitesi kullanıcıları onlara katılmaya davet ediyor.

Açılış sayfasının açık bıraktıkları

Her proje sayfasında olduğu gibi, bu da bir tanıtım而非 dokümantasyon değil. Site hangi tarayıcıların hedeflendiğini, framework'ün geniş JavaScript ekosistemi ve npm paketleriyle nasıl (ya da hiç) birlikte çalıştığını, geliştirmenin ne kadar ilerlediğini veya istikrarlı bir sürüm takviminin nasıl göründüğünü belirtmiyor. Bu sorular, üzerine inşa edip etmemeye karar verecekler için önemli olacak.

Neden önemli

WebAssembly uzun zamandır front-end geliştirmeyi JavaScript'in ötesine açmayı vaat ediyor; ancak wasm'a derlenen arayüz framework'leri sıklıkla payload boyutu konusunda tökezledi: megabaytlarla ölçülen indirmeler, son kullanıcıya yönelik web uygulamaları için zor bir satış. Embedded Swift'e yaslanarak bundle'ları kilobayt aralığında tutan ElementaryUI, tam da bu zayıflığa nişan alıyor. Halihazırda SwiftUI bilen geniş geliştirici kitlesi için, bu beceri setini web'e taşımanın bir yolunu sunuyor. Diğer herkes içinse, olgun native dil araç zincirlerinin — Rust, C#, Kotlin ve şimdi Swift — tarayıcıyı sadece başka bir derleme hedefi olarak görmesi şeklindeki daha geniş bir eğilimin bir veri noktası daha. İlginç bir demoyu aşarak büyüyüp büyümeyeceği, açılış sayfasının yanıt vermediği sorulara bağlı: ekosistem birlikte çalışabilirliği, tarayıcı kapsamı ve uzun vadeli bakım.

  • #swift
  • #webassembly
  • #swiftui
  • #front-end
  • #open-source

İlgili yazılar