10 puan yazan GN⁺ 2025-10-25 | 1 yorum | WhatsApp'ta paylaş
  • Swift dili bulut, Windows, tarayıcılar ve mikrodenetleyicilere kadar genişleyip olgunlaşırken, artık Android için Swift SDK da duyuruldu
  • Bu SDK, Swift Android çalışma grubunun aylar süren çabasının bir sonucu olarak geliştiricilerin Swift ile Android yerel uygulamaları geliştirmesini sağlıyor
  • SDK, Windows yükleyicisine dahil olarak sunuluyor veya Linux ve macOS için ayrı olarak indirilebiliyor; örnek kodlar ve kılavuzlar da birlikte sağlanıyor
  • swift-java projesi üzerinden Swift ile Java arasında çift yönlü birlikte çalışabilirlik destekleniyor; otomatik binding üretimiyle performans ve güvenlik sağlanıyor
  • Bu duyuru, Swift’in çapraz platform ekosisteminin genişlemesini hızlandırırken mobil geliştirmede yeni olanakların önünü açan bir dönüm noktası olarak değerlendiriliyor

Android için Swift SDK genel bakış

  • Swift dilinin son 10 yılda bulut servislerinden Windows, tarayıcılar ve mikrodenetleyicilere kadar genişlemesinin ardından, Android platformuna resmî açılım da duyurulmuş oldu
    • Swift’in birlikte çalışabilirlik (interoperability) özelliği sayesinde farklı platformlar arasında kod paylaşımı kolaylaşıyor
  • Android çalışma grubu (Android workgroup), herkesin katılımına açık bir grup olarak Swift’i Android’e taşımayı hedefliyor
  • Bu duyuru, Android için Swift SDK’nin nightly (preview) sürümünün yayınlanması anlamına geliyor ve topluluğun uzun soluklu iş birliğinin bir ürünü

SDK’nin başlıca özellikleri ve dağıtım biçimi

  • Geliştiriciler artık Swift kullanarak doğrudan Android yerel uygulamaları geliştirebiliyor
    • Bu da çapraz platform geliştirme için yeni olanaklar sunuyor
    Reklam
  • SDK, Windows yükleyicisiyle birlikte paketlenmiş olarak sunuluyor; Linux ve macOS için ayrı indirme seçeneği de mevcut
  • Swift.org, “Getting Started” kılavuzu ile Android cihazlarda Swift kodunun nasıl kurulacağını anlatıyor
    • GitHub’daki Swift for Android Examples deposunda uçtan uca uygulama iş akışı gösteriliyor

Paket uyumluluğu ve topluluk genişlemesi

  • Swift SDK sayesinde mevcut Swift paketleri Android’e taşınabiliyor
    • Swift Package Index’teki paketlerin %25’inden fazlası zaten Android derlemelerini destekliyor
    • Community Showcase sayfasında Android uyumluluğu belirtiliyor
  • Bu genişleme, Swift ekosisteminin çoklu platform desteğinin güçlenmesine katkı sağlıyor

swift-java projesi ve birlikte çalışabilirlik

  • swift-java projesi, Swift ile Java arasında birlikte çalışabilirlik (interoperability) sağlayan bir kütüphane ve kod üreticisi
    • Swift ile Java arasındaki çift yönlü entegrasyonu otomatik olarak yönetiyor ve güvenli, yüksek performanslı binding’ler üretiyor
    Reklam
  • Geliştiriciler bunun sayesinde iş mantığını Android’e taşıyabiliyor; ilgili ayrıntılar Swift Server Side Meetup sunum videosunda görülebiliyor

Topluluk katılımı ve gelecek yol haritası

  • Bu preview sürümü, araçların iyileştirilmesi ve ekosistemin genişletilmesi için yeni fırsatlar açtı
    • Deneyimlerin, fikirlerin, araçların ve uygulamaların Swift forumlarındaki Android kategorisinde paylaşılması teşvik ediliyor
    • Bu duyuru ayrıca forumdaki resmî başlıkta da tartışılıyor
  • Android çalışma grubu şu anda bir vizyon belgesi (vision document) hazırlıyor ve Swift on Android için öncelikli alanları ve gelecekteki yönü ortaya koymayı planlıyor
    • Proje panosu üzerinden ana ilerleme durumu takip ediliyor, resmî CI sistemi ile de SDK kalitesi yönetiliyor
  • Swift ekibi, topluluğun katılımını teşvik ederken Android ekosisteminde Swift’in konumunu güçlendirmeyi hedefliyor

