4 puan yazan GN⁺ 2026-03-16 | 1 yorum | WhatsApp'ta paylaş
  • TikTok, kendi uygulamalarında Lynx motorunu üretim ölçeğinde çalıştırmak için kurduğu altyapı katmanını açık kaynak olarak yayımladı. Uygulama iskeletinden build sürecine, native bridge'den navigasyona kadar entegre şekilde sunuyor
  • React Native için Expo neyse, Lynx motoru üzerinde gerçek uygulamaları çalıştırmak için gereken üretim altyapısı framework'ü de bu
  • Tek bir CLI komutuyla Android/iOS native shell içeren tam bir Lynx uygulama projesi anında oluşturuluyor ve build → kurulum → çalıştırma tek seferde yapılıyor
  • Yalnızca TypeScript tanımları yazılarak Kotlin/Swift kodu otomatik üreten Sparkling Method ile tip güvenli JS↔native bridge uygulanıyor
  • hybrid:// biçimindeki birleşik URL şeması navigasyonu ile Lynx sayfaları ve native ekranlar arasındaki yönlendirme tek bir sistemde ele alınıyor

Sparkling'in konumu: Lynx ile ilişkisi

  • Lynx, TikTok'un yayımladığı çapraz platform UI rendering motoru; React'e benzer şekilde kod yazıldığında Android/iOS ekranlarını native rendering ile çizen bir framework
  • Lynx'in kendisi bir "rendering motoru" olduğu için, gerçek uygulama işletiminde build pipeline, native↔JS iletişimi, sayfa navigasyonu, storage/media erişimi gibi ek altyapılar gerekiyor
  • Sparkling bu altyapı katmanı rolünü üstleniyor ve Lynx motorunun üzerinde çalışan uygulama framework'ü olarak konumlanıyor
  • Yalnızca React Native ile uygulama geliştirmenin zor olup Expo'ya ihtiyaç duyulması gibi, yalnızca Lynx ile de büyük ölçekli uygulama işletmek zor; Sparkling bu boşluğu dolduruyor
  • Şu anda public beta aşamasında ve API kapsamı ile dokümantasyon iyileştirilmeye devam ediyor

Uygulama iskeleti ve build CLI

  • npm create sparkling-app@latest my-app ile Android/iOS native shell içeren tam bir proje oluşturma
  • npx sparkling build ile Lynx bundle build'i, npx sparkling run:android/run:ios ile build → kurulum → çalıştırma tek adımda
  • npx sparkling dev ile hot reload geliştirme sunucusu çalıştırma (varsayılan port 5969, telefon tuş takımında LYNX'e karşılık gelen sayı)
  • npx sparkling doctor ile Node.js, JDK, Android SDK, Xcode, CocoaPods gibi geliştirme ortamını otomatik teşhis etme
  • npx sparkling autolink ile Sparkling Method modülleri için Gradle/Podfile bağımlılıklarının otomatik kaydı ve native registry kodu üretimi
  • npx sparkling copy-assets ile derlenmiş bundle'ı Android/iOS resource dizinlerine kopyalama

Sparkling Method — tip güvenli JS↔native bridge

  • TypeScript .d.ts dosyasına yalnızca fonksiyon tanımları yazıldığında, CLI (sparkling-method-cli codegen) Kotlin/Swift native kodunu ve TS implementasyonunu otomatik üretir
  • Üretilen soyut sınıflar kalıtılarak yalnızca native iş mantığı uygulanır ve ardından JS tarafından doğrudan çağrılabilir
  • Yerleşik Method'lar olarak Navigation (router), Storage (anahtar-değer deposu), Media (kamera/albüm/dosya) sunulur
  • Paket adı sparkling-<module> biçiminde, method adı ise <module>.<action> (ör. router.open) kuralını izler
  • npm üzerinden yayımlandıktan sonra tüketici tarafta yalnızca npm install + npx sparkling autolink ile entegrasyon tamamlanır

Şema tabanlı birleşik navigasyon

  • hybrid://lynxview_page?bundle=main.lynx.bundle&title=Home biçimindeki birleşik URL şeması ile Lynx sayfaları ve native ekranlar aynı şekilde yönlendirilir
  • Her sayfanın bağımsız bir bundle entry point'ine sahip olduğu çok sayfalı yapı, büyük ölçekli uygulamalar için uygun bir tasarım sunar
  • navigate() fonksiyonunda önceden tanımlı anahtarların yanı sıra özel parametreler de şema URL'si üzerinden iletilebilir

Mevcut uygulamalara kademeli entegrasyon (Brownfield)

  • Yalnızca yeni uygulamalarda değil, mevcut Android/iOS uygulamalarına Sparkling container embed edilerek de kademeli geçiş yapılabilir
  • Android: Maven artifact'i (com.tiktok.sparkling:sparkling:2.0.0) eklendikten sonra, HybridKit.init() ile başlatma → Sparkling.build(context).navigate() ile container açma
  • iOS: CocoaPods (pod 'Sparkling', '2.0.0') eklendikten sonra, SPKRouter.create(withURL:) ile controller push etme veya SPKContainerView ile view embed etme
  • Build edilmiş .lynx.bundle dosyası native uygulama asset'lerine kopyalanır ve bundle= parametresiyle ilgili bundle belirtilir

Proje yapısı

  • packages/sparkling-sdk: çekirdek Sparkling SDK
  • packages/sparkling-method: Sparkling Method SDK (JS↔native bridge)
  • packages/methods: yerleşik Sparkling method paketleri (Navigation, Storage, Media)
  • packages/sparkling-app-cli: Sparkling uygulamaları için build ve çalıştırma CLI
  • packages/create-sparkling-app: uygulama iskeleti oluşturma CLI'ı
  • packages/sparkling-method-cli: Sparkling Method codegen araçları
  • packages/sparkling-types: GlobalProps tip tanımlarını tek pakette birleştirir
  • packages/playground: yerel geliştirme için Playground uygulaması

Teknoloji yığını ve ortam

  • Node.js ^22 || ^24, pnpm v10.26.0 ortamı
  • Android: JDK 11 ve üzeri, android-34 SDK gerekli
  • iOS: Xcode 16+, Ruby ≥2.7 <3.4, CocoaPods gerekli
  • TypeScript, Swift, Kotlin, JavaScript gibi çok dilli yapı
  • Apache 2.0 lisansı

1 yorum

 
freedomzero 2026-03-16

Lynx - web teknolojileri tabanlı native uygulama geliştirme aracı - GeekNews
Lynx - 웹 기술 기반 네이티브 앱 개발 도구

Birlikte okunabilecek iyi yazılar arasında görünmüyor.