Elfos Ruins: Controlando sua Árvore de Natal com Adalo, DreamFactory, Flask e Fita Adesiva

Elfos Ruins: Controlando sua Árvore de Natal com Adalo, DreamFactory, Flask e Fita Adesiva

Depois de passar minha carreira escrevendo software e frequentemente lutando bastante com design, desde que me juntei ao time do Adalo há alguns meses, fui praticamente impressionado com o quão fácil é criar e conectar interfaces de usuário usando o construtor de apps do Adalo. Adalo é um construtor de apps sem código para web apps orientados a banco de dados e apps nativos para iOS e Android — uma versão em todas as três plataformas, publicada na Apple App Store e Google Play. Para ser honesto, sempre pensei que construtores de apps sem código eram limitados a criar apps de estilo CRUD (criar, recuperar, atualizar, deletar) e painéis de controle bastante simplistas.

Com o Natal se aproximando rapidamente, e sendo o tipo de nerd que gosta de automatizar coisas sem motivo particular, há alguns dias comecei a me perguntar se seria possível criar um app do Adalo que pudesse controlar as luzes da árvore de Natal da minha família. Elas já estão conectadas a uma tomada inteligente e ao dispositivo Alexa da nossa cozinha e, portanto, podem ser ligadas e desligadas com o comando "Alexa, ligar a árvore de Natal", mas sabe qual é melhor do que uma integração de automação residencial? Duas. O que se segue é um resumo da minha jornada para criar e lançar um app mobile de gerenciamento de luzes da árvore de Natal usando Adalo, fita adesiva e julgamento equivocado.

O app estará disponível por alguns dias começando segunda-feira, 16 de dezembro, e pode estar periodicamente offline devido a eu não estar em casa (com medo de incêndio), minha esposa me ameaçando de morte por tornar isso público, ou os óbvios problemas técnicos que podem surgir. Confira em https://xmas.wjgilmore.com.

Apresentando o App

O app é criativamente chamado de App da Árvore XMAS do Adalo. Consiste em algum tema visual, dois botões para alternar as luzes de Natal e uma transmissão ao vivo do YouTube para você poder assistir à ação em tempo real. Mas aqueles botões, oh que botões são praticamente irresistíveis. Você simplesmente não consegue deixar de pressioná-los e ver aquela árvore ou se iluminar em resposta ou imaginar minha esposa gemendo depois de vê-la apagar mais uma vez.

Ontem à noite estávamos assistindo à série do Apple Silo (temporada 2, assista, é incrível), e me encontrei em uma luta de morte com algum invasor digital desconhecido. Acho que sei quem foi (Allison não pense que não sei que foi você!), mas de qualquer forma o terrorista da árvore a desligaria. E eu a ligaria de volta. Alguns momentos depois o Grinch estava de volta e as luzes estavam apagadas novamente. E eu novamente valentemente contra-atacaria, iluminando a sala de estar uma vez mais. Dizem que heróis não nascem mas são forjados em ouropel, e sou a prova viva disso.

Aposto que você está babando na ideia de pressionar aqueles botões. Bem, mãos à obra. Vá para https://xmas.wjgilmore.com e dê uma pressionada neles. AVISO: Não tenho ideia de quanto tempo isso ficará disponível antes de ser derrubado pelo meu ISP, um erro de programação, ou francamente pela minha esposa.

Interface do Aplicativo Adalo Christmas Tree
Meu App de Árvore de Natal

Por que o Adalo Funciona para Apps de Casa Inteligente

Construir um app de controle IoT pode parecer complexo, mas o construtor visual do Adalo torna surpreendentemente simples. A plataforma faz o trabalho pesado — compilação de apps nativos, integrações de API e gerenciamento de banco de dados — enquanto você se concentra nas partes divertidas, como projetar botões que controlam sua árvore de Natal. Com mais de 3 milhões de aplicativos criados na plataforma, há um histórico comprovado para projetos que variam de utilitários simples a aplicações comerciais complexas.

O que torna o Adalo particularmente adequado para este tipo de projeto é a combinação de integração fácil de API e a capacidade de publicar diretamente nas lojas de apps. Você não está construindo um wrapper web que se sente lento em dispositivos móveis — você está criando um verdadeiro app nativo que responde instantaneamente quando alguém do outro lado do mundo decide mexer com suas decorações de feriado.

Falando com a Tomada Inteligente

