Si ya tiene experiencia con la programación clásica u otra plataforma no-code/low-code, muchos conceptos le serán familiares.

A diferencia de otras soluciones no-code y low-code, AppMaster está construido con un enfoque clásico para la construcción de aplicaciones. El elemento básico en AppMaster es un proyecto, no una aplicación como en otras plataformas. Los proyectos pueden consistir en múltiples aplicaciones backend, web y móviles. La arquitectura de la solución - cliente servidor (no un monolito como en Bubble o plataformas similares).

Al pasar de otras plataformas sin código, tenga en cuenta que en AppMaster se crea backend, web y móvil por separado con diferentes herramientas de la plataforma. Uno de los momentos más frustrantes para estos usuarios es recordar que es necesario crear aplicaciones separadas y construir la lógica en esas aplicaciones.

¿Cómo empezar?

Para la mayoría de los proyectos, tendrá que construir backend y web, o backend y móvil o incluso todos los tipos de aplicaciones.

IMPORTANTE. Asegúrate de implementar la mayor parte de tu lógica en la aplicación backend. Nunca coloques lógica importante en las aplicaciones web o móviles donde no tienes control. Frontend es para la visualización de datos y recopilación de información de la entrada del usuario solamente.

Lo más sencillo es empezar creando una aplicación backend.

APLICACIONES BACKEND

BackendPaso 1. Defina sus modelos de datos en Backend Data Models Designer. Usted puede pensar en cada modelo como una tabla en la base de datos SQL (con relaciones). En AppMaster los Modelos de Datos no sólo se utilizan para definir las tablas primarias de la base de datos, sino también como una declaración de estructura a través del proyecto. Por ejemplo, si su lógica utiliza el modelo de datos "Usuario", puede estar seguro de que cualquier estructura de ese tipo tendrá el mismo conjunto de campos.

Haz clic con el botón derecho en el lienzo del Diseñador de Modelos de Datos para crear un nuevo modelo y arrastra desde un borde del modelo a otro borde del modelo para crear una relación. Haga clic en la relación o en el campo del modelo para editarlo.

Tenga cuidado con las propiedades de campo como Unique, Not NULL o Index: si aplica la política NOT NULL o Unique a la base de datos existente con valores vacíos o duplicados, la migración del esquema de la base de datos acabará fallando.

Backend Paso 2. Cree procesos de negocio para su aplicación. Proceso de Negocio (BP) en términos de AppMaster Platform es sólo un término único para una función en la programación clásica.

Cada BP backend tiene 2 bloques obligatorios: Inicio y Fin. Si necesita pasar datos a su BP, necesita definir variables en el bloque Inicio (funcionará como argumentos en funciones de programación clásica) y conectarlos a sus bloques dentro del BP.

Para devolver datos desde el BP puedes añadir variables al bloque Fin (como el retorno en las funciones de la programación clásica).

Existen 2 tipos de conexiones entre bloques del BP:

  • línea de flecha azul sólida llamada Conexiones de Flujo y define el orden de ejecución de los bloques (qué bloque debe ejecutarse a continuación)
  • líneas finas de varios colores llamadas Conexiones Variables que definen los enlaces de datos (de dónde obtener los datos - conexión de datos entre bloques BP). Cada color es un tipo de dato diferente

Normalmente, los lugares en los Bloques BP para conexiones de Flujo o Variables se llaman conectores. Todos los conectores en el lado izquierdo del bloque son Conectores de Entrada (recibe Flujo o datos), y en el lado derecho son Conectores de Salida (pasa Flujo o datos hacia adelante).

Para crear una conexión, tienes que arrastrar de un conector a otro (arrastra entre los bloques que necesitas conectar).

No importa desde qué lado empiece a arrastrar, se formará una conexión.

El editor de BP comprueba automáticamente los tipos de datos de las Conexiones Variables y no le dejará conectar si los tipos de datos no son idénticos, también evitará cualquier bucle o mala conexión.

Puede llamar a un BP desde otro - simplemente arrastre y suelte el bloque apropiado desde el panel izquierdo. A menudo utilizamos este enfoque para minimizar la complejidad de la lógica y reutilizar la misma lógica varias veces en el proyecto.

