Rilis resmi Tauri 2.0
(v2.tauri.app)- Tauri adalah framework untuk membangun biner kecil dan cepat untuk semua platform desktop utama (macOS, Linux, Windows) dan mobile (iOS, Android)
- Dapat mengintegrasikan semua framework frontend yang dikompilasi dengan HTML, JavaScript, dan CSS, serta saat dibutuhkan dapat memanfaatkan bahasa seperti Rust, Swift, dan Kotlin untuk logika backend
- Menyediakan JavaScript API yang luas, sehingga dalam kebanyakan kasus tidak perlu menulis kode dengan Rust, Swift, atau Kotlin
Kapan sebaiknya menggunakan Tauri?
- Jika menginginkan satu codebase UI untuk semua platform
- Jika ingin menjangkau sebanyak mungkin pengguna di platform mereka (misalnya Windows, macOS, Linux, Android, iOS)
- Jika Anda adalah developer frontend web dan ingin menulis aplikasi native
- Jika Anda adalah developer Rust dan ingin menulis aplikasi dengan UI keren dengan opsi untuk juga menulisnya dalam Rust
- Jika Anda memiliki tim developer web dan ingin berekspansi ke pasar aplikasi native dengan investasi awal yang rendah
- Jika Anda memiliki tim developer Rust dan ingin menulis semuanya dengan Rust
Kelebihan dan peningkatan di 2.0
Peningkatan pengalaman memulai
- Mengutamakan developer experience (DX), dan berupaya membuat proses awal ini semulus membangun serta mendistribusikan aplikasi akhir
- Membuat proyek bernama create-tauri-app (CTA) agar developer dapat memulai dari nol dan mendapatkan aplikasi Tauri yang berjalan dalam hitungan menit, bukan jam
Hot-Module Replacement
- Hot Module Replacement (HMR), yang sudah dipertimbangkan di 1.x untuk meningkatkan proses pengembangan, kini diperluas ke perangkat mobile dan emulator
- Semua perubahan pada frontend aplikasi tidak memerlukan pembangunan ulang seluruh aplikasi, dan dapat dipratinjau secara real-time bagaimana tampilannya di perangkat atau sistem operasi target saat pengembangan
Plugin
- Di Tauri 2.0, dibangun sistem plugin yang lebih maju. Banyak bagian dari fungsi sebelumnya dipindahkan ke plugin resmi agar komunitas bisa berkontribusi ke Tauri dengan lebih mudah
- Sistem plugin juga mendukung plugin mobile. Di iOS, Anda dapat menulis atau menggunakan kembali kode native dalam Swift; di Android, dalam Kotlin; lalu menggunakan anotasi (
@Commanddi Android) atau mengimplementasikan subclass (YourPluginClass: Plugindi iOS), atau memanggil kode Swift atau Kotlin dari perintah Tauri berbasis Rust untuk mengekspos fungsi langsung ke frontend Tauri - Plugin resmi yang disediakan mengikuti versi mayor Tauri
- Autostart: Menjalankan aplikasi otomatis saat sistem dinyalakan
- Barcode Scanner: Memindai barcode seperti QR code dan EAN-13 di aplikasi mobile
- Biometric: Prompt autentikasi biometrik di Android dan iOS
- Clipboard: Membaca dan menulis clipboard sistem
- Command Line Interface (CLI): Parsing argumen di antarmuka baris perintah
- Deep Linking: Menetapkan aplikasi Tauri sebagai penangan default untuk URL
- Dialog: Dialog sistem native untuk membuka dan menyimpan file, serta dialog pesan
- File System: Akses file system
- Global Shortcut: Mendaftarkan shortcut global
- HTTP Client: Akses ke HTTP client yang ditulis dalam Rust
- Localhost: Menggunakan server localhost di aplikasi produksi
- Logging: Logging yang dapat dikonfigurasi
- NFC: Membaca dan menulis tag NFC di Android dan iOS
- Notifications: Mengirim notifikasi native ke pengguna
- OS Information: Membaca informasi tentang sistem operasi
- Persisted Scope: Menyimpan perubahan scope runtime ke file system
- Positioner: Memindahkan jendela ke posisi umum
- Process: Akses ke proses saat ini
- Shell: Akses ke shell sistem untuk mengelola file dan URL dengan aplikasi default serta membuat child process
- Single Instance: Menjamin hanya satu instance aplikasi Tauri yang berjalan pada satu waktu
- SQL: Plugin Tauri yang menyediakan antarmuka agar frontend dapat berkomunikasi dengan database SQL melalui sqlx
- Store: Penyimpanan key-value persisten
- Stronghold: Database aman terenkripsi
- System Tray
- Updater: Pembaruan dalam aplikasi untuk aplikasi Tauri
- Upload: Upload file melalui HTTP
- Websocket: Membuka koneksi WebSocket dari JavaScript menggunakan client Rust
- Window Customization
- Window State: Menyimpan ukuran dan posisi jendela
Matinya Allowlist, hidup Allowlist
allowlistsudah tidak ada lagi. Alasannya, batas sistem ini terlalu cepat tercapai- Sistem ini dibuat eksklusif hanya untuk fungsi inti Tauri, tetapi tidak mencakup semua API Tauri
- Sistem baru tidak hanya mencakup seluruh permukaan API inti Tauri, tetapi juga memungkinkan pengembang aplikasi dan plugin mengimplementasikan kontrol akses serta scoping mereka sendiri dengan pendekatan yang terintegrasi
- Dengan menggunakan
permissions- "saklar on-off untuk perintah Tauri",scopes- "validasi parameter untuk perintah Tauri", dancapabilities- "mengaitkan izin dan scope ke Windows dan WebView", dibangun sistem kontrol akses yang fleksibel namun mudah digunakan - Anda dapat membuat file izin atau scope bernama dan menggunakannya kembali serta menggabungkannya dengan izin atau scope bernama lain
- Ini memungkinkan pembangunan himpunan yang lebih rinci dan deskriptif, yang mencakup banyak izin dan scope sederhana maupun kompleks
- Dengan tambahan ini, Tauri core kini dapat memahami apakah pesan pemanggilan perintah dari frontend WebView diizinkan mencapai fungsi perintah
Penulisan ulang komunikasi antarproses (IPC)
- Lapisan IPC ditulis ulang sehingga kini mendukung fitur yang sudah lama diinginkan, yaitu Raw Payload, sekaligus mengubah cara kerjanya secara internal
- Sebelumnya, semua payload IPC diserialisasi dan dideserialisasi sebagai json sehingga menimbulkan overhead. Ini menjadi sangat terasa ketika lebih dari beberapa kilobyte dikirim antara frontend dan backend
- Sistem baru mendukung Raw Request. Ini memungkinkan penggunaan byte mentah secara langsung atau memakai proses (de)serialisasi sendiri (misalnya bson, protobuf, avro, dan lain-lain) untuk mempercepat transfer data dalam jumlah besar dari backend ke frontend, atau sebaliknya
Panduan deployment
- Di Tauri 2.0, variasi deployment meningkat tajam berkat ekosistem mobile dan kontribusi komunitas
- Panduan resmi tentang cara melakukan deployment ke Apple Appstore, Google Play, Microsoft Store, CrabNebula Cloud, Flathub, Snapcraft, AUR, dan format distribusi lainnya disertakan dalam dokumentasi deployment
4 komentar
https://github.com/DioxusLabs/dioxus
Kalau hanya mengembangkan dengan Rust, ini kelihatannya lebih bagus. Baru tahu barusan. Tadinya mau fokus ke Tauri, tapi karena katanya semuanya bisa dikembangkan hanya dengan satu bahasa, yaitu Rust, jadi pilih yang ini~* Katanya juga bisa langsung mengakses native sehingga lebih cepat daripada IPC.
Dioxus - Library UI untuk Rust yang terinspirasi dari React
Dulu saat saya pernah mempostingnya, karena masih versi 0.3, ada komentar yang bilang masih ada cukup banyak kendala.
Dioxus 0.5: Aplikasi web, desktop, dan mobile yang dikembangkan dengan Rust
Sekarang sudah 0.5, jadi mungkin saja keadaannya sudah berbeda.
Ini benar-benar kabar yang luar biasa. Sepertinya ini juga akan berguna untuk pengembangan aplikasi native di Windows, dan tampaknya akan sangat bermanfaat serta banyak digunakan di perangkat mobile.
Menulis ulang IPC, ya.... Sepertinya akan bagus untuk mengirim data besar seperti video.