¿Alguna vez te has preguntado si podrías controlar las luces de tu árbol de Navidad desde una aplicación móvil personalizada que construiste tú mismo? Adalo te permite crear aplicaciones web impulsadas por bases de datos y aplicaciones nativas de iOS y Android, publicadas en la App Store y Google Play, desde un único editor sin código.
Este tutorial te guía a través de la creación de una aplicación de control de luces de árbol de Navidad integrando Adalo con DreamFactory, Flask y una buena dosis de resolución creativa de problemas.

Habiendo pasado mi carrera escribiendo software y a menudo luchando mucho con el diseño, desde que me uní al equipo de Adalo hace unos meses, he quedado prácticamente asombrado por lo fácil que es crear e integrar interfaces de usuario usando el constructor de aplicaciones Adalo. Adalo es un constructor de aplicaciones sin código para aplicaciones web impulsadas por bases de datos y aplicaciones nativas de iOS y Android, una versión en las tres plataformas, publicadas en la App Store de Apple y Google Play. Francamente, siempre había pensado que los constructores de aplicaciones sin código se limitaban a crear aplicaciones y paneles de control de estilo CRUD (crear, recuperar, actualizar, eliminar) bastante simplistas.
Con la Navidad acercándose rápidamente, y siendo del tipo de nerd que le gusta automatizar cosas sin una razón particular, hace unos días comencé a preguntarme si sería posible crear una aplicación Adalo que pudiera controlar las luces del árbol de Navidad de mi familia. Ya están conectadas con un enchufe inteligente y nuestro dispositivo Alexa de la cocina, por lo que se pueden encender y apagar con el comando "Alexa, enciende el árbol de Navidad", pero ¿sabes qué es mejor que una integración de automatización del hogar? Dos. Lo que sigue es un resumen de mi búsqueda para crear e lanzar una aplicación móvil de gestión de luces del árbol de Navidad usando Adalo, cinta adhesiva e mal juicio.
La aplicación estará disponible durante unos días a partir del lunes 16 de diciembre y puede estar periódicamente desconectada debido a que no estoy en casa (miedo al fuego), mi esposa amenazando con estrangularme por hacer esto público, o los obvios problemas técnicos que puedan surgir. Compruébalo en https://xmas.wjgilmore.com.
Presentación de la aplicación
La aplicación se llama creativamente Adalo XMAS Tree App. Consta de algunos temas, dos botones para alternar las luces de Navidad y una transmisión en vivo de YouTube para que puedas ver la acción en tiempo real. Pero esos botones, oh esos botones son prácticamente irresistibles. Simplemente no puedes evitar presionarlos y ver que el árbol se ilumine en respuesta o imaginar a mi esposa gimiendo después de verlo apagarse nuevamente.
Anoche estábamos poniéndonos al día con la serie de Apple Silo (temporada 2, mírala, es increíble), y me encontré en una lucha mortal con algún intruso digital desconocido. Creo que sé quién fue (¡Allison, no creas que no sé que fuiste tú!), pero de todos modos el terrorista del árbol lo apagaba. Y yo lo volvería a encender. Unos momentos después, el Grinch estaba de vuelta y las luces estaban apagadas nuevamente. Y nuevamente me defendería valientemente, iluminando la sala de estar una vez más. Dicen que los héroes no nacen pero se forjan en oropel, y soy la prueba viviente de ello.
Apuesto a que estás salivando ante la idea de presionar esos botones. Adelante. Ve a https://xmas.wjgilmore.com y presiónalos. ADVERTENCIA: No tengo idea de cuánto tiempo esto va a estar disponible antes de que se desconecte por mi ISP, un error de programación, o francamente mi esposa.

