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

Ciencia extraña: Creación de aplicaciones Android con NativePHP

Publicado el March 31, 2026

Tiempo de lectura: 10 minutos

Parece que estoy atrapado en un bucle en este momento, ese bucle es hablar de las innovaciones dentro de PHP. Uno de mis problemas es que no puedo mantenerme al día con las cosas nuevas que aparecen en PHP debido al ritmo de evolución.

Pero me estoy poniendo al día. Viendo el lanzamiento de NativePHP en Laracon US 2023 fue suficiente para levantar una ceja, pero creo que en ese momento, no estaba muy seguro en esas primeras etapas hasta qué punto se pondría de moda.

Avancemos hasta 2026 y, a principios de año, los creadores de NativePHP Simon Hamp y Shane Rosenthal adelantaron el año que viene. Me deja boquiabierto saber que NativePHP se anunciará como gratuito en Laracon India dentro de un mes. Luego veo el nuevo proceso de creación con su aplicación aplicación Jump. La demostración de Jump y luego el Bifrost PaaS tiene tantas características que no puedo seguir el ritmo. Luego viene Mimiun AI IDE para NativePHP.

En este artículo vamos a realizar un tutorial; vamos a codificar una aplicación clásica de tareas pendientes, con una pequeña función que envía un SMS al dispositivo elegido a través de la Mensajes API de Vonage. Entonces, NativePHP va a construirlo y tirar en el paquete a través de sus herramientas y ejecutar la aplicación en Android.

¿Qué es NativePHP? Entrevista con sus creadores

NativePHP está diseñado para tomar Laravel Applications y construirlos para ejecutar de forma nativa en los dispositivos de destino: Windows, Linux, MacOS, Android, iOS. Ha visto una evolución gradual de las características, así que pensé que probablemente sería mejor hacer a sus creadores algunas preguntas para que podamos escuchar más en sus propias palabras.

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

¿Cómo surgió la idea de NativePHP y cómo evolucionó hasta convertirse en lo que es ahora?

NativePHP comenzó originalmente como una envoltura alrededor de Electron para aplicaciones de escritorio. Hemos estado construyendo eso durante más de 3 años (Mac, Linux, Windows). En 2024, Simon descifró el código y compiló PHP para iOS para que podamos utilizar código PHP en el dispositivo, de forma nativa. Poco después, Shane hizo lo mismo en Android, y hemos estado empujando los límites desde entonces.

En el escritorio, utilizamos binarios PHP compilados estáticamente y (por ahora) el servidor web integrado de PHP para permitir la comunicación con el intérprete de comandos Electron. Pero eso no funciona en móviles, especialmente en iOS. No puedes tener aplicaciones con múltiples procesos en segundo plano ejecutándose o haciendo girar servidores web cuando quieras.

En una configuración normal de servidor web, PHP se suele compilar dinámicamente, lo que permite cargar y descargar extensiones en tiempo de ejecución, pero aunque esto es muy configurable, es más complejo, lo que dificulta la distribución del motor PHP.

Los binarios estáticos significan que no necesitas 'instalar' o 'configurar' PHP; puedes simplemente distribuir un único ejecutable para la plataforma dada y hacer que funcione de la forma en que fue compilado. Cualquier extensión que necesites tiene que ser compilada, así que no es tan fácil de cambiar, pero una vez que lo has compilado para la plataforma relevante, todo funciona. PHP incluso mejora un poco su rendimiento porque no necesita hacer algunas comprobaciones que pueden ser más lentas cuando se cargan bibliotecas dinámicas.

Pero el gran desbloqueo vino de darse cuenta de que - en su forma más simple - PHP (el motor) es sólo un analizador. Está diseñado para - y es realmente bueno en - analizar código PHP. ¿¡Quién lo iba a decir!? Es sólo un intérprete muy bueno y muy rápido que puede leer y procesar archivos PHP muy rápidamente.

Típicamente hacemos frameworks web de esto, pero no hay nada en PHP que lo obligue a ser usado sólo en ese contexto. De hecho, por muchos años, PHP ha sido una herramienta CLI perfectamente buena, y muchas aplicaciones confían en su robusto soporte CLI.

Una característica poco conocida de PHP, sin embargo, es que también se puede compilar como una biblioteca C integrable, lo que significa que puede incluir el motor PHP dentro de cualquier otra aplicación. Con este detalle técnico resuelto, hemos sido capaces de compilar PHP en nuestras aplicaciones Swift y Java/Kotlin y hacer que ejecuten una aplicación Laravel incrustada.

Gracias a una extensión PHP personalizada muy ligera que añade un par de nuevas funciones PHP globales, cuando se ejecutan en iOS y Android, tus scripts PHP tienen acceso completo a las funciones del dispositivo.

Esto significa que ahora puede crear aplicaciones móviles nativas, multiplataforma, totalmente distribuibles y orientadas primero al uso fuera de línea utilizando PHP y Laravel y todas las demás herramientas a las que está acostumbrado del mundo del desarrollo web.

Y eso es sólo el principio.

En Laracon India 2026, se anunció que NativePHP sería gratuito. Cómo son capaces de hacerlo?

