Introducción a LowCodeEngine
LowCodeEngine es un motor de desarrollo de bajo código (low-code) de código abierto creado por el equipo de DingTalk de Alibaba. Este proyecto se adhiere estrictamente a las especificaciones de construcción y materiales de frontend para entornos corporativos. Ofrece compatibilidad con los navegadores modernos más utilizados, incluyendo Chrome 80+, Edge 80+, y las versiones más recientes de Safari y Firefox.
Características Principales
- Arquitectura Extensible: Diseñado con un núcleo mínimo pero altamente extensible, optimizado para plataformas low-code de nivel empresarial.
- Ecosistema Integrado: Incluye componentes de alta calidad listos para usar, como sistemas de materiales, configuradores y plugins.
- Ciclo de Vida Completo: Proporciona una cadena de herramientas robusta que soporta el desarrollo integral de todos los elementos del ecosistema.
- Escalabilidad Probada: Actualmente sirve como base para más de 100 plataformas de bajo código de diversos tipos.
- Desarrollo en TypeScript: Escrito completamente en TypeScript, ofreciendo definiciones de tipos exhaustivas para una mejor experiencia de desarrollo.
Protocolos del Motor
El núcleo implementa de manera nativa las especificaciones de protocolo de construcción y de materiales para motores low-code. Esta pila de protocolos es fundamental para garantizar la interoperabilidad y el flujo de componentes dentro del ecosistema de bajo código.
Guía de Integración y Configuración
Aunque el paquete está disponible en npm, su uso principal en entornos de producción es a través de CDN. La instalación por npm se recomienda únicamente para obtaner las definiciones de tipos (typings) y mejorar el autocompletado en el IDE.
npm install @alilc/lowcode-engine --save-dev
Inicialización del Motor
A continuación, se muestra un ejemplo de cómo configurar el esqueleto de la interfaz e inicializar el entorno de trabajo:
import { init, skeleton } from '@alilc/lowcode-engine';
// Configuración del widget de encabezado personalizado
skeleton.add({
area: 'topArea',
type: 'Widget',
name: 'customHeader',
content: CustomHeaderLogo,
contentProps: {
iconUrl: 'https://img.alicdn.com/tfs/TB1_SocGkT2gK0jSZFkXXcIQFXa-66-66.png',
navigationLink: '/dashboard',
},
props: {
alignment: 'left',
containerWidth: 120,
},
});
// Montaje del motor en el nodo DOM especificado
init(document.getElementById('lowcode-workspace'));
Configuración de Empaquetado
Para evitar incluir el motor en el bundle de la aplicación, es necesario configurarlo como una dependencia externa en tu herramienta de compilación:
{
"externals": {
"@alilc/lowcode-engine": "var window.AliLowCodeEngine",
"@alilc/lowcode-engine-ext": "var window.AliLowCodeEngineExt"
}
}
Opciones de Carga vía CDN
El motor y su renderizador simulador deben cargarse externamente. Puedes elegir entre diferentes proveedores de CDN:
Opción A (Recomendada - Alifd):
<script src="https://alifd.alicdn.com/npm/@alilc/lowcode-engine@1.0.0/dist/js/engine-core.js"></script>
<script src="https://alifd.alicdn.com/npm/@alilc/lowcode-react-simulator-renderer@1.0.0/dist/js/react-simulator-renderer.js"></script>
Opción B (unpkg):
<script src="https://unpkg.com/@alilc/lowcode-engine@1.0.0/dist/js/engine-core.js"></script>
<script src="https://unpkg.com/@alilc/lowcode-react-simulator-renderer@1.0.0/dist/js/react-simulator-renderer.js"></script>
Opción C (jsDelivr):
<script src="https://cdn.jsdelivr.net/npm/@alilc/lowcode-engine@1.0.0/dist/js/engine-core.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@alilc/lowcode-react-simulator-renderer@1.0.0/dist/js/react-simulator-renderer.js"></script>
Opción D (CDN Propio):
Compila el código fuente y aloja los archivos generados en packages/engine/dist y packages/react-simulator-renderer/dist en tu propio servidor de activos estáticos.
Componentes de la Interfaz de Usuario
El entorno de edición low-code se divide en varios paneles funcionales que facilitan el diseño y la configuración:
Panel de Materiales
Permite buscar, visualizar y arrastrar componentes directamnete hacia el lienzo de diseño principal.
Panel de Esquema (Outline)
Ofrece una vista de árbol DOM para reorganizar la jerarquía de los componentes en la página. También gestiona la visibilidad de capas modales y cuadros de diálogo.
Editor de Código Fuente
Habilita la escritura y modificación de lógica JavaScript a nivel de página, así como la inyección de reglas CSS personalizadas.
Editor de Schema JSON
Una herramienta avanzada para desarrolladores que permite la edición directa de la estructura de datos subyacente. Se puede combinar con funciones de guardado local y reinicio para probar modificaciones estructurales en tiempo real.
Lienzo de Diseño (Canvas)
Área principal donde se interactúa con los componentes. Al seleccionar un elemento, el panel derecho muestra sus configuraciones específicas. Soporta operaciones de arrastrar y soltar para modificar el orden y anidar componentes dentro de contenedores, mostrando indicadores visuales del árbol de componentes durante la operación.
Paneles de Configuración
- Propiedades: Ajuste de los valores básicos y datos de entrada del componente.
- Estilos: Modificación de atributos visuales como tipografía, márgenes y colores.
- Eventos: Vinculación de funciones y manejadores a los eventos expuestos por el componente.
- Avanzado: Configuración de renderizado condicional, bucles y asignación de claves únicas.
Casos de Uso en Producción
Este motor es la base tecnológica de plataformas corporativas de gran escala, como DingTalk Yida (plataforma de desarrollo de aplicaciones de Alibaba) y Parts (sistema interno para la gestión, integración y desarrollo de materiales low-code).
Repositorio Oficial
El código fuente completo, documentación técnica y guías de contribución están disponibles en el repositorio oficial de GitHub: alibaba/lowcode-engine.