Por qué Adalo funciona para aplicaciones de hogar inteligente
Construir una aplicación de control de IoT puede sonar complejo, pero el constructor visual de Adalo lo hace sorprendentemente sencillo. La plataforma se encarga del trabajo pesado: compilación de aplicaciones nativas, integraciones de API y gestión de bases de datos, mientras tú te enfocas en las partes divertidas como diseñar botones que controlen tu árbol de Navidad. Con más de 3 millones de aplicaciones creadas en la plataforma, hay un historial probado de proyectos que van desde utilidades simples hasta aplicaciones comerciales complejas.
Lo que hace que Adalo sea particularmente adecuado para este tipo de proyecto es la combinación de integración fácil de API y la capacidad de publicar directamente en las tiendas de aplicaciones. No estás creando un envoltorio web que se sienta lento en dispositivos móviles, estás creando una verdadera aplicación nativa que responde instantáneamente cuando alguien del otro lado del mundo decide meterse con tus decoraciones navideñas.
Comunicarse con el enchufe inteligente
Porque en 2026 no podemos molestarnos en agacharnos para enchufar y desenchufar una tira de luces, usé un enchufe inteligente TP-Link KP115 para controlar las luces a través de Alexa. Este es un proceso bastante sencillo, pero según mi conocimiento no hay una forma oficial de interactuar con el enchufe fuera de Alexa y la horrible aplicación del fabricante. ¡GitHub al rescate! Como era de esperar, un programador amable hizo ingeniería inversa del protocolo de comunicación del enchufe y lo empaquetó en un conveniente paquete de Python llamado python-kasa. Para instalar python-kasa ejecuta:
pip install python-kasa
Una vez instalado, puedes comenzar a interrogar tu red local de dispositivos compatibles usando el discover comando:
kasa discover
Así que no solo puedes identificar fácilmente la dirección IP asignada a cada dispositivo, sino que también puedes determinar si está encendido, cuánto tiempo ha estado en estado encendido o apagado, y cuánta energía ha consumido tanto para el mes actual como desde el último reinicio. ¡Bastante genial!
Una vez que conoces la dirección IP del dispositivo, es fácil encenderlo y apagarlo:
kasa --host 192.168.1.100 on kasa --host 192.168.1.100 off
Creación de una API
Mi objetivo final era controlar este enchufe a través de una aplicación móvil Adalo que podría ser accesible desde cualquier lugar del mundo, incluido el Polo Norte. Esto significa abrir una conexión de Internet desde mi red del hogar al mundo exterior. Déjame ser claro: hay formas correctas de hacer esto y hay formas incorrectas. La forma que estoy a punto de mostrarte es muy, muy incorrecta, y es probable que mi proveedor de servicios de Internet del hogar cierre nuestra conexión por hacerlo de esta manera.
La versión más simple de esta API necesita, según mi estimación, tres puntos finales: estado, encender y apagar. El punto final de estado nos dice si el enchufe está encendido o apagado, mientras que los puntos finales de encender y apagar se explican por sí solos. Usé Flask para crear la API y me pareció muy fácil de usar. Para crear un punto final, solo define el URI de ruta y luego el método que sigue inmediatamente se ejecuta cuando se solicita ese punto final.
Aunque no lo creas, esto es suficiente para crear una API de Flask funcional:
from flask import Flask
app = Flask(__name__)
@app.route('/status')
def status():
return 'hello' Guarda este archivo como status.py o lo que sea y luego inicia el servidor Flask así:
flask --app status run
Debido a que las rutas de Flask son por defecto solicitudes GET, solo puedes abrir tu navegador e ir a http://127.0.0.1:5000/status para probarlo. Suponiendo que no haya errores de sintaxis, deberías ver la cadena hello mostrada en el navegador.
En el caso de mi proyecto, necesitaba que los puntos finales de la API ejecutaran comandos de python-kasa, por lo que usé el módulo subprocess de Python para ejecutar comandos del shell. Para los propósitos de este proyecto, puedo permitirme jugar de manera un poco relajada, sin embargo, si alguna vez intentas algo similar y necesitas pasar parámetros al comando del shell entonces es críticamente importante que valides los datos antes de hacerlo. Aquí está el script completo de Flask utilizado para este proyecto:
from flask import Flask
import subprocess
app = Flask(__name__)
@app.route('/status')
def status():
result = subprocess.run(['kasa', '--host', '192.168.1.100', 'state'],
capture_output=True, text=True)
return result.stdout
@app.route('/on')
def turn_on():
subprocess.run(['kasa', '--host', '192.168.1.100', 'on'])
return 'Tree is ON'
@app.route('/off')
def turn_off():
subprocess.run(['kasa', '--host', '192.168.1.100', 'off'])
return 'Tree is OFF' Comunicarse con el mundo exterior
Probablemente notaste que la API de Flask se está ejecutando en localhost, lo que significa que no es accesible para el mundo exterior. Para hacer que esta API sea accesible desde otro lugar, uso un servicio llamado ngrok. ngrok ha existido durante todo lo que puedo recordar, e historias largas cortas, expondrá un servidor de desarrollo local a Internet (entre muchas otras cosas). Usando ngrok, podemos exponer el puerto 5000 de mi servidor local a un subdominio de ngrok.app tan fácil como ejecutar este comando:
ngrok http 5000
¡Ahora puedo ir a mi punto final de ngrok desde cualquier red y reenviará las solicitudes hacia y desde mi API!
Proxying de las solicitudes a través de DreamFactory
Por razones de seguridad y flexibilidad, luego enruté el punto final de ngrok a través de DreamFactory. DreamFactory es mejor conocido como un envoltura de base de datos capaz de exponer rápidamente una API REST de nivel empresarial, sin embargo puede hacer todo tipo de cosas interesantes, como extender las capacidades de las API existentes. Usé el conector de servicio con script de DreamFactory porque pensé que podría ser divertido eventualmente integrar otras capacidades en la aplicación, como la temperatura actual en el Polo Norte. Hacer esto es increíblemente fácil usando DreamFactory porque puedo simplemente agregar nuevos puntos finales a mi servicio con script.
El conector de servicios con script de DreamFactory es compatible con los lenguajes PHP, Python y NodeJS, y como estoy más familiarizado con la API basada en PHP de la plataforma, opté por esa:
$api = $platform['api'];
$get = $api->get;
$post = $api->post;
$api->get('/status', function() {
// Call ngrok endpoint for status
return file_get_contents('https://your-ngrok-url.ngrok.app/status');
});
$api->get('/on', function() {
return file_get_contents('https://your-ngrok-url.ngrok.app/on');
});
$api->get('/off', function() {
return file_get_contents('https://your-ngrok-url.ngrok.app/off');
});
$api->get('/temperature', function() {
return 'Freezing';
}); Solo para ilustración, he extendido lo que se expone a través de la API de Flask agregando un /temperature punto final que cuando se solicita devuelve "Freezing".
Después de guardar estos cambios, agregué un control de acceso basado en roles a la API de DreamFactory y luego generé una clave de API. Los puntos finales de la API de DreamFactory ahora solo son accesibles proporcionando la clave de API que se proporciona a través de un encabezado HTTP seguro.
Integración de la API y la aplicación Adalo
Una de mis características favoritas del constructor de Adalo es lo fácil que es vincular eventos a acciones del usuario. Por ejemplo, al hacer clic en el botón "Encender árbol", se debe realizar una llamada a la API a un /on punto final. Esto se logra tan fácilmente como agregar una "acción" al botón e indicar qué tipo de evento debe ocurrir para que esa acción se ejecute. Además, puede definir múltiples acciones como se muestra en esta captura de pantalla (tomada de la aplicación real):