¡Hemos anunciado un montón de cosas! La más importante es que el núcleo de NativePHP para móviles es ahora completamente libre y de código abiertopor lo que cualquiera puede utilizarlo para crear aplicaciones móviles para iOS y Android. Lo estamos llamando NativePHP Aire.

La otra gran pieza de esto es Plugins. Hemos abierto la arquitectura para que cualquiera pueda crear cualquier cosa. Y realmente se puede aprovechar cualquier funciones nativas del dispositivo. Tenemos algunos plugins premium que esperamos que ayuden a financiar el proyecto (pero no son en absoluto necesarios). La mayoría de los plugins también son gratuitos y de código abierto, y tenemos planes para crear muchos, muchos más.

También tenemos un Mercado de plugins para que desarrolladores externos puedan compartir sus propios plugins y, en las próximas semanas, habilitaremos la posibilidad de que desarrolladores externos puedan vender sus propios plugins premium a través de nuestro mercado también.

Desde el principio quisimos que NativePHP fuera gratuito, pero en aquel momento sólo teníamos el producto básico, así que no habría habido forma de financiar su desarrollo. Gracias a convertirlo en un producto premium desde el principio, pudimos reunir suficiente capital para desarrollar otras ofertas, en concreto Bifrost.

Con el éxito de las suscripciones a Bifrost, junto con nuestros plugins premium, hemos podido dar el salto a la gratuidad del núcleo mucho antes de lo que habíamos soñado en un principio. Esperamos que la comunidad siga apoyándonos con estos otros productos para ayudar a compensar el coste de desarrollo y mantenimiento de las herramientas gratuitas.

¿Puede explicar la diferencia entre NativePHP y Bifrost?

NativePHP es el framework, como Laravel; Bifrost es el SaaS, más parecido a Laravel Forge o Laravel Cloud. Bifrost es una plataforma basada en la nube que facilita el proceso de compilación de aplicaciones para varias plataformas en paralelo y la posterior publicación de las compilaciones en las tiendas de aplicaciones.

Parte de nuestros anuncios de la India también fueron características de Bifrost: Jump y Mimi.

Saltar es una aplicación nativa gratuita que instalas en tu teléfono (funciona para iOS y Android) y que te permite desplegar tus aplicaciones NativePHP directamente en tu teléfono desde tu máquina de desarrollo (o desde tus proyectos Bifrost) sin necesidad de compilar o aprovisionar. No necesitas Xcode o Android Studio en absoluto. Con Jump ejecutándose en su dispositivo y NativePHP Air instalado en su aplicación Laravel, es sólo un comando para que su aplicación se ejecute en su teléfono.

Mimi es la pieza final del rompecabezas, que le permite crear aplicaciones sin ningún tipo de entorno de desarrollo local. Utilizando modelos de IA agéntica de última generación que hemos configurado específicamente para trabajar con NativePHP, le permitimos crear sus aplicaciones más rápido que nunca. Y como forma parte de Bifrost, puede tenerlas listas para la tienda de aplicaciones en cuestión de minutos.

Nos estamos esforzando mucho en Bifrost y tenemos previstas muchas más funciones para finales de año.

¿Cuáles son las novedades que más le entusiasman?

(Shane) Lo primero en mi lista es ofrecer una interfaz de usuario nativa completa. Hemos observado a nuestros competidores (Meta y Google) y algunas de las estrategias que han implementado, y estamos plenamente convencidos de que podemos ofrecer una solución al menos igual de buena (si no ligeramente mejor), adaptada al desarrollador de Laravel/PHP.

(Simon) estoy realmente emocionado de sumergirme en el rendimiento de NativePHP. Ya es una opción sólida para la construcción de aplicaciones móviles increíbles, pero queremos que sea el mejor elección. Ya tenemos algunos PoCs de trabajo para cosas como multithreading, tareas en segundo plano, y la paralelización. Queremos seguir ampliando los límites y haciendo cosas que la gente dice que no se pueden o no se deben hacer.

También me entusiasma la idea de trasladar todos los avances que hemos logrado en el ámbito móvil al de los ordenadores de sobremesa y, potencialmente, deshacernos por completo de Electron. Entonces podríamos tener una herramienta multiplataforma para aplicaciones web y nativas.

Creación de una aplicación Laravel To-Do con notificaciones por SMS

Tengo un dispositivo Android, y va a ser una aplicación ToDo. Sin embargo, para añadir un poco de funcionalidad extra, quiero que primero tenga estilo con MaterialUIy también que envíe un SMS a través de la API de Messages API de Vonage cada vez que se marque un elemento.

Lo hice en Claude & Cursor usando Laravel Boost - en su mayor parte (realmente tuvo problemas con el contenedor de Servicios usando inyección de dependencias para el Cliente PHP de Vonage), todo fue bastante bien. Nada demasiado sofisticado - se eliminó toda la autenticación, creé una entidad ToDo en Eloquenty Livewire manejó el estado ToDo en el frontend.

Puede encontrar el código fuente de la aplicación aquí

Screenshot showing my mobile application with the ability to add, edit, and delete tasks.Quick and dirty UI for a classic mobile appEstupendo. Compruébalo tú mismo.

