https://a.storyblok.com/f/270183/1368x665/3972a482c9/26mar_dev-blog_android-apps-native-php.jpg

Ciência Estranha: Criando aplicativos para Android com o NativePHP

Publicado em March 31, 2026

Tempo de leitura: 10 minutos

Parece que estou preso em um ciclo no momento, e esse ciclo consiste em falar sobre inovações no PHP. Uma das minhas maiores frustrações é não conseguir acompanhar bem as novidades que surgem no PHP devido ao ritmo acelerado de sua evolução.

Mas estou me atualizando. Estou assistindo ao lançamento do NativePHP na Laracon US 2023 foi o suficiente para me deixar intrigado, mas acho que, naquela época, ainda não tinha muita certeza, naqueles estágios iniciais, de quão popular ele se tornaria.

Avançando para 2026, no início do ano, os criadores do NativePHP Simon Hamp e Shane Rosenthal apresentaram uma prévia do ano que se iniciava. Fico impressionado ao saber que o NativePHP será anunciado como gratuito na Laracon Índia daqui a um mês. Depois, terei a chance de ver o novo processo de compilação usando o aplicativo aplicativo Jump. A demonstração do Jump e, em seguida, do Bifrost PaaS tem tantos recursos que mal consigo acompanhar. Em seguida, vem Mimi, um IDE com IA para NativePHP.

Neste artigo, vamos seguir um tutorial; vamos programar um aplicativo clássico de tarefas, com um recurso bacana que envia um SMS para um dispositivo escolhido por meio da Messages API da Vonage. Em seguida, o NativePHP irá compilá-lo, importar o pacote por meio de suas ferramentas e executar o aplicativo no Android.

Espere aí, o que é o NativePHP? Uma entrevista com seus criadores

O NativePHP foi projetado para utilizar aplicativos Laravel e compilá-las para que sejam executadas nativamente nos dispositivos de destino: Windows, Linux, macOS, Android e iOS. O projeto passou por uma evolução gradual de recursos, então achei que seria melhor fazer algumas perguntas aos seus criadores para que pudéssemos saber mais por meio de suas próprias palavras.

Photograph of Shane and SimonShane and Simon, NativePHP's creators

Como surgiu a ideia do NativePHP e como ela evoluiu até se tornar o que é hoje?

O NativePHP começou originalmente como um wrapper em torno do Electron para aplicativos de desktop. Vimos desenvolvendo isso há mais de três anos (Mac, Linux, Windows). Em 2024, Simon decifrou o código e compilou PHP para iOS, permitindo que usássemos código PHP no dispositivo, de forma nativa. Logo depois, Shane fez o mesmo no Android, e desde então temos expandido os limites.

No Desktop, usamos binários PHP compilados estaticamente e (por enquanto) o servidor web integrado do PHP para permitir a comunicação com o shell do Electron. Mas isso não funciona em dispositivos móveis, especialmente no iOS. Não é possível ter aplicativos com vários processos em segundo plano em execução ou iniciando servidores web sempre que se quiser.

Em uma configuração normal de servidor web, o PHP geralmente é compilado dinamicamente, o que permite que extensões sejam carregadas e descarregadas em tempo de execução; porém, embora isso seja altamente configurável, é mais complexo, o que dificulta a distribuição do mecanismo do PHP.

Binários estáticos significam que você não precisa “instalar” ou “configurar” o PHP; basta distribuir um único executável para a plataforma em questão e ele funcionará exatamente como foi compilado. Quaisquer extensões necessárias precisam ser compiladas junto, por isso não é tão fácil fazer alterações, mas, uma vez compilado para a plataforma relevante, tudo simplesmente funciona. O PHP até ganha um pequeno aumento de desempenho com isso, pois não precisa realizar algumas verificações que podem ser mais lentas ao carregar bibliotecas dinâmicas.

Mas a grande descoberta veio ao perceber que — em sua forma mais simples — o PHP (o mecanismo) é apenas um analisador. Ele foi criado especificamente para analisar código PHP — e é realmente muito bom nisso. Quem diria!? É apenas um interpretador muito bom e muito rápido, capaz de ler e processar arquivos PHP com grande rapidez.

