Pengumuman Swift SDK untuk Android
(swift.org)- Seiring bahasa Swift makin matang dan meluas hingga cloud, Windows, browser, dan mikrokontroler, kini Swift SDK untuk Android telah diumumkan
- SDK ini merupakan hasil dari upaya berbulan-bulan Swift Android workgroup, yang memungkinkan pengembang membuat aplikasi native Android dengan Swift
- SDK disertakan dalam installer Windows atau dapat diunduh terpisah untuk Linux dan macOS, serta disediakan bersama kode contoh dan panduan
- Melalui proyek swift-java, SDK ini mendukung interoperabilitas dua arah antara Swift dan Java, dengan pembuatan binding otomatis untuk memastikan performa dan keamanan
- Rilis ini dinilai sebagai titik balik yang mempercepat perluasan ekosistem lintas platform Swift dan membuka kemungkinan baru dalam pengembangan mobile
Gambaran umum Swift SDK for Android
- Dengan latar belakang bahasa Swift yang dalam 10 tahun terakhir telah meluas dari layanan cloud hingga Windows, browser, dan mikrokontroler, ekspansinya ke platform Android kini diresmikan
- Berkat interoperabilitas (interoperability) Swift, berbagi kode antar berbagai platform menjadi lebih mudah
- Android workgroup adalah grup terbuka yang dapat diikuti siapa saja, dengan tujuan memperluas Swift ke Android
- Pengumuman ini menandai perilisan build nightly (preview) Swift SDK for Android, hasil kolaborasi panjang komunitas
Fitur utama SDK dan cara distribusi
- Pengembang kini dapat langsung membuat aplikasi native Android menggunakan Swift
- Ini membuka kemungkinan baru untuk pengembangan lintas platform
- SDK dibundel dalam installer Windows, dan dapat diunduh terpisah untuk Linux dan macOS
- Swift.org menyediakan panduan “Getting Started” untuk menjelaskan cara menyiapkan kode Swift di perangkat Android
- Repositori Swift for Android Examples di GitHub mendemonstrasikan alur kerja aplikasi end-to-end
Kompatibilitas paket dan perluasan komunitas
- Melalui Swift SDK, paket Swift yang sudah ada dapat diporting ke Android
- Lebih dari 25% paket di Swift Package Index sudah mendukung build Android
- Halaman Community Showcase menampilkan apakah suatu paket kompatibel dengan Android
- Perluasan ini memperkuat dukungan multiplatform dalam ekosistem Swift
Proyek swift-java dan interoperabilitas
- Proyek swift-java adalah library dan code generator yang menyediakan interoperabilitas (interoperability) antara Swift dan Java
- Integrasi dua arah antara Swift dan Java ditangani secara otomatis, sekaligus menghasilkan binding yang aman dan berperforma tinggi
- Dengan ini, pengembang dapat memindahkan business logic ke Android, dan detail terkait dapat dilihat dalam video presentasi Swift Server Side Meetup
Partisipasi komunitas dan roadmap ke depan
- Rilis preview ini membuka peluang baru untuk peningkatan tool dan perluasan ekosistem
- Pengguna didorong untuk membagikan pengalaman, ide, tool, dan aplikasi di kategori Android pada forum Swift
- Pengumuman ini juga sedang dibahas dalam thread resmi di forum
- Android workgroup saat ini sedang menyusun vision document, yang akan memaparkan area prioritas dan arah ke depan untuk Swift on Android
- Project board digunakan untuk melacak perkembangan utama, dan sistem CI resmi mengelola kualitas SDK
- Tim Swift mendorong partisipasi komunitas, dengan tujuan memperkuat posisi Swift di dalam ekosistem Android
1 komentar
Komentar Hacker News
Pertanyaan inti dari semua framework cross-platform adalah bagaimana menangani UI
Jika memakai sistem desain yang terasa berbeda di tiap platform seperti Adobe Flex Builder, pada akhirnya kita harus mengimplementasikan sendiri nuansa native
Flutter berusaha mereproduksi tema Cupertino di iOS dengan sempurna, sementara React Native memanfaatkan widget bawaan platform agar elemen seperti scroll terasa natural
Sayang sekali tulisan blog tersebut tidak menyinggung bagian penting ini
Walaupun Apple merilis Swift untuk Android, ada kemungkinan ia tetap terasa canggung di Android karena filosofi desain khas Apple
Arah ke depannya tampaknya akan ditentukan oleh apakah proyek ini benar-benar dipimpin langsung oleh Apple, atau lebih merupakan upaya open source berbasis komunitas
Karena itu saya suka KMP. Di iOS kita bisa menulis UI dengan SwiftUI, di Android dengan Kotlin, sambil hanya berbagi business logic
Saat mencoba berbagi UI, yang terjadi justru mimpi buruk “tulis sekali, debug di semua tempat”
Swift for Android tampaknya juga bisa memungkinkan berbagi logika di level bahasa dengan pendekatan seperti ini
Bahkan pada contohnya, Jetpack Compose tetap digunakan apa adanya sambil memanggil logika Swift
Strukturnya juga mempertahankan model yang sama dengan model memori reference counting milik Swift sehingga terasa konsisten
Dari sudut pandang Apple yang menangani developer tools, saya berharap teknologi ini bisa menjadi pijakan bagi inovasi baru
SwiftUI pada dasarnya bukan “UI native”, melainkan bahasa deklaratif yang diinterpretasikan sistem untuk membuat UIView atau NSView
Kecuali menyalinnya langsung seperti Flutter, menggunakan UI Apple apa adanya di Android itu tidak mungkin
Sebagai gantinya, proyek seperti Skip.tools menjembatani SwiftUI ke Jetpack Compose
Contohnya bisa dilihat di aplikasi Skip Showcase
Saya adalah anggota produk Skip dan Swift Android Workgroup, serta ikut terlibat sebagai release manager untuk rilis SDK ini
Senang sekali ini diumumkan sebagai proyek resmi
Saya pernah memakai RN dan Flutter, tetapi masalahnya selalu kurangnya nuansa native
KMP juga ada, tetapi kebanyakan developer memulai dari iOS lalu memperluas ke Android
Jika kode bisa dibagi lewat Swift Package, alur ini akan terasa jauh lebih natural
Sebaliknya, developer Swift/Objective-C jauh lebih sedikit
Di luar Amerika Serikat, pangsa iPhone lebih rendah, sehingga perusahaan cenderung berpikir dengan fokus Windows atau browser
KMP sudah dipakai di aplikasi besar seperti Google Workspace, dan dengan investasi dari Kotlin serta JetBrains, tingkat kematangannya sudah tinggi
Siklus rilis Flutter terlalu cepat sehingga sulit diikuti
Dengan JavaScriptCore atau QuickJS, logika bisa berjalan di iOS, Android, dan Web, serta mendukung hot reload
Hanya saja, karena kebijakan app store, perubahan fitur besar sulit dilakukan, sehingga lebih cocok untuk perbaikan bug
Dalam kenyataan bahwa siklus distribusi mobile itu lambat, saya rasa pendekatan ini adalah peluang besar
Struktur proyek berupa shared core library + proyek UI native untuk tiap platform bekerja dengan baik
Saya penasaran apakah ini proyek yang terkait dengan transpiler SKIP yang saya lihat di blog Skip.tools
Saya ingin memindahkan aplikasi SwiftUI ke Android tetapi ingin menghindari RN
Skip memiliki dua mode: mode Lite yang mengubah kode Swift menjadi Kotlin, dan mode Fuse yang langsung mengompilasi Swift untuk Android
Kedua mode ini bisa dipakai bersama untuk integrasi dengan ekosistem Kotlin seperti Lottie dan Firebase
Perbandingan lebih lengkap bisa dilihat di Skip Docs
Senang sekali sekarang ada SDK resmi sehingga kami bisa memakai versi resmi alih-alih build buatan sendiri
Semoga ini tidak berakhir hanya sebagai pembuktian konsep sederhana seperti Swift Embedded
Swift memang indah sebagai bahasa, tetapi ada suasana tidak nyaman terkait kepemimpinan komunitasnya
Saya sudah tidak ingin melihat RN dan Flutter lagi
Lelah dengan UI yang kaku dan respons sentuhan yang lambat
Jika responsnya lambat, kemungkinan besar masalahnya ada pada implementasi aplikasinya
Apple juga bisa saja segera kehilangan minat
“You got Kotlin in my iOS.”
“You got Swift in my Android.” — ungkapan yang cerdas
Lihat ringkasan Kotlin Native
Pengumuman kali ini tampak seperti bukti keberhasilan dari sistem Swift SDK yang baru
Dulu dukungan platform lain rumit karena tersangkut CMake, tetapi sekarang selama mengikuti aturan SDK, tampaknya bisa di-port ke platform apa pun
Setelah Android, ini juga akan meluas ke Linux, wasm, embedded, dan segera Windows
Interoperabilitas dengan JVM memang belum sepenuhnya matang, tetapi jelas independensi platform telah meningkat
Saya suka Kotlin Multiplatform, tetapi Swift for Android juga menarik
Berbagi library native Swift untuk pekerjaan yang sensitif terhadap memori tampaknya akan berguna
Namun untuk memindahkan seluruh business logic ke Swift, KMP masih terasa lebih matang saat ini
Berbagi business logic sebenarnya sudah merupakan masalah yang terpecahkan
Penderitaan yang sesungguhnya adalah harus menulis UI dua kali
Yang dibutuhkan adalah framework UI bersama yang tidak terasa merepotkan seperti React Native
Jika dipakai bersama Expo, pengalaman developernya banyak meningkat
Saya sudah lama berbagi kode antara Android dan iOS, tetapi berbagi UI selalu menjadi mimpi buruk
Saya hanya berbagi logika yang kompleks lewat C/C++/Rust, tetapi pada akhirnya jadi memakai tiga bahasa sekaligus
KMP dan Swift for Android memungkinkan semuanya dibagi hanya dengan Kotlin/Swift, jadi jauh lebih rapi
Pendekatan seperti ini jauh lebih realistis dan efisien dibanding framework yang memaksa berbagi UI