Skip to main content
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →
LanguageDeutsch
Mobile-Leitfaden8 Min. Lesezeit·Vom ExodeUI-Team

120-FPS-Federphysik in React Native und Flutter mit offenen Vektordateien

Meistern Sie 120 FPS Federphysik in React Native und Flutter. Nutzen Sie offene .exode Vektordateien, um Ruckler auf Mobilgeräten vollständig zu eliminieren.

Kurzfassung und Definition

Kernaussage

Um auf Mobilgeräten stabile 120 FPS zu erreichen, müssen asynchrone JavaScript-Bridges und Garbage-Collection-Pausen umgangen werden. Die nativen ExodeUI-Runtimes für React Native und Flutter berechnen physikalische Federn direkt auf der GPU-Schicht für verzögerungsfreie Touch-Reaktionen.

Die Herausforderung mobiler 120-Hz-ProMotion-Displays

Auf modernen 120-Hz-Displays verbleiben pro Bild nur 8,33 Millisekunden. In React Native und Flutter führt das Neuberechnen von Stilen in JavaScript oder das Wiederaufbauen von Widget-Bäumen zu Rucklern durch den Garbage Collector.

  • 8,33 ms Budget: Der Schritt von 60 auf 120 FPS halbiert die verfügbare CPU-Rechenzeit pro Frame.
  • Bridge-Latenz: Das Hin- und Herschicken von Touch-Koordinaten über asynchrone Schnittstellen verzögert die Darstellung.
  • Thread-Entkopplung: Animationsphysik muss vollständig auf dem nativen Render-Thread berechnet werden.

Wie ExodeUI Federn nativ berechnet

Die mobilen Pakete von ExodeUI übergeben Vektorgeometrien direkt an die native GPU (Metal unter iOS, Vulkan oder Impeller unter Android). Federberechnungen erfolgen Frame für Frame ohne Verzögerung durch JavaScript.

Implementierungsbeispiel in Flutter und React Native

Die Einbindung in Ihre mobile App erfordert minimalen Boilerplate-Code. Übergeben Sie reaktive Variablen an das Widget, während die native Physik die Bewegung übernimmt.

Produktionsnahes Implementierungsbeispiel

Implementierung der interaktiven Komponente
import 'package:flutter/material.dart';
import 'package:exodeui_flutter/exodeui_flutter.dart';

class SpringCardWidget extends StatefulWidget {
  const SpringCardWidget({super.key});

  @override
  State<SpringCardWidget> createState() => _SpringCardWidgetState();
}

class _SpringCardWidgetState extends State<SpringCardWidget> {
  bool _isExpanded = false;

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () => setState(() => _isExpanded = !_isExpanded),
      child: ExodeUICanvas(
        asset: 'assets/motion/expandable_card.exode',
        inputs: {'expanded': _isExpanded},
        width: 320,
        height: 180,
      ),
    );
  }
}

Häufige Fragen

Verwandte Guides und Beispiele

Interaktive UI einmal gestalten. Dieselbe Datei ausliefern.

Erstelle Zustände, Federphysik und Logik visuell in ExodeUI und spiele dieselbe Datei in React, SwiftUI, Flutter und mehr ab. Kostenlos starten.

Kostenlos testen