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 →
LanguageEspañol
Guía móvil8 min de lectura·Por el equipo de ExodeUI

Físicas de muelles a 120 FPS en React Native y Flutter con archivos vectoriales abiertos

Domina las físicas de muelles a 120 FPS en React Native y Flutter. Utiliza archivos .exode para evitar cuellos de botella y lograr fluidez táctil instantánea.

Resumen directo y definición

Idea clave

Lograr animaciones móviles a 120 FPS continuos requiere prescindir de la serialización del puente JavaScript y las pausas del recolector de basura. Los runtimes nativos de ExodeUI para React Native y Flutter calculan las físicas y transiciones en la capa nativa de renderizado GPU, manteniendo los gestos pegados al dedo del usuario.

El desafío móvil de las pantallas ProMotion a 120 Hz

Las pantallas móviles con alta tasa de refresco (120 Hz) ofrecen únicamente 8.33 milisegundos por fotograma. En React Native y Flutter, recalcular estilos en JavaScript o reconstruir widgets dispara pausas de recolección de basura que provocan microtirones perceptibles.

  • Presupuesto de 8.33 ms: Duplicar de 60 a 120 FPS reduce a la mitad el tiempo disponible de CPU.
  • Latencia del puente: Enviar deltas de movimiento a través de un puente asíncrono retrasa la respuesta visual.
  • Desacoplamiento de hilos: El cálculo físico debe ejecutarse directamente en el hilo de renderizado nativo.

Cómo evalúa ExodeUI las físicas en capas nativas

Los paquetes móviles de ExodeUI cargan la geometría vectorial directamente en la GPU (Metal en iOS, Vulkan o Skia/Impeller en Android). Las ecuaciones diferenciales de muelles se resuelven fotograma a fotograma sin volver a JavaScript.

Ejemplo de implementación en Flutter y React Native

Utilizar ExodeUI en proyectos móviles requiere mínimo código repetitivo. Pasa variables reactivas al widget y la simulación física nativa se encarga del movimiento.

Fragmento de implementación en producción

Implementación del componente interactivo
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,
      ),
    );
  }
}

Preguntas frecuentes

Guías y ejemplos relacionados

Diseña la UI interactiva una vez. Publica el mismo archivo.

Crea estados, física de muelles y lógica de forma visual en ExodeUI, y reproduce el mismo archivo en React, SwiftUI, Flutter y más. Empieza gratis.

Pruébalo gratis