La llamada a la API se envía al punto final de DreamFactory mencionado anteriormente. Nuevamente, la llamada se asegura pasando una clave de API a través del encabezado HTTP. Definir esta llamada se logra a través de un asistente web simple, un paso del cual se muestra en la siguiente captura de pantalla:

Este enfoque visual de la integración de API es lo que hace que la plataforma de Adalo se sienta tan accesible. No estás escribiendo solicitudes de búsqueda ni depurando errores de CORS, estás navegando por un asistente que maneja la complejidad técnica. Las mejoras de velocidad de 3-4x desde la revisión de infraestructura de Adalo 3.0 significan que estas llamadas a la API se ejecutan rápidamente, manteniendo la aplicación receptiva incluso al controlar hardware al otro lado del mundo.
Conteo de la frecuencia de alternancia de luces
Pensé que sería divertido hacer un seguimiento de la cantidad de veces que los usuarios han encendido y apagado las luces. Podría hacer esto dentro de la API de Flask local usando SQLite, pero pensé que tenía sentido mantener este conteo más cerca de la aplicación, así que utilicé la función Colecciones de Adalo en su lugar.
Creé una sola colección llamada counts que consta de cuatro campos: ID (la usual clave primaria de auto-incremento), nombre (que almacena las cadenas on y off), y las marcas de tiempo habituales. Las advertencias habituales se aplican aquí, probablemente podría haber configurado esto de manera un poco más eficiente, pero simplemente nos estamos abriendo paso a través del proyecto. Aquí hay un ejemplo de algunos registros almacenados en la tabla:

Algo que vale la pena señalar: los planes pagos de Adalo ahora incluyen registros de base de datos ilimitados, lo que significa que no tengo que preocuparme de que este proyecto navideño tonto alcance los límites de almacenamiento. Ya sea rastreando algunos cientos de alternancia de luces o escalando a millones de interacciones de usuarios, la plataforma lo maneja sin cargos adicionales o límites de registros.
Gráficos de los resultados
Mi amigo Nic en DreamFactory sugirió crear un gráfico que represente la frecuencia de alternancia. No tenía ganas de escribir código personalizado para implementar esto, sin embargo, es trivial exportar datos de una colección de Adalo, así que lo hice y los cargué junto con un gráfico de ejemplo en ChatGPT:

