3 poin oleh GN⁺ 2026-01-05 | 1 komentar | Bagikan ke WhatsApp
  • Framework yang memungkinkan pengembangan aplikasi native Android hanya dengan Swift, dengan UI, manifest, hingga lifecycle disusun dalam satu bahasa
  • Menyediakan struktur untuk membangun UI Android dengan pendekatan UI deklaratif tanpa menggunakan XML, Java, atau Kotlin sama sekali
  • Berjalan sebagai framework Android native murni, bukan web wrapper atau transpiler
  • UI dapat didefinisikan melalui sintaks deklaratif yang mirip SwiftUI, sekaligus sepenuhnya menyembunyikan lapisan JNI yang kompleks
  • Menawarkan pengalaman pengembangan terpadu dengan mendefinisikan Android Manifest dan konfigurasi Gradle langsung dalam kode Swift
  • Menjadi alternatif native baru bagi developer Swift untuk berekspansi ke Android, sekaligus titik balik yang membuka kemungkinan baru bagi pengembangan lintas platform berbasis Swift

Ikhtisar Droid

  • Droid adalah framework yang dirancang agar aplikasi native Android dapat dikembangkan hanya dengan bahasa Swift
  • Disusun agar UI, konfigurasi aplikasi, lifecycle, dan manifest dapat dikelola dalam satu bahasa dan satu codebase
  • Menghapus ketergantungan pada XML, Java, dan Kotlin yang selama ini dianggap wajib dalam pengembangan Android
  • Mencakup komponen native Android seperti AndroidX, Flexbox, dan Material Design
  • Menyediakan sintaks deklaratif yang mirip SwiftUI untuk menyederhanakan definisi UI
  • Menyembunyikan lapisan JNI sepenuhnya dan menyediakan akses melalui API tingkat tinggi

Tujuan desain dan karakteristik

  • Berbasis Pure Swift, sehingga UI, manifest, dan keseluruhan konfigurasi aplikasi ditulis dalam Swift
  • Mengadopsi UI deklaratif dengan penekanan pada keterbacaan dan komposabilitas
  • Mempertahankan pendekatan pengembangan No XML tanpa menggunakan XML sama sekali
  • Mengadopsi model eksekusi Native Android, bukan pendekatan berbasis web atau konversi kode
  • Menyediakan struktur terpadu untuk mendefinisikan UI, manifest, dan dependensi Gradle di satu tempat

Cara menyusun UI deklaratif

  • Menyusun UI Android secara deklaratif dengan API yang ramah untuk Swift
  • Widget Android seperti ConstraintLayout, VStack, TextView, dan MaterialButton dapat diekspresikan dalam kode Swift
  • Constraint layout, event klik, dan pengaturan style dapat didefinisikan langsung di dalam kode

Menulis Android Manifest dengan Swift

  • Android Manifest itu sendiri dideklarasikan dalam kode Swift
  • Pengaturan ikon aplikasi, theme, activity, dan fragment dikelola pada level kode
  • Penanganan event lifecycle dan logika konfigurasi dapat diintegrasikan dalam satu file Swift

Dokumentasi dan lingkungan pengembangan

  • Dokumentasi resmi tersedia dan terus diperluas
  • Belum semua fitur Android terdokumentasi sepenuhnya, tetapi panduan yang ada disediakan dalam bentuk yang lebih rapi
  • Pengembangan dapat langsung dimulai melalui Swift Stream IDE

Cakupan dukungan

  • Mendukung widget Android klasik
  • Mendukung library AndroidX
  • Mendukung komponen Material Design
  • Mendukung layout Flexbox

Status proyek

  • Proyek ini sedang dikembangkan secara aktif dan berkembang dengan cepat
  • API terus disempurnakan sambil membuka ruang ekspansi, namun visi intinya tetap dipertahankan
  • Feedback dan partisipasi sangat dianjurkan