Hay 2 tipos de variables en las aplicaciones backend que puedes colocar al BP para almacenar datos temporalmente:

  • Variables Locales - para almacenar datos durante el ciclo de vida del BP actual (más eficiente, sólo en memoria)
  • Variables Globales - almacenarán sus datos durante el ciclo de vida de la aplicación backend (también sólo en memoria, se restablecerán una vez reiniciada la aplicación)

Antes de poder utilizar una Variable Global arrastrándola desde el panel izquierdo del Editor de BP, es necesario crear una utilizando una sección de la lógica del backend.

Si tu BP necesita ser llamado desde una fuente externa vía API (desde tu web, móvil, usando postman/curl, desde un sistema externo), necesitas adjuntar el BP al endpoint.

Backend Paso 3. Crear puntos finales. En AppMaster utilizamos el mismo enfoque clásico de la API REST para los puntos finales. Aunque AppMaster soporta no sólo REST API Endpoints sino también WebHooks y WSS endpoints, nos centraremos en el primer tipo.

Cuando cree endpoints, por favor adhiérase al estándar REST API en términos de métodos (GET, POST, PUT, PATCH, DELETE), payloads (use JSON), y URLs (sin caracteres no ASCII, sin espacios, empieza y termina con una barra).

El proceso de creación de puntos finales es muy sencillo y directo: seleccione el BP, defina la URL y el método REST y, si necesita autorización para esos puntos finales, compruebe la configuración del middleware.

Una vez que los modelos de datos, procesos de negocio y puntos finales están listos, es el momento de publicar - ¡presione el botón publicar! Por lo general, en menos de 30 segundos la Plataforma AppMaster tomará todos sus planos (sí, en realidad, todo lo que ha hecho es crear planos para el futuro software), generar el código fuente, compilar, empaquetar en la imagen docker y desplegar en la nube AppMaster. Cuando el proceso de la publicación ha terminado, puede abrir la documentación de la API REST (OpenAPI / Swagger) y probar sus puntos finales con Swagger incorporado en las solicitudes o el uso de herramientas de terceros como Postman o Insomnia.

IMPORTANTE. Si está ejecutando con la suscripción Learn & Explore, nuestro demonio de ahorro de recursos detendrá su contenedor de aplicaciones después de 30 minutos de inactividad en Studio. Para volver a ejecutarlo, haga clic en el conmutador Plan de despliegue o vuelva a publicar.

APLICACIONES WEB

Cuando el backend está correctamente planificado y creado, es hora de pasar al frontend. Empezaremos con la aplicación web.

WebApp Paso 1. Crea una aplicación web si no tienes una en el proyecto. A partir de ahora, tenemos 2 tipos de diseñadores de aplicaciones web: actuales y nuevos (en beta). La principal diferencia es la cantidad de personalización. La generación actual de WebApp Designer tiene capacidades de personalización de interfaz de usuario muy limitadas, pero simples y fáciles de construir interfaces de interfaz de usuario estándar de paneles de administración y portales de clientes. El nuevo (actualmente en beta) tiene una personalización completa de la apariencia de interfaz de usuario y relleno - un enfoque flexbox con diseños de SPA (Vue, React way). Ambos diseñadores tienen Business Processes incorporados, incluyendo triggers y un montón de bloques útiles.

WebApp Paso 2. Comience a diseñar la interfaz de usuario de su aplicación web arrastrando y soltando elementos de interfaz de usuario desde el panel superior (diseñador actual) o el panel izquierdo (nuevo diseñador). Para algunos elementos que tienen enumeración en su interior (como tablas y listas), necesitará seleccionar el modelo de datos durante la fase inicial de soltar para ajustar automáticamente el elemento.