1 yorum

 
GN⁺ 2025-10-25
Hacker News yorumları
  • Tüm çapraz platform framework'lerinin temel sorusu, UI'ı nasıl ele aldıklarıdır.
    Adobe Flex Builder örneğinde olduğu gibi her platformda yabancı hissettiren tasarım sistemleri kullanırsanız, sonunda native hissi kendiniz uygulamak zorunda kalırsınız.
    Flutter, iOS'un Cupertino temasını kusursuz biçimde yeniden üretmeye çalışıyor; React Native ise platformun varsayılan widget'larını kullanarak kaydırma gibi öğelerin doğal hissettirmesini sağlıyor.
    Blog yazısında bu önemli noktaya değinilmemesi üzücü.
    Apple Android için Swift çıkarsa bile, Apple'a özgü tasarım felsefesi nedeniyle Android'de garip hissettirme ihtimali var.
    Bu projenin doğrudan Apple tarafından mı yönlendirildiği, yoksa topluluk merkezli bir açık kaynak girişimi mi olduğu, ilerideki yönünü belirleyecek gibi görünüyor.

    • Ben, UI paylaşımından ziyade native UI yazımına izin veren framework'leri tercih ediyorum.
      Bu yüzden KMP'yi seviyorum. iOS'ta SwiftUI ile, Android'de Kotlin ile UI yazarken sadece iş mantığını paylaşabiliyorsunuz.
      UI'ı paylaşmaya çalıştığınızda, “bir kez yaz, her yerde debug et” kâbusu ortaya çıkıyor.
      Swift for Android de bu şekilde dil düzeyinde mantık paylaşımını mümkün kılacak gibi görünüyor.
    • Swift SDK for Android, belirli bir UI yaklaşımını dayatmıyor.
      Örneklerde de Jetpack Compose aynen kullanılırken Swift mantığı çağrılıyor.
      Swift'in reference counting bellek modeli ile aynı yapıyı koruyarak yüksek tutarlılık sağlıyor.
      Apple'da geliştirici araçlarından sorumlu biri olarak, bu teknolojinin yeni yenilikler için bir basamak olmasını umuyorum.
    • Browser Company'nin SwiftUI'ı Windows'a port ettiği örnekte olduğu gibi, Android'de de SwiftUI'ın Jetpack Compose'a eşlenmesi mümkün olabilir.
      SwiftUI aslında baştan beri “native UI” değil; sistemin yorumlayıp UIView veya NSView üreten bildirimsel bir dil.
    • Bu sürümde SwiftUI veya UIKit'in Android'e taşınmış bir parçası yok.
      Flutter gibi doğrudan kopyalamadığınız sürece, Apple UI'ını Android'de aynen kullanmak mümkün değil.
    • Swift SDK belirli bir UI teknolojisi tanımlamıyor.
      Bunun yerine Skip.tools gibi projeler SwiftUI'ı Jetpack Compose'a köprülüyor.
      Bunun örneğini Skip Showcase uygulaması içinde görebilirsiniz.
      Ben Skip ürünlerinde ve Swift Android Workgroup içinde yer alıyorum; bu SDK sürümünde de release manager olarak görev aldım.
  • Resmî bir proje olarak duyurulmuş olmasına gerçekten sevindim.
    RN ve Flutter kullandım ama sorun her zaman native his eksikliği oldu.
    KMP de var, ancak çoğu geliştirici iOS'tan başlayıp sonra Android'e genişliyor.
    Kodu Swift Package olarak paylaşabilmek bu akışı çok daha doğal hâle getiriyor.

    • Android geliştiricisi çok daha fazla ve dağıtım da daha kolay.
      Buna karşılık Swift/Objective-C geliştiricileri çok daha az.
      ABD dışındaki bölgelerde iPhone pazar payı daha düşük olduğu için, şirketler Windows veya tarayıcı merkezli düşünmeye daha yatkın.
    • “iOS'tan başlamak” bana ABD merkezli bir bakış açısı gibi geliyor.
      KMP zaten Google Workspace gibi büyük uygulamalarda kullanılıyor ve Kotlin ile JetBrains'in yatırımları sayesinde olgunluk seviyesi yüksek.
      Flutter'ın sürüm döngüsü ise o kadar hızlıydı ki takip etmek zor oluyordu.
    • JavaScript tabanlı iş mantığı da göz ardı edilmemeli.
      JavaScriptCore veya QuickJS ile iOS, Android ve Web'de birlikte çalışabiliyor ve hot reload mümkün oluyor.
      Ancak uygulama mağazası politikaları yüzünden büyük özellik değişiklikleri zor; daha çok hata düzeltmeleri için uygun.
      Mobil dağıtım döngüsünün yavaş olduğu gerçeği düşünüldüğünde, bunun büyük bir fırsat olduğunu düşünüyorum.
    • Proton'da mantığın %80'den fazlası Rust ile paylaşılıyor, geri kalanı ise platforma özel uygulanıyor.
    • Aslında bu yapı zaten .NET ve MvvmCross ile mümkündü.
      Paylaşılan çekirdek kütüphane + her platformun native UI projesi yapısı gayet iyi çalışıyor.
  • Skip.tools blogunda gördüğüm SKIP transpiler ile ilgili bir proje mi diye merak etmiştim.
    SwiftUI uygulamasını Android'e taşımak istiyordum ama RN'den kaçınmak istiyordum.

    • Evet, Skip bir yıldan uzun süredir Swift SDK'nin önizleme sürümünü kullanıyor ve Fuse modu ile tamamen native SwiftUI uygulamalarını Android için derliyor.
      Skip'te iki mod var: Swift kodunu Kotlin'e dönüştüren Lite modu ve Swift'i doğrudan Android için derleyen Fuse modu.
      Bu iki mod birlikte kullanılarak Kotlin ekosistemiyle (Lottie, Firebase vb.) entegrasyon sağlanabiliyor.
      Ayrıntılı karşılaştırmayı Skip Docs içinde görebilirsiniz.
      Artık resmî SDK çıktığı için kendi derlememizi kullanmak yerine resmî sürümü kullanabilecek olmamız sevindirici.
    • Skip, bu çabanın ana katkıcılarından biri.
    • Artık transpiler olmadan da native Swift çalıştırmak mümkün ve uyumluluk da çok daha yüksek.
  • Umarım Swift Embedded gibi sadece basit bir kavram kanıtı olarak kalmaz.
    Swift dil olarak çok zarif, ama topluluk liderliği konusunda tedirgin edici bir hava var.

    • guard let self = self else { return } — Swift geliştiricileri arasında bilinen bir şaka.
  • Artık RN ve Flutter görmek istemiyorum.
    Köşeli UI ve yavaş dokunma tepkilerinden bıktım.

    • Flutter'da da köşe yarıçapı ayarlanabilir ve performans hızlı olabilir.
      Tepkinin yavaş olması büyük ihtimalle uygulamanın nasıl geliştirildiğiyle ilgilidir.
    • Ben de RN ve Flutter'ı çok sevmiyorum ama Android üzerinde Swift'in onlardan daha iyi olacağının garantisi yok.
      Apple kısa sürede ilgiyi kaybedebilir.
  • “You got Kotlin in my iOS.”
    “You got Swift in my Android.” — güzel bir espri.

    • Mükemmel benzetme. Gerçekten Reese’s reklamları gibi Kotlin ve Swift'in karıştığı hibrit bir şey çıkabilir.
    • Kotlin on iOS, statik olarak derlenir ve Swift/ObjC ile native biçimde birlikte çalışır.
      Ayrıntı için Kotlin Native genel bakış.
  • Bu duyuru, yeni Swift SDK sisteminin başarılı olduğunun bir kanıtı gibi görünüyor.
    Eskiden diğer platform desteği CMake karmaşası yüzünden zordu, ama artık SDK kurallarına uyulduğu sürece herhangi bir platforma port etmek mümkün.
    Android dışında Linux, wasm, embedded ve yakında Windows'a kadar genişlemesi planlanıyor.
    JVM ile birlikte çalışabilirlik henüz tam değil, ancak platform bağımsızlığının arttığı açık.

  • Kotlin Multiplatform'ı seviyorum ama Swift for Android de ilginç.
    Belleğe duyarlı işlerde Swift native kütüphanelerini paylaşmak faydalı olabilir.
    Ancak tüm iş mantığını Swift'e taşımak açısından KMP hâlâ daha olgun.

    • KMP ile masaüstü uygulamaları da yaptınız mı, genel olgunluk düzeyi nasıldı diye merak ediyorum.
  • İş mantığını paylaşmak zaten çözülmüş bir problemdi.
    Asıl acı veren kısım, UI'ı iki kez yazmak zorunda olmaktı.
    React Native kadar rahatsız edici olmayan ortak bir UI framework'üne ihtiyaç var.

    • React Native son dönemde New Architecture'a geçişle birlikte oldukça iyileşti.
      Expo ile birlikte kullanıldığında geliştirici deneyimi epey daha iyi oluyor.
  • Uzun zamandır Android ile iOS arasında kod paylaşıyorum ama UI paylaşımı tam bir kâbustu.
    Sadece karmaşık mantığı C/C++/Rust ile paylaşırdık, bunun sonucunda da üç ayrı dil ortaya çıkardı.
    KMP ve Swift for Android, Kotlin/Swift ile paylaşımı mümkün kıldığı için çok daha temiz.
    Bu yaklaşım, UI'ı zorla paylaşmaya çalışan framework'lere göre çok daha gerçekçi ve verimli.