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.

12. Publicando

Lo que vas a aprender: cerrar el ciclo — empaquetar la app para cada plataforma. Prerrequisitos: Probando tu app.

Ejemplo completo (copiar, pegar y ejecutar)

El punto de entrada que el Main instancia por classname (reflexión, constructor sin args) — el mismo core corre en los cuatro launchers. Esta MainWindow mínima y autocontenida es lo que cada objetivo empaqueta. Compila tal cual.

package com.exemplo;

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

public class MainWindow extends Window
{
   @Override
   public void onShow() throws Exception
   {
      super.onShow();
      setLayout(new VerticalLayout());

      add(LAY_AUTO, new Label("Meu app CrossFly"));

      Button ola = new Button("Olá, mundo!");
      ola.onAction(c -> Hint.show("Rodando em todas as plataformas", 2000));
      add(LAY_AUTO, ola);
   }
}

Los fragmentos siguientes muestran solo el núcleo (lo que va dentro de onShow()). Para ejecutar, colócalos en el esqueleto MainWindow de arriba.

Un código, cuatro objetivos

El mismo core corre en todos los launchers:

Objetivo Build
🖥️ Desktop gradlew :lwjgl3:run (dev) / jar / instalador
🤖 Android gradlew :android:installDebug / assembleRelease (AAB)
🍎 iOS gradlew :ios:launchIPhoneSimulator / .ipa (macOS+Xcode)
🌐 Web gradlew :web:webBundle → contenido estático

Lo que garantiza el bootstrap

El Main instancia tu MainWindow por classname (reflexión, constructor sin args) — el mismo en todos los objetivos. Los íconos y assets (las fuentes Roboto/Material se cargan en el bootstrap) acompañan al paquete.

Checklist “listo para publicar”

  • Probado (cap. 11) y responsivo (cap. 10).
  • Recursos no disponibles por plataforma tratados (ver matriz).
  • Permisos: AndroidManifest.xml / Info.plist.
  • Firma (keystore Android / provisioning iOS).
  • Íconos, launch screen, versión.

Fin del curso — ¿y ahora?

Construiste una app que abre, agrega, navega, persiste, se adapta y está probada — y la empaquetaste. Desde aquí:

Recapitulando

Un core, cuatro launchers Gradle; MainWindow por classname; checklist de release por plataforma.

Ver también

¿Te resultó útil esta página?