Existen 2 tipos de procesos de negocio en las Aplicaciones Web: Disparador y Estándar. Los desencadenantes están disponibles para cada elemento de la interfaz de usuario y para toda la aplicación (desencadenantes de aplicación). Para acceder al disparador del elemento de interfaz de usuario, seleccione el elemento y, en la pestaña BP, cree uno. A diferencia de los BP estándar, los disparadores tienen varios bloques de inicio: un bloque para cada evento y ningún bloque de fin. Dado que los desencadenantes nunca devuelven ningún valor, no hay necesidad de bloques Fin. Aún puedes crear procesos de negocio estándar en aplicaciones web, pero la única forma de ejecutarlos es llamarlos desde los disparadores. Este es un buen enfoque para mover la lógica de uso frecuente a los BPs web estándar y sólo llamarla desde los triggers.

IMPORTANTE. Recuerde que los BPs de backend se ejecutarán dentro de las aplicaciones de backend, los BPs de aplicaciones web se ejecutarán en los navegadores de los usuarios, y minimizar la carga de trabajo web será beneficioso para la experiencia del usuario.

Hay un par de disparadores muy importantes a nivel de aplicación. Por ejemplo, App onLaunch se dispara cuando se acaba de lanzar una aplicación en el navegador. Ese es el mejor lugar para comprobar si el usuario está autenticado y, si no, redirigir a la página correcta (si necesitas autenticación).

No olvides guardar el esquema de tu aplicación web y publicar tu proyecto para ver los cambios.

APLICACIONES MÓVILES

Cuando necesite crear una aplicación móvil, el proceso es el mismo que con una aplicación web: cree pantallas, coloque elementos UI, cree triggers de elementos UI, ajuste el trigger App onLaunch y ya está listo. No hay vista previa web para aplicaciones móviles AppMaster, pero puede instalar la aplicación móvil AppMaster Developer para Android e IOS para previsualizar en vivo sus aplicaciones con todas las características relacionadas con el hardware como BLE, NFC y etc.

Cuando haya terminado de desarrollar su aplicación móvil y esté lista para ser publicada, AppMaster tiene un asistente especial de publicación disponible desde el menú contextual en la lista de todas las aplicaciones móviles del proyecto. Para Android, AppMaster generará archivos APK y AAB que pueden ser.

RESUMEN

AppMaster es un gran IDE donde puede planificar sus aplicaciones con planos avanzados en Data Models Designer, Business Process Editor, Web y Mobile Designers.

FAQ

¿Por qué necesitamos proyectos con múltiples aplicaciones por proyecto?

AppMaster utiliza una arquitectura cliente-servidor y no un monolito. Hay muchos casos en los que es posible que desee varias aplicaciones por proyecto cuando se necesita separar las características:

  • Proyectos complejos: como taxis cuando una app para pasajeros y otra para conductores trabajan con el mismo backend.
  • Crear múltiples aplicaciones backend para equilibrar la carga de trabajo y hacer cambios fáciles y menos arriesgados

Aunque ya se pueden crear múltiples aplicaciones web y móviles por proyecto, todavía estamos trabajando en la introducción de múltiples aplicaciones backend por proyecto.

¿Cuáles son las ventajas y los inconvenientes de las aplicaciones generadas?

Los beneficios más obvios y notables son un rendimiento significativamente mayor, escalabilidad, capacidad de obtener archivos binarios para ejecutar en las instalaciones y código fuente para pasar certificaciones y auditorías. Utilizamos la última versión del lenguaje de programación Go para generar aplicaciones backend. Go ofrece un gran rendimiento de las aplicaciones compiladas, compilación cruzada para múltiples arquitecturas de SO y CPU y simplicidad general al mantenerse flexible.

Los inconvenientes más comunes son la necesidad de regenerar y compilar de nuevo la aplicación cada vez que se introducen cambios en los planos, lo que suele llevar entre 35 y 45 segundos de media para proyectos de tamaño medio. Además, hay cierta complejidad y costes adicionales, ya que necesitamos ejecutar aplicaciones en nuestra nube: cada aplicación que ejecutamos en el contenedor docker consume CPU y RAM (incluso si está inactiva), y requiere la migración del esquema de la base de datos (nosotros lo hacemos automáticamente).

Pero en general, las aplicaciones generadas con código funcionan tan bien como las creadas con programación clásica.

¿Qué tecnología se utiliza en las aplicaciones web?