Porque em 2026 não podemos nos dar ao luxo de nos abaixarmos para plugar e desplugar uma série de luzes, usei uma tomada inteligente TP-Link KP115 para controlar as luzes via Alexa. Este é um processo bastante direto, mas que eu saiba não há forma oficial de interagir com a tomada fora do Alexa e do aplicativo horrível do fabricante. GitHub para o resgate! Como esperado, um programador gentil decodificou o protocolo de comunicação da tomada e o empacotou em um conveniente pacote Python chamado python-kasa. Para instalar python-kasa execute:

pip install python-kasa

Uma vez instalado, você pode começar a interrogar sua rede local de dispositivos suportados usando o discover comando:

kasa discover

Portanto, não apenas você pode facilmente identificar o endereço IP atribuído a cada dispositivo, você também pode determinar se está ligado, há quanto tempo está no estado ligado ou desligado, e quanto poder consumiu tanto para o mês atual quanto desde o último reinicialização. Bem legal!

Assim que você souber o endereço IP do dispositivo, é fácil ligá-lo e desligá-lo:

kasa --host 192.168.1.100 on
kasa --host 192.168.1.100 off

Criando uma API

Meu objetivo final era controlar esta tomada via um app mobile do Adalo que poderia ser concebivelmente acessado de qualquer lugar do mundo, incluindo o Polo Norte. Isso significa abrir uma conexão de Internet da minha rede doméstica para o mundo exterior. Deixe-me ser claro: existem maneiras certas de fazer isso e maneiras erradas. A maneira que estou prestes a mostrar é muito, muito errada, e meu provedor de serviços de internet doméstico provavelmente desligará nossa conexão por fazê-lo desta forma.

A versão mais simples dessa API precisa por minha estimativa de três endpoints: status, on e off. O endpoint de status nos diz se a tomada está ligada ou desligada, enquanto os endpoints on e off são auto-explicativos. Usei Flask para criar a API e achei muito fácil de usar. Para criar um endpoint você apenas define a URI da rota e então o método que segue imediatamente é executado quando esse endpoint é solicitado.

Acredite ou não, isso é suficiente para criar uma API Flask funcional:

from flask import Flask
app = Flask(__name__)

@app.route('/status')

Salve este arquivo como status.py ou como quiser, e então inicie o servidor Flask assim:

flask —app status run

Como rotas Flask são por padrão solicitações GET, você pode simplesmente abrir seu navegador e ir para http://127.0.0.1:5000/status para testá-lo. Presumindo que não haja erros de sintaxe, você deverá ver a string hello exibida no navegador.

No caso do meu projeto, precisei dos endpoints da API executarem comandos python-kasa, e então usei o módulo subprocess do Python para executar comandos shell. Para este projeto posso me dar ao luxo de jogar as coisas um pouco ao sabor do vento, porém se você jamais tentar algo similar e precisar passar parâmetros para o comando shell é criticamente importante que você valide os dados antes de fazer isso. Aqui está o script Flask completo usado para este projeto:

from flask import Flask
import subprocess

app = Flask(name)

@app.route('/status')

@app.route('/on')

@app.route('/off')

Falando com o Mundo Exterior

Você provavelmente notou que a API Flask está em execução em localhost, o que significa que não é acessível ao mundo exterior. Para tornar essa API acessível em outro lugar, uso um serviço chamado ngrok. ngrok existe há tanto tempo quanto posso me lembrar, e resumindo é que expõe um servidor de desenvolvimento local à internet (entre muitas outras coisas). Usando ngrok podemos expor a porta 5000 do meu servidor local para um subdomínio ngrok.app tão fácil quanto executar este comando:

ngrok http 5000

Agora posso acessar meu endpoint ngrok de qualquer rede e ele encaminhará as solicitações de e para minha API!

Encaminhando as Solicitações Através do DreamFactory

Por motivos de segurança e flexibilidade, encaminhei o endpoint ngrok através do DreamFactory. O DreamFactory é mais conhecido como um invólucro de banco de dados capaz de expor rapidamente uma API REST de nível empresarial, mas pode fazer toda sorte de outras coisas interessantes, como estender os recursos de APIs existentes. Usei o conector de serviço com script do DreamFactory porque achei que poderia ser divertido eventualmente integrar outros recursos ao aplicativo, como a temperatura atual no Pólo Norte. Fazer isso é incrivelmente fácil usando DreamFactory porque posso simplesmente adicionar novos endpoints ao meu serviço com script.