Normalmente, criamos frameworks web com isso, mas não há nada no PHP que obrigue seu uso exclusivamente nesse contexto. Na verdade, há muitos anos o PHP tem sido uma excelente ferramenta de CLI, e muitos aplicativos contam com seu robusto suporte à CLI.

No entanto, uma característica pouco conhecida do PHP é que ele também pode ser compilado como uma biblioteca C incorporável, o que significa que é possível incluir o mecanismo do PHP em qualquer outro aplicativo. Depois de entender esse detalhe técnico, conseguimos compilar o PHP em nossos aplicativos shell em Swift e Java/Kotlin e fazê-los executar um aplicativo Laravel incorporado.

Graças a uma extensão PHP personalizada e muito leve, que adiciona algumas novas funções globais do PHP, ao serem executados no iOS e no Android, seus scripts PHP têm acesso total aos recursos do dispositivo.

Isso significa que agora você pode criar Applications móveis nativos multiplataforma, totalmente distribuíveis e com prioridade para uso offline, usando PHP e Laravel, além de todas as outras ferramentas com as quais você está acostumado no mundo do desenvolvimento web.

E isso é só o começo!

Na Laracon Índia 2026, foi anunciado que o NativePHP seria gratuito. Como vocês conseguiram isso?

Anunciamos um monte de novidades! A mais importante é que o núcleo do NativePHP for Mobile agora é totalmente gratuito e de código aberto, de modo que qualquer pessoa pode usá-lo para desenvolver aplicativos móveis para iOS e Android. Estamos chamando-o de NativePHP Air.

Outro aspecto importante disso é os plug-ins. Abrimos a arquitetura para permitir que qualquer pessoa crie o que quiser. E você realmente pode aproveitar qualquer recursos nativos do dispositivo. Temos alguns plug-ins premium de desenvolvimento próprio que, esperamos, ajudem a financiar o projeto (mas eles não são, de forma alguma, obrigatórios). A maioria dos plug-ins também é gratuita e de código aberto, e temos planos de desenvolver muitos, muitos outros.

Também temos um Mercado de Plug-ins para permitir que desenvolvedores terceirizados compartilhem seus próprios plug-ins e, nas próximas semanas, disponibilizaremos a possibilidade de que desenvolvedores terceirizados vendam seus próprios plug-ins premium por meio do nosso marketplace.

Desde o início, queríamos tornar o NativePHP gratuito, mas, na época, contávamos apenas com o produto básico, então não haveria como financiar seu desenvolvimento. Graças à decisão de torná-lo um produto premium logo no início, conseguimos levantar capital suficiente para desenvolver outras ofertas, especificamente o Bifrost.

Com o sucesso das assinaturas do Bifrost, aliado aos nossos plugins premium, conseguimos dar o salto para tornar o núcleo gratuito muito mais cedo do que havíamos sonhado inicialmente. Esperamos que a comunidade continue a nos apoiar com esses outros produtos, para ajudar a compensar os custos de desenvolvimento e manutenção das ferramentas gratuitas.

Você poderia explicar a diferença entre o NativePHP e o Bifrost?

O NativePHP é um framework, assim como o Laravel; o Bifrost é um serviço SaaS, mais parecido com o Laravel Forge ou o Laravel Cloud. O Bifrost é uma plataforma baseada na nuvem que facilita o processo de compilação de seus aplicativos para várias plataformas em paralelo e, em seguida, a publicação dessas versões nas lojas de aplicativos.

Parte dos nossos anúncios na Índia também se referia aos recursos do Bifrost: Jump e Mimi.

Jump é um aplicativo nativo gratuito que você instala no seu celular (compatível com iOS e Android) e que permite implantar seus aplicativos NativePHP diretamente no seu celular a partir da sua máquina de desenvolvimento (ou dos seus projetos do Bifrost), sem a necessidade de compilação ou provisionamento. Você não precisa do Xcode nem do Android Studio. Com o Jump em execução no seu dispositivo e o NativePHP Air instalado no seu aplicativo Laravel, basta um único comando para que seu aplicativo comece a funcionar no seu celular.

