4 Punkte von GN⁺ 2026-03-16 | 1 Kommentare | Auf WhatsApp teilen
  • TikTok hat die Infrastruktur-Schicht als Open Source veröffentlicht, die aufgebaut wurde, um die Lynx-Engine im produktiven Maßstab in den eigenen Apps zu betreiben. Sie bietet eine integrierte Lösung von App-Scaffolding über Build und Native Bridge bis hin zur Navigation
  • So wie React Native Expo benötigt, ist dies ein Produktions-Infrastruktur-Framework, um echte Apps auf der Lynx-Engine zu betreiben
  • Mit einem einzigen CLI-Befehl lässt sich sofort ein vollständiges Lynx-App-Projekt inklusive Android/iOS-Native-Shell erzeugen, und Build → Installation → Ausführung können in einem Schritt durchgeführt werden
  • Mit der Sparkling Method, die automatisch Kotlin-/Swift-Code erzeugt, sobald nur TypeScript-Deklarationen geschrieben werden, lässt sich eine typsichere JS↔Native-Bridge implementieren
  • Mit einem einheitlichen URL-Schema für Navigation im Format hybrid:// wird Routing zwischen Lynx-Seiten und nativen Screens in einem einzigen System verarbeitet

Die Rolle von Sparkling: Beziehung zu Lynx

  • Lynx ist eine von TikTok veröffentlichte plattformübergreifende UI-Rendering-Engine, ein Framework, das Android-/iOS-Oberflächen per nativem Rendering zeichnet, wenn Code ähnlich wie bei React geschrieben wird
  • Da Lynx selbst eine „Rendering-Engine“ ist, werden für den tatsächlichen App-Betrieb zusätzlich Infrastrukturen wie Build-Pipeline, Native↔JS-Kommunikation, Seitennavigation sowie Zugriff auf Storage/Medien benötigt
  • Sparkling übernimmt diese Rolle als Infrastruktur-Layer und ist das App-Framework, das auf der Lynx-Engine aufsetzt
  • So wie es schwierig ist, nur mit React Native eine App zu bauen und Expo benötigt wird, ist auch mit Lynx allein der Betrieb großer Apps schwierig, und Sparkling schließt genau diese Lücke
  • Derzeit in der Phase der öffentlichen Beta, während API-Erweiterungen und Dokumentationsverbesserungen vorangetrieben werden

App-Scaffolding und Build-CLI

  • Mit npm create sparkling-app@latest my-app lässt sich in einer Zeile ein vollständiges Projekt inklusive Android/iOS-Native-Shell erzeugen
  • Mit npx sparkling build wird das Lynx-Bundle gebaut, und mit npx sparkling run:android/run:ios werden Build → Installation → Ausführung in einem Schritt ausgeführt
  • Mit npx sparkling dev startet ein Hot-Reload-Entwicklungsserver (Standardport 5969, die Zahl entspricht LYNX auf der Telefontastatur)
  • Mit npx sparkling doctor erfolgt eine automatische Diagnose der Entwicklungsumgebung für Node.js, JDK, Android SDK, Xcode, CocoaPods usw.
  • Mit npx sparkling autolink werden Gradle-/Podfile-Abhängigkeiten der Sparkling-Method-Module automatisch registriert und nativer Registry-Code erzeugt
  • Mit npx sparkling copy-assets werden kompilierte Bundles in die Android-/iOS-Ressourcenverzeichnisse kopiert

Sparkling Method — typsichere JS↔Native-Bridge

  • Wenn in einer TypeScript-.d.ts-Datei nur Funktionsdeklarationen geschrieben werden, erzeugt die CLI (sparkling-method-cli codegen) Kotlin-/Swift-Native-Code und TS-Implementierungen automatisch
  • Durch Vererbung der erzeugten abstrakten Klassen und die Implementierung nur der nativen Business-Logik sind Aufrufe direkt aus JS möglich
  • Als Built-in-Methods werden Navigation (Router), Storage (Key-Value-Store), Media (Kamera/Album/Dateien) bereitgestellt
  • Das Paketnamensschema ist sparkling-<module>, Methodennamen folgen der Konvention <module>.<action> (z. B. router.open)
  • Nach der Veröffentlichung über npm ist die Integration auf Verbraucherseite bereits mit npm install + npx sparkling autolink abgeschlossen

Schema-basierte einheitliche Navigation

  • Mit einem einheitlichen URL-Schema im Format hybrid://lynxview_page?bundle=main.lynx.bundle&title=Home werden Lynx-Seiten und native Screens identisch geroutet
  • Eine Mehrseitenstruktur mit unabhängigen Bundle-Entrypoints pro Seite ist auf große Apps ausgelegt
  • In der Funktion navigate() können zusätzlich zu vordefinierten Schlüsseln auch benutzerdefinierte Parameter an die Schema-URL übergeben werden

Schrittweise Integration in bestehende Apps (Brownfield)

  • Nicht nur für neue Apps, sondern auch durch das Einbetten des Sparkling-Containers in bestehende Android-/iOS-Apps ist eine schrittweise Einführung möglich
  • Android: Nach dem Hinzufügen des Maven-Artefakts (com.tiktok.sparkling:sparkling:2.0.0) wird mit HybridKit.init() initialisiert und der Container über Sparkling.build(context).navigate() geöffnet
  • iOS: Nach dem Hinzufügen von CocoaPods (pod 'Sparkling', '2.0.0') kann per SPKRouter.create(withURL:) ein Controller gepusht oder per SPKContainerView eine View eingebettet werden
  • Die gebaute Datei .lynx.bundle wird in die Assets der nativen App kopiert und das entsprechende Bundle über den Parameter bundle= angegeben

Projektstruktur

  • packages/sparkling-sdk: Kern-Sparkling SDK
  • packages/sparkling-method: Sparkling Method SDK (JS↔Native-Bridge)
  • packages/methods: Paket mit Built-in-Sparkling-Methods (Navigation, Storage, Media)
  • packages/sparkling-app-cli: Sparkling-App-Build- und Run-CLI
  • packages/create-sparkling-app: CLI für App-Scaffolding
  • packages/sparkling-method-cli: Codegen-Tooling für Sparkling Method
  • packages/sparkling-types: Bündelt Definitionen des GlobalProps-Typs in einem einzigen Paket
  • packages/playground: Playground-App für lokale Entwicklung

Tech-Stack und Umgebung

  • Umgebung mit Node.js ^22 || ^24, pnpm v10.26.0
  • Android: JDK 11 oder höher, SDK android-34 erforderlich
  • iOS: Xcode 16+, Ruby ≥2.7 <3.4, CocoaPods erforderlich
  • Multi-Language-Setup mit TypeScript, Swift, Kotlin, JavaScript usw.
  • Apache-2.0-Lizenz

1 Kommentare

 
freedomzero 2026-03-16

Lynx – Tool zur Entwicklung nativer Apps auf Basis von Webtechnologien – GeekNews
https://de.news.hada.io/topic?id=19688

Taucht nicht unter den lesenswerten weiterführenden Artikeln auf.