9 poin oleh GN⁺ 2025-11-09 | Belum ada komentar. | Bagikan ke WhatsApp
  • 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.

Belum ada komentar.