Mimi é a peça final do quebra-cabeça, permitindo que você desenvolva aplicativos sem precisar de nenhum ambiente de desenvolvimento local. Utilizando modelos de IA agentica de última geração, que configuramos especificamente para funcionar com o NativePHP, possibilitamos que você desenvolva seus aplicativos mais rapidamente do que nunca. E, como faz parte do Bifrost, você pode deixá-las prontas para a loja de aplicativos em questão de minutos.

Estamos nos empenhando bastante no Bifrost e temos muitos outros recursos planejados para o final deste ano.

Quais são os recursos que estão por vir e que mais te deixam animado?

(Shane) No topo da minha lista está a criação de uma interface de usuário totalmente nativa. Analisamos nossos concorrentes (Meta e Google) e algumas das estratégias que eles implementaram, e estamos totalmente convencidos de que podemos oferecer uma solução pelo menos tão boa quanto (se não um pouco melhor), voltada para o desenvolvedor Laravel/PHP.

(Simon) Estou muito animado para me aprofundar no desempenho do NativePHP. Ele já é uma opção sólida para criar aplicativos móveis incríveis, mas queremos torná-lo o melhor opção. Já temos alguns PoCs funcionais para coisas como multithreading, tarefas em segundo plano e paralelização. Queremos apenas continuar ultrapassando os limites e fazendo coisas que as pessoas dizem que não podem ou não devem ser feitas.

Também estou animado para trazer todos os avanços que fizemos na área de dispositivos móveis de volta para a área de computadores de mesa e, possivelmente, nos livrarmos completamente do Electron. Assim, poderíamos acabar tendo uma ferramenta verdadeiramente multiplataforma para aplicativos web e nativos.

Criação de um aplicativo de tarefas no Laravel com notificações por SMS

Tenho um dispositivo Android e vou criar um aplicativo de tarefas. No entanto, para dar um toque a mais de funcionalidade, quero que ele tenha, em primeiro lugar, o estilo do MaterialUIe também que envie um SMS por meio da Messages API sempre que um item for marcado como concluído.

Fiz isso em Claude & Cursor usando Laravel Boost — na maior parte do tempo (ele realmente teve dificuldades com o contêiner de serviços ao usar injeção de dependência para o cliente PHP do Vonage), tudo correu bem. Nada muito complicado — toda a autenticação foi removida, criei uma entidade ToDo no Eloquente o Livewire cuidou do estado das tarefas no front-end.

Você pode encontrar o código-fonte do aplicativo aqui

Screenshot showing my mobile application with the ability to add, edit, and delete tasks.Quick and dirty UI for a classic mobile appÓtimo. Dá uma olhada você mesmo.

Pré-requisitos

  • git

  • PHP 8.3 ou superior

  • Node 23+ e npm

  • Compositor

  • Um account da Vonage

Configurando o aplicativo web

  1. Baixe o repositório para o seu computador: https://github.com/Vonage-Community/blog-messages_native_php

  2. Instalar dependências: composer install

  3. Executar migrações: php artisan migrate

  4. Execute o npm: npm i

  5. Na linha de comando, execute o Vite com npm run dev

  6. Copie o exemplo env para torná-lo interativo env: cp .env.example .env

  7. Adicione suas credenciais da Vonage ao .env arquivo.