O conector de serviços com script do DreamFactory suporta as linguagens PHP, Python e NodeJS, e como estou mais familiarizado com a API baseada em PHP da plataforma, optei por essa:

$api = $platform[‘api’];
$get = $api->get;
$post = $api->post;

$api->get('/status', function() {https://your-ngrok-url.ngrok.app/status');

$api->get('/on', function() {https://your-ngrok-url.ngrok.app/on');

$api->get('/off', function() {https://your-ngrok-url.ngrok.app/off');

$api->get('/temperature', function() {

Apenas para fins de ilustração, ampliei o que é exposto através da API Flask adicionando um /temperature endpoint que, quando solicitado, retornará "Freezing".

Após salvar essas alterações, adicionei controle de acesso baseado em funções à API DreamFactory e gerei uma chave de API. Os endpoints da API DreamFactory agora são acessíveis apenas fornecendo a chave de API que é fornecida por um cabeçalho HTTP seguro.

Integrando a API e o Aplicativo Adalo

Um dos meus recursos favoritos do construtor Adalo é como é fácil vincular eventos a ações do usuário. Por exemplo, ao clicar no botão "Ligar árvore", uma chamada de API para o /on endpoint precisa ocorrer. Isso é realizado tão facilmente quanto adicionar uma "ação" ao botão e indicar qual tipo de evento precisa ocorrer para que essa ação seja executada. Além disso, você pode definir várias ações conforme mostrado nesta captura de tela (tirada do aplicativo real):

Configuração de ação de botão Adalo
Vinculando eventos a cliques de botão

A chamada de API é enviada para o endpoint DreamFactory mencionado anteriormente. Novamente, a chamada é protegida passando uma chave de API através do cabeçalho HTTP. Definir essa chamada é realizado através de um assistente web simples, uma etapa do qual é mostrada na seguinte captura de tela:

Assistente de configuração de chamada de API Adalo
Definindo uma chamada de API

Essa abordagem visual para integração de API é o que faz a plataforma Adalo parecer tão acessível. Você não está escrevendo solicitações de busca ou depurando erros de CORS — você está clicando através de um assistente que gerencia a complexidade técnica. As melhorias de velocidade de 3-4x desde a revisão da infraestrutura Adalo 3.0 significam que essas chamadas de API são executadas rapidamente, mantendo o aplicativo responsivo mesmo ao controlar hardware do outro lado do mundo.

Contando a Frequência de Alternância de Luz

Achei divertido acompanhar o número de vezes que os usuários acionaram as luzes. Eu poderia fazer isso dentro da API Flask local usando SQLite, mas achei que fazia sentido manter essa contagem mais próxima do aplicativo e, portanto, usei o recurso Coleções do Adalo.

Criei uma única coleção chamada counts consistindo em quatro campos: ID (a chave primária auto-incrementada usual), nome (que armazena as strings on e off), e os carimbos de data/hora usuais. As ressalvas usuais se aplicam aqui, eu poderia ter configurado isso um pouco mais eficientemente, mas estamos apenas arrasando o projeto. Aqui está um exemplo de alguns registros armazenados na tabela:

Visualização de dados de Coleções Adalo
Rastreando as vezes que as luzes foram ligadas e desligadas

Uma coisa que vale a pena notar: os planos pagos do Adalo agora incluem registros de banco de dados ilimitados, o que significa que não preciso me preocupar com este projeto de Natal tolo atingir nenhum limite de armazenamento. Seja rastreando algumas centenas de alternâncias de luz ou escalando para milhões de interações de usuários, a plataforma lida com isso sem taxas adicionais ou limites de registros.

Gráficos dos Resultados

Meu amigo Nic do DreamFactory sugeriu criar um gráfico mostrando a frequência de alternância. Eu não queria escrever nenhum código personalizado para implementar isso, porém é trivial exportar dados de uma coleção Adalo e então fiz isso e enviei junto com um gráfico de exemplo para o ChatGPT:

Prompt de geração de gráfico ChatGPT
Gerando um gráfico com ChatGPT

Sim, sempre sou educado ao falar com IA atualmente. Por minha parte, boas-vindas e aprecia nossos soberanos robôs. Não gostei de como o gráfico ficou, então após algumas tentativas a mais, pedi para criar um gráfico de pizza:

Gráfico de pizza mostrando distribuição de alternância ligado/desligado
Parece que temos muitos simpáticos aos elfos

Configurando a Transmissão ao Vivo do YouTube

Configurar a transmissão ao vivo do YouTube foi realmente direto; usei o componente de marketplace do YouTubedo Adalo, colei a URL de transmissão ao vivo e funcionou. Além disso, consigo assistir ao status da transmissão ao vivo usando esta interface divertida do YouTube Studio:

Interface de livestream do YouTube Studio

O ecossistema de componentes de marketplace é um desses recursos que economiza horas de tempo de desenvolvimento. Em vez de descobrir a API de incorporação do YouTube e lidar com dimensionamento responsivo em diferentes dispositivos, você apenas arrasta, solta e configura. O componente lida com o resto e, como o Adalo compila para código nativo, a reprodução de vídeo funciona perfeitamente em iOS e Android.

Criando o Ícone do Aplicativo

Não tenho nenhuma habilidade de design, então apenas confiei em DALL-E para gerar um para mim. Usei o prompt "Por favor, crie um ícone 1024 x 1024 px para um aplicativo móvel usado para controlar as luzes da árvore de Natal". DALL-E ignorou as dimensões e criou as duas opções encontradas na captura de tela:

Opções de ícone de aplicativo geradas por DALL-E
Usando DALL-E para gerar um ícone de aplicativo

No interesse do tempo, selecionei o primeiro ícone que criou, baixei para meu Mac e usei o recurso pouco conhecido de remover fundo do macOS para remover o gradiente de fundo:

Recurso de remoção de fundo do macOS
Removendo fundo de uma imagem com macOS

Ada, o construtor de IA do Adalo, permite que você descreva o que deseja e gera seu aplicativo. Magic Start cria fundações de aplicativos completas a partir de uma descrição, enquanto Magic Add adiciona recursos através de linguagem natural.

Essa combinação de ativos gerados por IA e do construtor visual do Adalo representa a abordagem moderna para desenvolvimento de aplicativos. Você não precisa ser um designer ou desenvolvedor para criar algo funcional e divertido. Os recursos de IA do Construtor da plataforma levarão isso ainda mais longe — início de 2026 promete criação de aplicativos baseada em prompts onde você pode descrever o que deseja e fazer a plataforma gerar telas, lógica e estruturas de banco de dados automaticamente através de recursos como Início Mágico e Adicionar Magicamente.

Publicação e Desempenho

Um aspecto deste projeto que merece menção é como o Adalo lida perfeitamente com o caminho de uma ideia para um aplicativo publicado. A plataforma publica diretamente na Apple App Store e Google Play Store a partir de uma única base de código. Esta é genuinamente a parte mais difícil de lançar um aplicativo—lidar com certificados, perfis de provisionamento e diretrizes da loja—e o Adalo faz isso automaticamente.

O desempenho do aplicativo foi sólido durante este experimento. Desde a revisão da infraestrutura do Adalo 3.0 no final de 2025, a plataforma funciona 3-4 vezes mais rápido do que antes, com infraestrutura modular que escala de acordo com as necessidades do seu aplicativo. Para um projeto natalino bobo, isso pode parecer excessivo, mas significa que os cliques de botão são registrados instantaneamente e o livestream é carregado sem atraso, mesmo quando várias pessoas estão disputando as luzes da árvore simultaneamente.

O preço do Adalo também torna projetos como este acessíveis. A partir de US$ 36/mês com uso ilimitado e sem limites de registros, você pode experimentar livremente sem se preocupar com choques na fatura causados por cobranças inesperadas. Compare isso com alternativas como Bubble (a partir de $69/mês com Unidades de Carga baseadas em uso e limites de registros) ou Glide (que nem mesmo suporta publicação na App Store), e a proposta de valor fica clara.

Conclusão

Este foi um projeto muito divertido que fez meus filhos e vizinhos rirem, e irritou minha esposa enormemente. Às vezes, os melhores projetos são aqueles que não têm propósito real além de gargalhar um pouco. Esperançosamente, quando você ler isto, minha casa não terá pegado fogo.

Talvez em um post posterior eu documente algumas das outras coisas engraçadas que surgiram durante o desenvolvimento, como Laura Coronel, instrutora do Treehouse escrevendo um script automatizado para interagir com a interface do usuário e alternar as luzes da árvore 100 vezes em um minuto. O fato de a infraestrutura do Adalo ter lidado com esse tipo de interação rápida sem esforço fala sobre a confiabilidade da plataforma—mesmo para projetos que existem puramente para irritar seu cônjuge durante as festas.

Perguntas Frequentes

Por que escolher Adalo em vez de outras soluções de construção de aplicativos?

Adalo é um construtor de aplicativos com inteligência artificial que cria verdadeiros aplicativos iOS e Android nativos a partir de uma única base de código. Ao contrário de wrappers da web, ele compila para código nativo e publica diretamente na Apple App Store e Google Play Store—manipulando automaticamente a parte mais difícil do lançamento de um aplicativo. Com registros de banco de dados ilimitados em planos pagos e sem cobranças baseadas em uso, você pode construir e escalar sem custos inesperados.

Qual é a forma mais rápida de construir e publicar um aplicativo na App Store?

A interface de arrastar e soltar do Adalo e a construção assistida por inteligência artificial permitem que você vá de uma ideia para um aplicativo publicado em dias em vez de meses. A plataforma lida com o complexo processo de envio da App Store—certificados, perfis de provisionamento e diretrizes da loja—para que você possa se concentrar nos recursos do seu aplicativo em vez de lutar contra os requisitos da Apple.

Posso integrar facilmente APIs externas e dispositivos de casa inteligente ao Adalo?

Sim, o Adalo facilita a vinculação de chamadas de API a ações do usuário como cliques de botão por meio de um assistente da web direto. Você pode se conectar a serviços como DreamFactory, APIs Flask personalizadas ou qualquer endpoint REST com cabeçalhos HTTP seguros—sem necessidade de codificação.

Como adiciono ações de botão e interações do usuário no Adalo?

Adicionar ações de botão é incrivelmente fácil—você simplesmente adiciona uma "ação" a qualquer botão e especifica qual evento a ativa. Você pode definir múltiplas ações por botão, como fazer uma chamada de API e atualizar um registro de banco de dados simultaneamente. Isso torna a criação de aplicativos interativos com funcionalidade do mundo real direta, mesmo sem experiência em codificação.

Posso armazenar e rastrear dados no meu aplicativo Adalo?

Sim, o Adalo inclui um recurso de Coleções integrado que permite criar tabelas de banco de dados para armazenar e rastrear dados. Você pode facilmente configurar coleções com campos personalizados, timestamps e relacionamentos, e depois exportar dados sempre que necessário. Os planos pagos incluem registros de banco de dados ilimitados, para que você nunca atinja limites de armazenamento.

Como incorporo vídeos do YouTube ou livestreams no meu aplicativo Adalo?

O Adalo oferece componentes do marketplace, incluindo um componente do YouTube que torna a incorporação de vídeos incrivelmente simples. Você apenas adiciona o componente do marketplace do YouTube à sua tela, cola a URL do seu vídeo ou livestream e funciona imediatamente—sem necessidade de codificação personalizada.

Preciso de habilidades de design para criar um aplicativo com aparência profissional com o Adalo?

Não, você não precisa de habilidades de design para criar um ótimo aplicativo. A plataforma inclui capacidades de tematização e componentes pré-construídos que ajudam você a criar interfaces polidas. Você também pode usar ferramentas de IA como DALL-E para gerar ícones de aplicativo e gráficos personalizados.

Quanto custa construir um aplicativo de controle de IoT com o Adalo?

Os planos pagos do Adalo começam em $36/mês com uso ilimitado e sem limites de registros. Isso inclui a capacidade de publicar na Apple App Store e Google Play Store. Compare isso com alternativas como Bubble ($69/mês com cobranças baseadas em uso) ou FlutterFlow ($70/mês por usuário, mais custos separados de banco de dados).

O Adalo pode lidar com alto tráfego e interações rápidas do usuário?

Sim, desde a revisão da infraestrutura do Adalo 3.0 no final de 2025, a plataforma funciona 3-4x mais rápido com infraestrutura modular que escala para servir aplicativos com milhões de usuários ativos mensais. A arquitetura mantém o desempenho mesmo sob interações rápidas.

Quais recursos de IA o Adalo oferece para construção de aplicativos?

O Adalo atualmente oferece Magic Start (gera fundações completas de aplicativos a partir de descrições) e Magic Add (adiciona recursos a partir de solicitações em linguagem natural). Os recursos de IA Builder, previstos para o início de 2026, permitirão a criação e edição completas baseadas em prompts em todo o processo de desenvolvimento.

Comece a Construir com um Modelo de Aplicativo

Construa seu aplicativo rapidamente com um de nossos modelos de aplicativo pré-fabricados

Comece a Construir sem código