Generamos aplicaciones web utilizando el framework Vue3 con TypeScript (TS). Las aplicaciones web funcionan en una combinación de modos SPA y SSG. Server-Side Rendering (SSR) se añadirá más adelante y sólo para los nuevos diseñadores de aplicaciones web.

¿Qué tecnología se utiliza en las aplicaciones móviles?

Nuestras aplicaciones móviles se construyen utilizando un enfoque declarativo backend-driven: utilizamos un código base totalmente nativo (el más nativo) de Swift y SwiftUI para IOS, Kotlin, y Jetpack Compose para Android. Técnicamente, las aplicaciones móviles cargan la configuración y las pantallas a través de la red bajo demanda utilizando JSON y Protobuf para obtener el máximo rendimiento. Este enfoque tiene muchas ventajas: se pueden cambiar las aplicaciones en tiempo real sin necesidad de publicar versiones actualizadas de las aplicaciones en AppStore o Play Market, se puede trabajar completamente sin conexión y se tiene acceso a todas las características del hardware. No utilizamos HTML/JS/ReactNative o tecnología PWA en nuestras aplicaciones móviles. Las aplicaciones móviles creadas en AppMaster deben distribuirse a través de AppStore, Play Market o cualquier otra plataforma de distribución (técnicamente, se pueden compartir archivos apk/aab para Android, pero eso supone mucho esfuerzo).

¿Dónde se alojan las aplicaciones por defecto?

Hemos construido AppMaster Cloud sobre la infraestructura de AWS para ofrecer el servicio más fiable y escalable a nuestros clientes. Por defecto, los clientes con cualquier suscripción pueden utilizar una de las 3 regiones principales: América del Norte (EE.UU.), Europa (Alemania), Asia. Para los planes de alojamiento dedicado tenemos la mayoría de las regiones de AWS disponibles (más allá de las ubicaciones centrales). Si necesita un país específico para alojar su aplicación, háganoslo saber.

¿Cómo puedo obtener el paquete de aplicaciones, los archivos binarios o el código fuente de mis aplicaciones?

Para obtener archivos binarios o paquetes, debe tener al menos una suscripción Business. Las aplicaciones backend pueden descargarse del almacén de artefactos como archivos binarios o extraerse mediante docker pull de nuestro registro (como Docker Hub). Los paquetes móviles y web también pueden descargarse del almacén de artefactos. Puede descargar paquetes de aplicaciones móviles con cualquier suscripción, excepto Learn & Explore. Para obtener el código fuente de la aplicación, debe tener una suscripción de empresa. Con una suscripción empresarial, obtendrás el código fuente completo de las aplicaciones backend y web, pero una base de código limitada de las aplicaciones móviles, ya que utilizamos un enfoque basado en el backend.

¿Cuál es la diferencia entre un modelo y un modelo virtual?

Utilizamos el término Modelo para referirnos a la estructura para la que crearemos tablas en una base de datos y precrearemos automáticamente bloques de BD para realizar operaciones básicas en esa tabla de base de datos, como buscar, crear registros, etc. Los modelos virtuales son lo mismo, excepto que no crearemos tablas y no habrá bloques de BD. Los modelos virtuales eran una de las características más buscadas por la mayoría de los desarrolladores. El caso de uso más frecuente para los modelos virtuales es cuando necesitas crear una estructura (como objetos en JS o JSON) y usarla para peticiones externas, elementos de UI o endpoints. Es curioso que los modelos que se definen en las aplicaciones backend aparezcan automáticamente en las aplicaciones web y móviles como virtuales: en las aplicaciones web y móviles necesitas conocer cualquier estructura de datos para poder trabajar con ella.

¿Cómo puedo trabajar con modelos en procesos de negocio? Cómo extraer campos, etc.

Para cada modelo, pregeneramos los bloques Make y Expand. Make reunirá campos al Registro Modelo, Expand extraerá campos del Registro Modelo. Tenga en cuenta que estos bloques no modifican los datos iniciales que se pasan a la entrada de los bloques.

¿Cómo puedo establecer el valor de las variables locales o globales?