Requisitos previos

  • git

  • PHP 8.3+

  • Node 23+ y npm

  • Compositor

  • Una Account de Vonage

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

Configuración de la aplicación web

  1. Obtenga el repositorio en su máquina: https://github.com/Vonage-Community/blog-messages_native_php

  2. Instalar dependencias: composer install

  3. Ejecutar migraciones: php artisan migrate

  4. Ejecuta npm: npm i

  5. En la línea de comandos, ejecute Vite con npm run dev

  6. Copie el ejemplo env para convertirlo en env: cp .env.example .env

  7. Agrega tus credenciales de Vonage al archivo .env archivo.

Para realizar el último paso, deberás crear una nueva aplicación en el Panel de Vonage, agregar la capacidad de Messages API a la aplicación (puedes colocar datos ficticios en la sección de webhooks, ya que esta función no se utiliza) y mover el archivo descargado private.key a la raíz del código de tu proyecto. Tome nota del ID de la aplicación que se crea.

  • Para crear una aplicación, vaya a la sección Crear una aplicación en el panel de Vonage y define un nombre para tu aplicación.

  • Si tiene intención de utilizar una API que utilice Webhooks, necesitará una clave privada. Haga clic en "Generar clave pública y privada"; la descarga debería iniciarse automáticamente. Guárdela de forma segura; esta clave no puede volver a descargarse si se pierde. Seguirá la convención de nomenclatura private_<id de su aplicación>.key. Esta clave puede utilizarse ahora para autenticar llamadas a la API. Nota: La clave no funcionará hasta que se guarde la aplicación.

  • Elija las funciones que necesite (por ejemplo, Voice, Messages, RTC, etc.) y proporcione los webhooks necesarios (por ejemplo, URL de eventos, URL de respuestas o URL de mensajes entrantes). Estos se describirán en el tutorial.

  • Para guardar e implementar, haz clic en "Generar nueva aplicación" para finalizar la configuración. Tu aplicación ahora está lista para usar con las API de Vonage.

A continuación, puede introducir estos valores en el archivo .env por ejemplo:

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

Necesitarás servir tu aplicación. Recomiendo usar Laravel Herd. Puedes encontrar las instrucciones de instalación aquí. Alternativamente, puede ejecutar el servidor PHP integrado desde la línea de comandos: php artisan serve

Ya deberías tener tu aplicación básica funcionando. Ahora es el momento de...

Ejecutar la aplicación en Android con NativePHP Jump

Sólo hay cuatro pasos para conseguir que esto funcione en Android. Cuatro pasos¡! Eso es todo.. Vamos:

  1. En su dispositivo Android, descargue la aplicación aplicación Bifrost Jump. Esto actúa como una envoltura que puede tirar de una aplicación NativePHP construido a partir de un código QR.

  2. Instalar NativePHP con Composer: composer require nativephp/mobile

  3. Crea tu aplicación para la aplicación Jump: php artisan native:jump

  4. Aparecerá automáticamente un navegador con un código QR. Abre la aplicación Jump en tu teléfono y escanea el código QR.

Me holding up a four-step NativePHP appR U Being Serious Right Now?Ahora la aplicación móvil ToDo está lista para ser utilizada. Es hora de marcar un elemento ToDo y ver qué pasa...

Envío de SMS desde Android con Messages API de Vonage

Screenshot of my phone with messages sent from my NativePHP appSMS delivered Natively from Android via. VonageCuando marcamos una tarea en la aplicación, recibimos un SMS en nuestro teléfono. Normalmente no soy partidario del "simplemente funciona", especialmente cuando escribo sobre la experiencia de los desarrolladores, donde suele haber un montón de conocimientos asumidos o piezas que faltan. Pero esto... simplemente simplemente funcionó.

¿Y ahora qué?

Ahora que has visto lo fácil que es construir aplicaciones móviles reales con PHP, ¿qué vas a construir tú mismo? He estado pensando en implementar nuestras Soluciones Potenciadas por la Red, como el uso de la API de Identity Insights como demostración, pero también estoy deseando echar un vistazo al mercado de plugins de NativePHP para ver qué capacidades pueden utilizar los desarrolladores móviles. Y sí, "desarrolladores móviles" es la frase que utilizo aquí, no "desarrolladores PHP". Porque esto cambia las reglas del juego.

¿Tienes alguna pregunta o algo que compartir? Únete a la conversación en Slack de la comunidad de Vonagey mantente actualizado con el Boletín para desarrolladoressíguenos en X (antes Twitter)suscríbete a nuestro canal de YouTube para ver tutoriales en video, y sigue la página de página para desarrolladores de Vonage en LinkedInun espacio para que los desarrolladores aprendan y se conecten con la comunidad. Mantente conectado, comparte tu progreso y entérate de las últimas noticias, consejos y eventos para desarrolladores.

Compartir:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondePromotor senior de desarrollo PHP

Actor de formación con una disertación sobre la comedia, llegué al desarrollo de PHP a través de la escena de las reuniones. Puedes encontrarme hablando y escribiendo sobre tecnología, o tocando/comprando discos raros de mi colección de vinilos.