Saltar al contenido
CrossFly es 100% open sourceSíguenos en GitHub
CrossFlyCrossFly
Empezar

Esta página fue traducida automáticamente del portugués y puede contener errores. La versión en portugués es la canónica.

Anatomía de un proyecto

Entiende lo que generó el “esqueleto” antes de tocarlo.

Los módulos Gradle

:core     → código compartilhado: suas Windows, componentes, lógica, dados
:lwjgl3   → launcher desktop
:android  → launcher Android
:ios      → launcher iOS (RoboVM)
:web      → launcher Web (TeaVM)

Programas casi siempre en el core. Cada launcher solo hace el bootstrap del SO — instancia el Main y configura la ventana (ver plataformas).

Cómo se resuelve la MainWindow

El Main instancia la ventana principal por reflexión:

  1. usa la clase indicada en cmdline["classname"] (pasada por el launcher); o
  2. en su ausencia, el getMainWindow() sobrescrito.

Exigencia: la clase necesita un constructor público sin argumentos (se instancia por reflexión).

Ejemplo completo (copiar, pegar y ejecutar)

Clase MainWindow mínima y ejecutable, con el constructor sin-args exigido por la reflexión:

package com.exemplo;

import dev.crossfly.ui.*;
import dev.crossfly.ui.layout.*;

public class MainWindow extends Window
{
   public MainWindow() { }          // constructor sin-args (obligatorio para la reflexión)

   @Override
   public void onShow() throws Exception
   {
      super.onShow();
      setLayout(new VerticalLayout());
      add(LAY_AUTO, new Label("MainWindow resolvida por classname"));
   }
}

Organización de app sugerida

Dentro del core, una estructura que escala (ver arquitectura de app):

app/
 ├─ ui/screens/      → suas Windows (uma tela = uma Window)
 ├─ ui/components/   → componentes reutilizáveis
 ├─ data/            → repositórios (SQLite, rede)
 └─ model/           → objetos de domínio

Assets y fuentes

Las fuentes base (Roboto, FontAwesome, Material) se cargan en el bootstrap; tus assets (imágenes, datos) quedan en el directorio de assets del proyecto y se leen por ruta (ver Imágenes).

Próximos pasos

→ Tour panorámico de CrossFly

Ver también

¿Te resultó útil esta página?