Todos los bloques que utilice no mutarán los datos iniciales cuando los pase a la entrada. El único bloque que muta datos es Set Variable: conecta variable y valor y después de la ejecución del bloque, obtendrás tu valor dentro de la variable. Las variables globales en aplicaciones móviles y web pueden tener persistencia y sobrevivirán al reinicio de la aplicación si se establece la bandera apropiada.

¿Cómo puedo hacer una llamada API a un sistema externo?

La mejor forma de realizar peticiones a sistemas externos es desde tu aplicación backend. De este modo, obtendrá un mayor control sobre los datos y la seguridad. Hay dos maneras de hacerlo:

  • Usando el bloque HTTP Request es la forma más fácil de hacerlo, puedes usarlo en cualquier backend BP
  • Usando el Diseñador de API Externa para crear primero una petición y luego usar bloques crafteados dentro de tus BPs.

Aunque puedes usar el bloque HTTP Request para llamar a sistemas externos no sólo en aplicaciones backend sino también en web y móvil, necesitas tener una razón para hacerlo: cuando tu aplicación frontend quiere hacer una llamada al dispositivo en la red local, o si es por diseño para el sistema de terceros.

¿Qué tipos de peticiones y protocolos se admiten cuando se llama a sistemas externos?

En la actualidad, admitimos solicitudes de API REST con cargas útiles JSON o XML, texto sin formato o cargas útiles binarias. gRPC aún no es compatible, pero estamos trabajando activamente para introducirlo en los próximos meses con nuestro nuevo Diseñador de API externas.

¿Las aplicaciones creadas por AppMaster soportan WebSockets?

Sí, puede crear puntos finales WSS en la aplicación backend y utilizarlos para comunicarse dentro de aplicaciones web o móviles. Además, puede definir sus propias estructuras de carga útil utilizando modelos durante la creación del punto final WSS. La comunicación con sistemas externos mediante WebSockets no está implementada.

¿Cómo puedo llamar al endpoint backend desde una aplicación web o móvil?

Para cada punto final creado en la aplicación backend, la plataforma crea un bloque de solicitud de servidorpara aplicaciones web y móviles. Simplemente coloque ese bloque en cualquier disparador y llámelo. Puedes monitorizar la ejecución de los bloques Server Request en la consola de desarrollo del navegador, pestaña de peticiones de red. En las aplicaciones móviles, puede utilizar los registros (debe habilitarse primero en la configuración de AppMaster Developer App).

¿Puedo crear autenticación y registro personalizados?

Por supuesto, puede desactivar completamente el módulo de autenticación integrado y crear una solución totalmente personalizada. Usted tendrá que crear un BP independiente en la aplicación backend que se encargará de la tracción auth token (por lo general de la cabecera de la solicitud) y comprobar de acuerdo a sus reglas. Puede obtener las cabeceras de solicitud utilizando el bloque BP Get Request Headers. Tenga en cuenta que una vez que desactive la autenticación integrada, no podrá utilizar el bloque Obtener usuario actual. Además, puede utilizar cualquier ID, número de teléfono u otro identificador en lugar del correo electrónico con el módulo de autenticación estándar.

¿Hay alguna manera de crear operaciones seguras para contadores fiables y otros casos de ejecución ordenada?

AppMaster soporta un modo de un solo hilo para la ejecución de procesos de negocio cuando todas las llamadas del proceso de negocio se ejecutan en un orden estricto, uno a la vez. Este modo puede tener una penalización de rendimiento para situaciones de alta carga de trabajo, pero en la mayoría de los casos, no causa ninguna degradación significativa del rendimiento. Tenga en cuenta que la pila de llamadas (cola) de este modo es limitada.

¿2FA con SMS, correo electrónico u OTP?

Sí, puedes ajustar tu lógica de autenticación para incluir métodos 2FA. Para utilizar SMS o correo electrónico, debe conectarse a un proveedor externo como Twilio. La forma más sencilla es ampliar las sesiones e incluir campos adicionales para controlar 2FA en la sesión. En el tercer trimestre de 2023, introduciremos un módulo OTP basado en tiempo que funcionará con Google y Microsoft Authenticator.

