- TikTok merilis sebagai open source lapisan infrastruktur yang dibangunnya untuk mengoperasikan engine Lynx pada skala produksi di aplikasinya sendiri. Menyediakan integrasi dari scaffolding aplikasi, build, bridge native, hingga navigasi
- Seperti React Native memerlukan Expo, ini adalah framework infrastruktur produksi untuk menjalankan aplikasi nyata di atas engine Lynx
- Dengan satu perintah CLI, dapat langsung membuat proyek aplikasi Lynx lengkap yang mencakup shell native Android/iOS, lalu menjalankan build→install→run sekaligus
- Dengan Sparkling Method yang otomatis menghasilkan kode Kotlin/Swift hanya dari deklarasi TypeScript, implementasi bridge JS↔native yang type-safe dapat dibuat
- Dengan navigasi skema URL terpadu berformat
hybrid://, routing antara halaman Lynx dan layar native ditangani dalam satu sistem
Posisi Sparkling: hubungannya dengan Lynx
- Lynx adalah engine rendering UI lintas platform yang dirilis TikTok; jika kode ditulis dengan cara yang mirip React, framework ini akan menggambar layar Android/iOS dengan rendering native
- Karena Lynx sendiri adalah sebuah "engine rendering", untuk menjalankan aplikasi nyata masih dibutuhkan infrastruktur tambahan seperti pipeline build, komunikasi native↔JS, navigasi halaman, akses storage/media
- Sparkling berperan sebagai lapisan infrastruktur tersebut, yaitu framework aplikasi yang berjalan di atas engine Lynx
- Seperti React Native saja sulit dipakai untuk membuat aplikasi tanpa Expo, Lynx saja juga sulit untuk mengoperasikan aplikasi skala besar, dan Sparkling mengisi celah itu
- Saat ini masih dalam tahap beta publik, dengan perluasan API dan peningkatan dokumentasi yang sedang berlangsung
CLI scaffolding aplikasi dan build
- Dengan satu baris
npm create sparkling-app@latest my-app, dapat membuat proyek lengkap yang mencakup shell native Android/iOS
- Dengan
npx sparkling build membangun bundle Lynx, dan npx sparkling run:android/run:ios menjalankan build→install→run sekaligus
- Dengan
npx sparkling dev menjalankan server pengembangan hot reload (port default 5969, angka dari menekan LYNX pada keypad ponsel)
- Dengan
npx sparkling doctor melakukan diagnosis otomatis lingkungan pengembangan seperti Node.js, JDK, Android SDK, Xcode, CocoaPods, dan lainnya
- Dengan
npx sparkling autolink melakukan pendaftaran dependensi otomatis Gradle/Podfile untuk modul Sparkling Method serta menghasilkan kode registry native
- Dengan
npx sparkling copy-assets menyalin bundle yang telah dikompilasi ke direktori resource Android/iOS
Sparkling Method — bridge JS↔native yang type-safe
- Cukup menulis deklarasi fungsi pada file TypeScript
.d.ts, lalu CLI (sparkling-method-cli codegen) akan menghasilkan otomatis kode native Kotlin/Swift dan implementasi TS
- Dengan mewarisi abstract class yang dihasilkan, cukup mengimplementasikan logika bisnis native saja agar bisa langsung dipanggil dari JS
- Menyediakan Method bawaan untuk Navigation (router), Storage (penyimpanan key-value), Media (kamera/album/file)
- Konvensi nama paket adalah format
sparkling-<module>, dan nama method adalah <module>.<action> (contoh: router.open)
- Setelah dipublikasikan ke npm, integrasi di sisi pengguna selesai hanya dengan
npm install + npx sparkling autolink
Navigasi terpadu berbasis skema
- Dengan skema URL terpadu berformat
hybrid://lynxview_page?bundle=main.lynx.bundle&title=Home, halaman Lynx dan layar native dirouting dengan cara yang sama
- Mengadopsi struktur multipage di mana tiap halaman memiliki entry point bundle yang independen, sehingga cocok untuk aplikasi berskala besar
- Pada fungsi
navigate(), selain key yang telah didefinisikan sebelumnya, parameter kustom juga dapat diteruskan ke URL skema
Integrasi bertahap ke aplikasi yang sudah ada (Brownfield)
- Tidak hanya untuk aplikasi baru, container Sparkling dapat di-embed ke aplikasi Android/iOS yang sudah ada untuk adopsi bertahap
- Android: setelah menambahkan artefak Maven (
com.tiktok.sparkling:sparkling:2.0.0), lakukan inisialisasi HybridKit.init() → buka container dengan Sparkling.build(context).navigate()
- iOS: setelah menambahkan CocoaPods (
pod 'Sparkling', '2.0.0'), lakukan push controller dengan SPKRouter.create(withURL:) atau embed view dengan SPKContainerView
- Salin file
.lynx.bundle yang telah dibangun ke aset aplikasi native, lalu tentukan bundle tersebut dengan parameter bundle=
Struktur proyek
packages/sparkling-sdk: Sparkling SDK inti
packages/sparkling-method: Sparkling Method SDK (bridge JS↔native)
packages/methods: paket Sparkling methods bawaan (Navigation, Storage, Media)
packages/sparkling-app-cli: CLI build dan run aplikasi Sparkling
packages/create-sparkling-app: CLI scaffolding aplikasi
packages/sparkling-method-cli: tooling codegen Sparkling Method
packages/sparkling-types: menyatukan definisi tipe GlobalProps dalam satu paket
packages/playground: aplikasi Playground untuk pengembangan lokal
Stack teknologi dan lingkungan
- Node.js ^22 || ^24, lingkungan pnpm v10.26.0
- Android: memerlukan JDK 11 atau lebih tinggi, SDK android-34
- iOS: memerlukan Xcode 16+, Ruby ≥2.7 <3.4, CocoaPods
- Konfigurasi multibahasa seperti TypeScript, Swift, Kotlin, JavaScript
- Lisensi Apache 2.0
1 komentar
Lynx - alat pengembangan aplikasi native berbasis teknologi web - GeekNews
Lynx - 웹 기술 기반 네이티브 앱 개발 도구
Tidak muncul di artikel terkait yang direkomendasikan.