Para concluir esta etapa, você precisará criar um novo aplicativo no Painel da Vonage, adicionar o recurso da Messages API ao aplicativo (você pode inserir dados fictícios na seção de webhooks, já que esse recurso não será utilizado) e mover o arquivo baixado private.key para a raiz do código do seu projeto. Anote o ID do aplicativo que foi criado.

  • Para criar um aplicativo, acesse a página “Criar um aplicativo” no Painel da Vonage e defina um Nome para a sua Application.

  • Se você pretende usar uma API que utilize Webhooks, precisará de uma chave privada. Clique em “Gerar chave pública e privada”; o download deve iniciar automaticamente. Guarde-a em local seguro; essa chave não poderá ser baixada novamente em caso de perda. Ela seguirá a convenção de nomenclatura private_<seu ID de aplicativo>.key. Agora, essa chave pode ser usada para autenticar chamadas de API. Observação: sua chave não funcionará até que seu aplicativo seja salvo.

  • Escolha os recursos de que você precisa (por exemplo, Voice, Mensagens, RTC etc.) e forneça os webhooks necessários (por exemplo, URLs de eventos, URLs de resposta ou URLs de mensagens recebidas). Esses itens serão descritos no tutorial.

  • Para salvar e implantar, clique em “Gerar novo aplicativo” para finalizar a configuração. Seu aplicativo já está pronto para ser usado com as APIs da Vonage.

Você pode, então, inserir esses valores no .env arquivo, por exemplo:

VONAGE_APPLICATION_ID="<YOUR_APPLICATION_ID_HERE>"
VONAGE_PRIVATE_KEY_PATH="./private.key"
VONAGE_TO="<YOUR-NUMBER-HERE>"

Você precisará hospedar seu aplicativo. Recomendo usar Laravel Herd. Você pode encontrar as instruções de instalação aqui. Como alternativa, você pode executar o servidor PHP embutido a partir da linha de comando: php artisan serve

Agora você já deve ter seu aplicativo básico funcionando. Agora é hora de…

Executando o aplicativo no Android com o NativePHP Jump

São apenas quatro etapas para fazer isso funcionar no Android. Quatro etapas! É isso aí. Vamos lá:

  1. No seu dispositivo Android, baixe o aplicativo Bifrost Jump. Ele funciona como um wrapper capaz de carregar um aplicativo desenvolvido em NativePHP a partir de um código QR.

  2. Instale o NativePHP com o Composer: composer require nativephp/mobile

  3. Crie seu aplicativo para o aplicativo Jump: php artisan native:jump

  4. Você verá automaticamente um navegador aberto exibindo um código QR. Abra o aplicativo Jump no seu celular e escaneie o código QR.

Me holding up a four-step NativePHP appR U Being Serious Right Now?Agora, o aplicativo móvel ToDo está pronto para ser usado. É hora de marcar uma tarefa como concluída e ver o que acontece…

Envio de SMS no Android usando a Messages API do Vonage

Screenshot of my phone with messages sent from my NativePHP appSMS delivered Natively from Android via. VonageRecebemos um SMS no celular ao marcar uma tarefa como concluída no aplicativo! Normalmente, não sou muito a favor da ideia de que “simplesmente funciona”, especialmente quando se trata de escrever sobre a Experiência do Desenvolvedor, onde costuma haver uma infinidade de conhecimentos pressupostos ou lacunas. Mas isso simplesmente… funcionou simplesmente funcionou.

E agora?

Agora que você viu como é fácil criar aplicativos móveis de verdade com PHP, o que você vai criar? Tenho pensado em implementar nossas  Soluções Baseadas em Rede, como, por exemplo, usar a API do Identity Insights como demonstração, mas também estou ansioso para dar uma olhada no marketplace de plug-ins do NativePHP para ver quais recursos os desenvolvedores móveis podem usar. E sim, “desenvolvedores móveis” é a expressão que uso aqui, não “desenvolvedores PHP”. Porque: isso é uma revolução.

Tem alguma dúvida ou quer compartilhar o que está criando?

Fique conectado e acompanhe as últimas notícias, dicas e eventos para desenvolvedores.

Compartilhar:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondePromotor Sênior de Desenvolvimento em PHP

Sou ator formado, com uma dissertação sobre stand-up comedy, e comecei a me dedicar ao desenvolvimento em PHP por meio dos encontros da comunidade. Você pode me encontrar dando palestras e escrevendo sobre tecnologia, ou ouvindo e comprando discos curiosos da minha coleção de vinil.