¿Puedo utilizar el backend generado por AppMaster con otras aplicaciones web o móviles?

Sí, las aplicaciones backend generadas por AppMaster tienen puntos finales de API REST estándar. Para cada aplicación, la documentación de la API REST (OpenAPI/Swagger) se genera automáticamente y se sirve en un punto final independiente.

¿Puedo utilizar plantillas para crear proyectos o aplicaciones?

Todavía no tenemos plantillas, pero es algo que lanzaremos en un futuro próximo. Los proyectos AppMaster son más complejos que WebFlow o Bubble y necesitamos más tiempo para implementarlos.

¿Qué tipo de base de datos soporta AppMaster?

La aplicación backend generada por AppMaster funciona con cualquier base de datos compatible con PostgreSQL a partir de PG12, pero recomendamos utilizar la última versión disponible de PostgreSQL DB (15.3 en el momento de este documento). El soporte para MSSQL, MariaDB, MySQL y SQLite está previsto y se añadirá a finales de 2023/principios de 2024.

¿Cómo puedo acceder directamente a la base de datos para editar los registros?

AppMaster no soporta acceso directo a la base de datos para aplicaciones que están alojadas en AppMaster Cloud. Si utiliza alojamiento on-premise, puede acceder a la base de datos utilizando cualquier herramienta visual como PGAdmin o utilizando la herramienta de línea de comandos pgsql. En el futuro, añadiremos una función que permita a los clientes editar la base de datos directamente.

¿Existe colaboración en tiempo real? ¿Podemos trabajar en equipo en el mismo proyecto?

Sólo tenemos colaboración en tiempo real en el nuevo diseñador web. El nuevo diseñador web (beta) utiliza borradores de red con el Protocolo de Tipos de Datos Replicados sin Conflictos (CRDT) para cubrir todos los casos de uso y ofrecer gestión de estados (Ctrl+Z, operaciones de reversión). En el futuro iremos incorporando gradualmente CRDT al editor de BP y al diseñador de modelos de datos. Si necesita trabajar en equipo, no edite el esquema del modelo de datos, el mismo BP o la misma aplicación Web/Móvil, ya que puede provocar la pérdida de datos.

¿Qué características importantes pueden faltar en AppMaster?

  • Diseñador Visual SQL. Mientras que la mayoría de las operaciones básicas como la búsqueda con filtros y uniones, obtener un registro por id, actualización, parche, eliminación y eliminación suave son compatibles, pero para una mayor flexibilidad y rendimiento, estamos trabajando en Visual SQL Designer y se dará a conocer en octubre de 2023.
  • Microservicios de backend. Estamos trabajando activamente en la implementación de múltiples aplicaciones backend por proyecto. Por ahora, sólo se puede crear una aplicación backend por proyecto.
  • Aún no hay SSR para aplicaciones web. Para las aplicaciones web y sitios web más optimizados, SSR añade beneficios adicionales para SEO. ETA Nov-2023.
  • Compatibilidad con gRPC para solicitudes API externas. Tenemos previsto añadir gRPC con carga útil protobuf y opciones de compresión para ampliar las posibilidades de interconexión entre sistemas.
  • Plantillasde proyectos y aplicaciones web y móviles. Estamos trabajando en la introducción de plantillas. Añadiremos plantillas de aplicaciones web como primer paso en septiembre de 2023. Las plantillas de proyectos completos aún no tienen fecha prevista.
Was this article helpful?

AppMaster.io 101 Curso intensivo

10 Módulos
2 Semanas

¿No sabe por dónde empezar? Ponte en marcha con nuestro curso intensivo para principiantes y explora AppMaster de la A a la Z.

Inicio de curso
Development it’s so easy with AppMaster!

Necesitas más ayuda?

Resuelva cualquier problema con la ayuda de nuestros expertos. Ahorre tiempo y concéntrese en crear sus aplicaciones.

headphones

Soporte de contacto

Cuéntenos su problema y le encontraremos una solución.

message

Chat comunitario

Discutir preguntas con otros usuarios en nuestro chat.

Únete a la Comunidad