1 komentar

 
GN⁺ 2026-01-05
Opini Hacker News
  • Swift Stream IDE v1.17.0 telah dirilis. Kini pengembangan aplikasi Android native penuh hanya dengan Swift menjadi mungkin
    Tidak perlu menyentuh XML, Java, atau Kotlin sama sekali. Di balik layar, framework SwifDroid buatan saya menangani lifecycle Android, Activity, Fragment, widget UI (Material, Flexbox, dll.), dan juga mengelola dependensi Gradle secara otomatis
    Framework ini mengompilasi kode Swift dan menghasilkan proyek yang bisa langsung dijalankan di Android Studio. Baik tool maupun framework dirilis dengan lisensi open source MIT

    • Menarik. Saya penasaran dengan irisan antara pengalaman Android yang dibutuhkan untuk developer Swift, dan pengalaman Swift yang dibutuhkan untuk developer Android/Kotlin
      Anda bilang XML, Java, dan Kotlin tidak perlu disentuh, tetapi saya ingin tahu apakah developer Swift tanpa pengalaman Android sama sekali benar-benar bisa berhasil membuat aplikasi
      Saya juga ingin tahu, untuk kondisi saat ini dan tahun depan, kira-kira berapa persen aplikasi Kotlin atau Flutter yang bisa ditulis dengan Swift
    • Salah satu keunggulan Swift adalah interoperabilitas dengan library C/C++. Biasanya ini disediakan sebagai dependensi SwiftPM atau Bazel, jadi saya penasaran bagaimana dependensi SwiftPM ditangani
    • Saya penasaran bagaimana cara melakukan binding kode Java/Kotlin ke Swift
      Kami sedang mencoba hal serupa dengan Rust, bukan Swift
    • Selamat. Saya juga sempat berpikir untuk menyatukan lingkungan pengembangan saya dengan Swift, dan ini benar-benar pekerjaan yang keren
  • Upaya seperti ini pada akhirnya harus melewati JNI, jadi ada keterbatasan karena 80% API hanya diekspos lewat Java
    Proyek seperti ini selalu menarik, tetapi pada akhirnya akan menabrak masalah abstraksi bocor (leaky abstraction)
    Sama seperti di iOS Anda tetap perlu tahu Objective-C, dan di Windows Anda perlu tahu .NET/COM

    • Sekarang pun, di ekosistem Apple, untuk berhasil Anda harus bisa menangani Swift dan Objective-C sekaligus
      Dari pengalaman saya di Unity, marshalling dari C# ke C terasa mulus, tetapi Swift jauh lebih merepotkan
      Kenyataannya, setiap framework baru perlu penanganan terpisah
  • Menggunakan bahasa bersama lintas platform (Swift atau Kotlin) terlihat bagus di permukaan, tetapi menurut saya dalam praktiknya tidak seefisien yang diharapkan
    Pada akhirnya Anda tetap memelihara dua codebase, dan perbedaan serta workaround jadi terlalu banyak, sehingga lebih baik menikmati bahasa masing-masing
    Kebanyakan developer membangun karier sambil mempelajari beberapa bahasa, dan perpindahannya pun tidak terlalu sulit. Ini opini pribadi saya, tetapi proyeknya sendiri menurut saya luar biasa

    • Meski begitu, upaya seperti ini tetap membantu engineer yang terbiasa dengan satu platform untuk bisa bekerja di platform lain juga
      Dulu saya pernah belajar berbulan-bulan untuk membuat aplikasi Android native dengan Java, tetapi tidak menyenangkan sehingga saya menyerah
      Saya cenderung lebih suka pengembangan native penuh, dan sudah memakai framework cross-platform selama puluhan tahun tanpa pernah melihat sukses besar
      Berpindah bahasa selalu membawa biaya perpindahan konteks. Setiap kali bolak-balik antara Swift dan PHP, saya sering membuat kesalahan sintaks
      Bahasa memang cepat dipelajari, tetapi SDK, standard library, dan framework membutuhkan waktu lama untuk benar-benar dikuasai
    • Framework seperti ini cepat untuk pengembangan fitur sederhana, tetapi ketika ingin memakai fitur khusus platform, justru jadi penghambat
      Apalagi sekarang, berkat tool AI, pekerjaan sederhana sudah jauh lebih cepat, jadi penghematan waktu pengembangan totalnya tidak terlalu besar
      Kecuali aplikasinya pada dasarnya setara web app, saya tidak akan merekomendasikannya
    • Kotlin dan Swift sangat mirip, dan untuk bagian yang berbeda saya justru merasa lebih baik tidak diabstraksikan
      Secara bahasa saya menganggap Swift lebih baik, tetapi karena KMP lebih lama dan lebih stabil, dalam praktiknya saya mungkin akan memilih itu
    • Mengetahui beberapa bahasa justru memberi kebebasan
      Tetapi saya enggan menjadi lebih terikat pada ekosistem perusahaan besar tertentu
      Lagi pula, menurut saya Swift adalah bahasa yang kurang nyaman, jadi saya tidak terlalu ingin memakainya juga di platform lain
  • Saya penasaran bagaimana perbandingannya dengan Skip
    Proyek ini tampaknya tidak memindahkan kode iOS SwiftUI ke Android, melainkan berfokus pada pengembangan Swift khusus Android
    Saya ingin tahu apakah itu bisa menghasilkan kualitas aplikasi yang lebih baik, dan apakah sudah ada contoh nyatanya

  • Hanya dari fakta bahwa saya tidak perlu memakai Android Studio atau IntelliJ saja, menurut saya ini sudah merupakan peningkatan besar. Keren sekali

    • Menggunakan Xcode untuk menghindari Android terasa seperti pilihan yang mirip menyentuh asam klorida
    • Saya penasaran apakah Gradle juga bisa dihindari. Ingin tahu apakah mimpi buruk manajemen dependensi itu benar-benar bisa dilewati
  • Banner persetujuan cookie-nya terasa tidak sesuai dengan regulasi Eropa

  • Saya tidak mengerti kenapa pengembangan mobile terasa sebegitu tidak nyaman dibanding PC
    Saya juga penasaran kenapa membuat Hello World dalam assembly di mobile pun harus sesulit ini

    • Sebenarnya bisa. Tetapi itu sama menyakitkannya dengan membuat Hello World dalam assembly di PC, jadi tidak ada yang melakukannya
  • Saya sudah cukup lama tidak mengikuti pengembangan Android, jadi kalau dirangkum kondisi sekarang
    Dulu iOS memakai Swift dan Android memakai Java
    Sekarang Java digantikan Kotlin, dan muncul framework cross-platform seperti Flutter atau React Native
    Saya penasaran apakah Swift on Android adalah lapisan abstraksi lain seperti itu, atau justru lebih dekat ke native
    Bukankah pada akhirnya yang paling cepat tetap kode native?

    • React Native bukan berbasis webview. Ia adalah lapisan translasi native yang mengubah JSX menjadi kode UI SwiftUI/Kotlin
      Secara pribadi saya lebih menyukai Flutter. Banyak developer Android native juga mengatakan Flutter mungkin adalah masa depan pengembangan Android
      Untuk diskusi terkait, lihat thread Reddit ini
  • Proyek ini mengambil pendekatan yang berbeda dari SwiftCrossUI atau Skip
    SwiftCrossUI dan Skip menjalankan SwiftUI apa adanya di berbagai platform,
    sedangkan SwifDroid adalah tentang menulis UI khusus Android dengan Swift
    Tujuannya adalah membuat aplikasi Android penuh dengan Swift sambil tetap memakai sistem View dan API Android secara langsung, tanpa Java/Kotlin/XML
    Jadi, ini bukan pendekatan “tulis sekali, jalankan di mana saja”, melainkan arah menghadirkan pengalaman Android native melalui Swift

  • Saya penasaran bagaimana cara yang idiomatis di Swift untuk menangani request HTTP dan parsing JSON