Esta página fue traducida automáticamente del portugués y puede contener errores. La versión en portugués es la canónica.
Matriz de plataformas y funciones
CrossFly es un proyecto multimódulo Gradle: la UI y la lógica viven en core (neutro), y cada
launcher (lwjgl3, android, ios, web) solo hace el bootstrap del SO. El mismo código Java corre
en los cuatro destinos.
Detección de plataforma
if (Device.platform.isDesktop()) { ... } // WINDOWS/LINUX/MACOS
if (Device.platform.isMobile()) { ... } // ANDROID/IPHONE/IPAD
if (Device.platform.isIOS()) { ... }
Platform: JAVA · WINDOWS · LINUX · IPHONE · ANDROID · IPAD · MACOS.
Matriz de soporte por función
| Función | 🖥️ Desktop | 🤖 Android | 🍎 iOS | 🌐 Web |
|---|---|---|---|---|
| Renderizar UI | ✅ | ✅ | ✅ | ✅ |
| Cámara / barcode | ⚠️¹ | ✅ | ✅ | ❌ |
| GPS / ubicación | ❌ | ✅ | ✅ | ❌ |
| Bluetooth BLE | ⚠️ | ✅ | ✅ | ❌ |
| Biometría | ⚠️ | ✅ | ✅ | ❌ |
| Mapas nativos | ✅ | ✅ | ✅ | ❌ |
WebContainer |
✅ | ✅ | ✅² | ❌³ |
| Vibración | ❌ | ✅ | ✅ | ❌ |
| Voz (TTS/STT) | ⚠️ | ✅ | ✅ | ❌ |
| Persistencia de archivos | ✅ | ✅ | ✅ | ❌⁴ |
| HTTP | ✅ | ✅ | ✅ | ⚠️⁵ |
✅ soportado · ⚠️ limitado/varía · ❌ stub (no hace nada útil)
- La cámara en desktop varía según el SO (ej.: Mac ARM puede devolver
null). WKWebViewconevaluateJavaScriptrestringido (iOS).createWebView()devuelvenullen la web (Web).Device.homeFolderesnullen la web.- HTTP en la web tiene restricciones (CORS, sin sockets) —
Utils.getRemoteFiledevuelvenull.
Regla de oro para la portabilidad: cualquier recurso de dispositivo puede no existir en un destino. Compruébalo antes de usarlo (
Device.platform,createWebView() != null, retornonull) — ver Integración nativa.
Qué página leer
| Destino | Página |
|---|---|
| 🖥️ iterar rápido | Desktop (LWJGL3) |
| 🤖 móvil Android | Android |
| 🍎 iPhone/iPad | iOS (RoboVM) |
| 🌐 navegador | Web (TeaVM) |
| conectar el código al SO | Integración nativa |
| empaquetar y publicar | Build y distribución |
¿Te resultó útil esta página?¡Gracias por tu opinión!