Sí, siempre soy educado cuando hablo con la IA estos días. Por mi parte, doy la bienvenida y aprecio a nuestros señores robots. Sin embargo, no me gustó cómo resultó el gráfico y después de algunos intentos más le pedí que creara un gráfico circular en su lugar:

Configuración de la transmisión en directo de YouTube
Configurar la transmisión en directo de YouTube fue muy sencillo; utilicé el componente del mercado de YouTubede Adalo, pegué la URL de la transmisión en directo y funcionó. Además, puedo ver el estado de la transmisión en directo usando esta interfaz divertida de YouTube Studio:

El ecosistema de componentes del mercado es una de esas características que ahorra horas de tiempo de desarrollo. En lugar de descifrar la API de inserción de YouTube y manejar el tamaño receptivo en todos los dispositivos, simplemente arrastra, suelta y configura. El componente se encarga del resto, y debido a que Adalo compila a código nativo, la reproducción de video funciona sin problemas tanto en iOS como en Android.
Creación del ícono de la aplicación
No tengo ninguna habilidad de diseño, así que simplemente confiaba en DALL-E para generar uno para mí. Utilicé el aviso "Por favor, crea un ícono de 1024 x 1024 px para una aplicación móvil utilizada para controlar las luces del árbol de Navidad". DALL-E ignoró las dimensiones y creó las dos opciones que se encuentran en la captura de pantalla:

En aras del tiempo, seleccioné el primer ícono que creó, lo descargué en mi Mac y luego utilicé la característica poco conocida de macOS para eliminar el fondo para eliminar el gradiente de fondo:

Esta combinación de activos generados por IA y el constructor visual de Adalo representa el enfoque moderno del desarrollo de aplicaciones. No necesitas ser diseñador ni desarrollador para crear algo funcional y divertido. El próximo AI Builder de la plataforma llevará esto aún más lejos: principios de 2026 promete creación de aplicaciones basada en mensajes donde puede describir lo que desea y hacer que la plataforma genere automáticamente pantallas, lógica y estructuras de bases de datos mediante características como Magic Start y Magic Add te permite describir características en lenguaje natural y tenerlas construidas automáticamente, mientras que X-Ray identifica problemas de rendimiento antes de que afecten a los usuarios, una optimización proactiva que mantiene tu aplicación funcionando sin problemas mientras crece..
Publicación y rendimiento
Un aspecto de este proyecto que merece mención es lo sin problemas que Adalo maneja el camino desde la idea hasta la aplicación publicada. La plataforma publica directamente en la App Store de Apple y Google Play Store desde una única base de código. Esta es genuinamente la parte más difícil de lanzar una aplicación: lidiar con certificados, perfiles de aprovisionamiento y directrices de tiendas, y Adalo lo maneja automáticamente.
El rendimiento de la aplicación ha sido sólido a lo largo de este experimento. Desde la revisión de infraestructura de Adalo 3.0 a finales de 2026, la plataforma se ejecuta 3-4 veces más rápida que antes, con infraestructura modular que se escala con las necesidades de su aplicación. Para un proyecto navideño tonto esto podría parecer excesivo, pero significa que los clics de botones se registran al instante y la transmisión en directo se carga sin lag, incluso cuando múltiples personas están compitiendo por las luces del árbol simultáneamente.
Los precios de Adalo también hacen que proyectos como este sean accesibles. Comenzando en $36/mes con uso ilimitado y sin límites de registros, puede experimentar libremente sin preocuparse por sorpresas en la factura por cargos inesperados. Compare esto con alternativas como Bubble (comenzando en $59/mes con Unidades de Carga basadas en uso y límites de registros) o Glide (que ni siquiera admite la publicación en la App Store), y la propuesta de valor se vuelve clara.
Conclusión
Este fue un proyecto muy divertido que hizo reír a mis hijos y vecinos, y exasperó a mi esposa sin fin. A veces los mejores proyectos son aquellos que no tienen otro propósito real que no sea el de reírse un poco. Espero que para cuando leas esto mi casa no se haya quemado.
Quizás en una publicación posterior documenteré algunas de las otras cosas divertidas que surgieron durante el desarrollo, como la instructora de Treehouse Laura Coronel escribiendo un script automatizado para interactuar con la interfaz de usuario y alternar las luces del árbol 100 veces en un minuto. El hecho de que la infraestructura de Adalo manejara ese tipo de interacción rápida sin ni siquiera respirar habla de la confiabilidad de la plataforma, incluso para proyectos que existen únicamente para molestar a su cónyuge durante las vacaciones.
Preguntas frecuentes
| Pregunta | Respuesta |
|---|---|
| ¿Por qué elegir Adalo sobre otras soluciones de construcción de aplicaciones? | Adalo es un constructor de aplicaciones impulsado por IA que crea verdaderas aplicaciones nativas de iOS y Android a partir de una única base de código. A diferencia de los envoltorios web, compila a código nativo y publica directamente en la App Store de Apple y Google Play Store, manejando automáticamente la parte más difícil de lanzar una aplicación. Con registros de bases de datos ilimitados en planes pagos y sin cargos basados en uso, puede construir y escalar sin costos inesperados. |
| ¿Cuál es la forma más rápida de construir y publicar una aplicación en la App Store? | La interfaz de arrastrar y soltar de Adalo y la creación asistida por IA te permiten pasar de la idea a la aplicación publicada en días en lugar de meses. La plataforma maneja el complejo proceso de envío a la App Store—certificados, perfiles de aprovisionamiento y directrices de la tienda—para que puedas enfocarte en las características de tu aplicación en lugar de luchar contra los requisitos de Apple. |
| ¿Puedo integrar fácilmente APIs externas y dispositivos del hogar inteligente con Adalo? | Sí, Adalo hace que sea simple vincular llamadas de API a acciones del usuario como clics de botón a través de un asistente web directo. Puedes conectar a servicios como DreamFactory, APIs personalizadas de Flask o cualquier endpoint REST con encabezados HTTP seguros—sin necesidad de codificación. |
| ¿Cómo agrego acciones de botón e interacciones de usuario en Adalo? | Agregar acciones de botón es increíblemente fácil—simplemente agregas una 'acción' a cualquier botón y especificas qué evento la desencadena. Puedes definir múltiples acciones por botón, como hacer una llamada de API y actualizar un registro de base de datos simultáneamente. Esto hace que crear aplicaciones interactivas con funcionalidad del mundo real sea directo incluso sin experiencia en codificación. |
| ¿Puedo almacenar y rastrear datos en mi aplicación de Adalo? | Sí, Adalo incluye una función integrada de Colecciones que te permite crear tablas de base de datos para almacenar y rastrear datos. Puedes configurar fácilmente colecciones con campos personalizados, marcas de tiempo y relaciones, luego exportar datos cuando sea necesario. Los planes pagos incluyen registros de base de datos ilimitados, así que nunca alcanzarás límites de almacenamiento. |
| ¿Cómo inscribo videos de YouTube o transmisiones en vivo en mi aplicación de Adalo? | Adalo ofrece componentes del mercado incluyendo un componente de YouTube que hace que insertar videos sea increíblemente simple. Solo agregas el componente del mercado de YouTube a tu pantalla, pegas la URL de tu video o transmisión en vivo, y funciona inmediatamente—sin necesidad de codificación personalizada. |
| ¿Necesito habilidades de diseño para crear una aplicación con aspecto profesional con Adalo? | No, no necesitas habilidades de diseño para crear una aplicación que se vea muy bien. La plataforma incluye capacidades de tematización y componentes precompilados que te ayudan a crear interfaces pulidas. También puedes usar herramientas de IA como DALL-E para generar iconos y gráficos personalizados de la aplicación. |
| ¿Cuánto cuesta crear una aplicación de control de IoT con Adalo? | Los planes pagos de Adalo comienzan en $36/mes con uso ilimitado y sin límites de registros. Esto incluye la capacidad de publicar tanto en la App Store de Apple como en Google Play Store. Compara esto con alternativas como Bubble ($59/mes con cargos basados en uso) o FlutterFlow ($70/mes por usuario, más costos separados de base de datos). |
| ¿Puede Adalo manejar alto tráfico e interacciones rápidas del usuario? | Sí, desde la revisión de infraestructura de Adalo 3.0 a finales de 2026, la plataforma funciona 3-4 veces más rápido con infraestructura modular que se escala para servir aplicaciones con millones de usuarios activos mensuales. La arquitectura mantiene el rendimiento incluso bajo interacciones rápidas. |
| ¿Qué características de IA ofrece Adalo para la creación de aplicaciones? | Adalo actualmente ofrece Magic Start (genera fundaciones de aplicaciones completas a partir de descripciones) y Magic Add (agrega características a partir de solicitudes en lenguaje natural). El próximo AI Builder, previsto para principios de 2026, permitirá la creación y edición de aplicaciones completas basadas en indicaciones durante todo el proceso de desarrollo. |










