Introducción
Ya tienes una Aplicación Web Progresiva. Funciona en navegadores, tiene un manifiesto y quizás utiliza un servicio de trabajo para el soporte de línea de base. Si ahora necesitas distribución en tiendas de aplicaciones, APIs de dispositivo nativo o un mejor canal de onboarding, migrar a una aplicación Capacitor es usualmente más rápido que reescribir tu front-end.
The biggest advantage is that you keep almost all of your existing web code. In most cases, you only need to:
- compilar activos web de producción
- inicializar Capacitor con la configuración correcta
webDir, - agregar proyectos de iOS y Android
- y conectar plugins nativos solo donde sea necesario
Si tu Aplicación Web Progresiva tiene rutas limpias y lógica de componentes, esto puede tomar solo unas pocas horas.
Requisitos previos
Tiempo estimado: 2-5 horas, dependiendo de las características específicas de la plataforma.
- Node.js 18+ con Bun
- Su código de PWA existente code (React, Vue, Angular, Svelte, etc.)
- Xcode (solo para iOS, macOS)
- Android Studio (solo para Android)
- Cuenta de desarrollador de Apple si planea publicar iOS
- Cuenta de desarrollador de Google Play para distribución de Android
Paso 1: Verifique su aplicación PWA antes de envolverla en nativa
Antes de ejecutar bunx cap init, verifique que su aplicación web esté lista para producción:
- Asegúrese de que su PWA tenga un script de compilación de producción (por ejemplo,
bun run build). - Confirme que el directorio de salida de la web es determinístico (a menudo
dist,build, oout). - Elimine los redireccionamientos absolutos codificados que asumen el contexto de navegador solo.
- Verifique que el comportamiento del servicio de trabajo sea compatible con los visores de la web móvil:
- Mantenga el soporte de línea de comandos si ayuda a sus usuarios.
- Evite APIs de navegador solo que no están disponibles en el visor de web integrado.
- Confirme que las solicitudes de instalación de PWA y el UX específico del navegador todavía tienen sentido. En una aplicación Capacitor , las solicitudes de instalación de la aplicación suelen no ser necesarias.
Paso 2: Ajuste los comportamientos de la web solo
Mantenga la interfaz de usuario de su aplicación, pero bloquee la lógica del navegador.
Utilice una comprobación de plataforma simple alrededor de las solicitudes de instalación y empuje:
import { Capacitor } from '@capacitor/core'
const isNative = Capacitor.isNativePlatform()
function registerInstallPrompt() {
if (isNative) return
// existing browser-only install or Web Push code
}
Esto evita que la lógica del navegador dispare dentro del contenedor nativo.
Paso 3: Inicialice Capacitor en la carpeta de su PWA
Desde la raíz de su PWA existente:
bun add @capacitor/core
bun add -D @capacitor/cli
Ejecute Capacitor init con el nombre de su aplicación, el ID de paquete y el directorio de salida web:
bunx cap init MyPWAApp com.example.my-pwa-app --web-dir dist
Si su carpeta de compilación es build (Crear aplicación de React) out (Exportación estática de Next.js), reemplace dist.
Agregue una configuración básica de Capacitor:
import type { CapacitorConfig } from '@capacitor/cli'
const config: CapacitorConfig = {
appId: 'com.example.my-pwa-app',
appName: 'MyPWAApp',
webDir: 'dist',
server: {
iosScheme: 'https',
},
}
export default config
Paso 4: Agregue plataformas nativas
Instale paquetes nativos básicos y genere carpetas de proyecto:
bun add @capacitor/ios @capacitor/android
bunx cap add ios
bunx cap add android
En este punto Capacitor ha creado ios/ y android/ carpetas. La sincronización copiará tus activos web compilados en ambas plataformas.
Paso 5: Construye tu aplicación web y sincroniza
Construye la PWA y sincroniza activos web:
bun run build
bunx cap sync
Ahora abre proyectos nativos:
bunx cap open ios
bunx cap open android
Desde Xcode o Android Studio, conecta un dispositivo o emulador y ejecuta.
Paso 6: Mejoras nativas después de la migración
Aquí es donde reemplazas características solo de web con APIs nativas donde sea necesario:
- Notificaciones push ->
@capacitor/push-notifications - Almacenamiento de clave/valor seguro ->
@capacitor/preferences - Cámara / medios ->
@capacitor/camera - Autenticación biométrica ->
@capacitor-community/native-biometric(o plugin de su elección)
Para cada nuevo plugin nativo:
- Instale el paquete del plugin
- Configure ajustes específicos del plugin
- Ejecutar:
bunx cap sync
Luego reconstruya y ejecute de nuevo.
Paso 7: Verificar la paridad de tiendas de aplicaciones
Antes de la presentación:
- Pruebe enlaces profundos y rutas de navegación (
/y rutas profundas) en ambos sistemas operativos. - Verifique que la barra de estado, áreas seguras y orientación estén correctos.
- Elimine los metadatos web no utilizados que conflictan con el comportamiento de la aplicación (por ejemplo, solicitudes de instalación).
- Mantenga configuraciones de seguridad y privacidad de la aplicación consistentes con su política.
- Agregar iconos/splashes de aplicación para cada plataforma.
Si su aplicación utiliza actualizaciones OTA, combine su pipeline de lanzamiento con una estrategia de actualización segura nativa y considere Capgo para un despliegue controlado y rollback.
Lista de comprobación final
- Las compilaciones de la aplicación web se ejecutan limpiamente (
bun run build) - Capacitor inicializado con el
webDir bunx cap add iosybunx cap add androidcompletado- Las aplicaciones nativas se ejecutan en dispositivos reales
- Rutas de navegador solo code están bloqueadas para comportamiento nativo
- Los canales de actualización y los activos de tienda se configuran
Ya has hecho la mayor parte del trabajo duro al construir tu PWA. Envolverlo con Capacitor te da:
- Distribución en tienda
- Acceso a APIs nativas
- Iteración más rápida sin una reescritura completa de code
- Un único camino de despliegue para equipos de web y móvil
Comienza desde este flujo, luego itera nativo por nativo según análisis y retroalimentación de usuarios