- Valdi buatan Snap adalah framework UI lintas platform yang menghadirkan performa native di iOS, Android, dan macOS, dengan langsung mengompilasi UI yang ditulis secara deklaratif dalam TypeScript menjadi view native di tiap platform
- Berjalan tanpa WebView atau JavaScript bridge, serta mempertahankan performa tinggi lewat daur ulang view otomatis, mesin layout yang dioptimalkan, dan rendering berbasis viewport
- Mempercepat pengembangan dengan hot reload instan, debugging VSCode, dan dukungan sintaks TSX, sekaligus mendukung integrasi dengan aplikasi native yang sudah ada secara fleksibel
- Menyediakan struktur integrasi native yang mendalam melalui binding aman tipe antara TypeScript dan kode native, dukungan protobuf, serta interoperabilitas C++·Swift·Kotlin
- Merupakan teknologi yang telah teruji selama 8 tahun di aplikasi produksi Snap, dan menjadi fondasi pengembangan UI yang skalabel dengan fitur lanjutan seperti animasi skala besar, gesture, dan pemrosesan multithread
Ikhtisar Valdi
- Valdi adalah framework UI lintas platform yang telah digunakan Snap selama 8 tahun di aplikasi produksinya
- Saat UI ditulis secara deklaratif dalam TypeScript, hasilnya langsung dikompilasi menjadi view native di iOS, Android, dan macOS
- Menghadirkan performa native tanpa WebView atau JavaScript bridge
- Saat ini masih dalam tahap beta, dan direncanakan beralih ke versi resmi setelah alat dan dokumentasinya di lingkungan open source stabil
Fitur utama dan contoh
- Contoh komponen dasar memperlihatkan penyusunan UI sederhana di kelas
HelloWorld menggunakan dan
- Menggunakan struktur komponen deklaratif berbasis TypeScript, dan dapat dijalankan dengan kode yang sama di tiap platform
- Menyediakan materi pengembang seperti dokumentasi resmi, panduan instalasi, referensi API, dan Codelab
Optimasi performa
- Untuk memastikan performa native, Valdi mengadopsi struktur berikut
- Daur ulang view otomatis: sistem pooling view global untuk memakai ulang view antar layar dan meminimalkan penundaan inflasi
- Rendering komponen independen: hanya komponen individual yang diperbarui tanpa memengaruhi rendering induk
- Mesin layout berbasis C++: berjalan dengan overhead minimal di thread utama
- Rendering sadar viewport: hanya meng-inflate view yang terlihat di layar sehingga meningkatkan performa infinite scroll
- Dokumen terkait Performance Optimization Guide juga tersedia
Pengalaman pengembang
- Fitur hot reload memungkinkan perubahan kode langsung diterapkan
- Dukungan debugging VSCode: dapat menetapkan breakpoint, memeriksa variabel, melakukan profiling performa, dan menangkap heap dump
- Menyediakan lingkungan pengembangan yang familier lewat sintaks TSX dan keamanan tipe
Struktur integrasi yang fleksibel
- Dapat menyisipkan Valdi ke aplikasi native yang sudah ada (
Embed Valdi in native)
- Dapat menggunakan view native di dalam Valdi (
Embed native in Valdi)
- Melalui modul Polyglot, dapat terhubung secara aman tipe dengan kode C++, Swift, Kotlin, dan Objective-C
- Dengan arsitektur full-stack, seluruh fungsi dapat diimplementasikan memakai background worker thread
Integrasi native
- Generasi kode otomatis mengubah antarmuka TypeScript menjadi binding Kotlin, Objective-C, dan Swift
- Melalui modul Polyglot, dapat langsung mengakses API platform dan library native pihak ketiga
- Komunikasi dua arah memungkinkan pertukaran struktur data kompleks dan callback dengan aman
- Mendukung protobuf untuk serialisasi data yang efisien
Stabilitas dan fitur yang telah terbukti
- Teknologi inti yang menjalankan fitur-fitur produksi utama Snap
- Mendukung animasi lanjutan, rendering real-time, dan sistem gesture kompleks
- Mencakup beragam fitur seperti layout Flexbox, worker multithread, animasi native, pengenalan gesture lanjutan, framework pengujian bawaan, dan build terintegrasi Bazel
Dukungan dan lisensi
- Menyediakan dukungan melalui komunitas Discord
- Dirilis di bawah lisensi MIT, sehingga bebas digunakan dan dikontribusikan
Belum ada komentar.