Guía
Tutorial sobre Capacitor+ Core
Usando Capacitor+ (@capacitor-plus) Paquetes
Capacitor+ es una bifurcación automática y siempre sincronizada de Capacitor mantenido por Capgo. Ofrece una sustitución de código de bajo nivel para los paquetes oficiales de Capacitor con una ventaja clave: Las PRs y correcciones de la comunidad se integran más rápido.
¿Por qué existe Capacitor+?
El equipo de Ionic mantiene Capacitor con sus propias prioridades y calendario de lanzamiento. Esto significa que las contribuciones de la comunidad - correcciones de errores, mejoras y características - pueden esperar meses o incluso años para ser fusionadas. Algunas nunca llegan a hacerlo.
Capacitor+ resuelve este problema de la siguiente manera:
- Merging PRs desde Forks - Los PRs valiosos que están atascados en la cola de upstream se fusionan activamente
- Sincronización Continua - Cada cambio de upstream Capacitor se extrae automáticamente, se prueba y se verifica
- Lanzamientos Rápidos - Cuando los cambios pasan por CI, se publican automáticamente en npm bajo el
@capacitor-plusscope - Comunidad en Primera Lugar - Sus contribuciones importan y se priorizan
- Revisado por la Seguridad - Cada cambio se analiza con IA para vulnerabilidades de seguridad, cambios que rompen y riesgos de estabilidad
Paquetes Disponibles
| Paquete | Descripción |
|---|---|
@capacitor-plus/core |
Biblioteca de tiempo de ejecución central |
@capacitor-plus/cli |
Interfaz de línea de comandos |
@capacitor-plus/android |
Tiempo de ejecución de Android |
@capacitor-plus/ios |
Tiempo de ejecución de iOS |
Instalación
Nuevo Proyecto
Para un nuevo proyecto, simplemente utilice los paquetes Capacitor+ en lugar de los oficiales:
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android # for Android
npm install @capacitor-plus/ios # for iOS
Luego inicie su proyecto:
npx cap init
npx cap add android
npx cap add ios
Migrando desde Oficial Capacitor
Para migrar un proyecto existente desde oficial Capacitor a Capacitor+:
# Remove official packages
npm uninstall @capacitor/core @capacitor/cli @capacitor/android @capacitor/ios
# Install Capacitor+ packages
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android # if using Android
npm install @capacitor-plus/ios # if using iOS
Dado que Capacitor+ es un reemplazo de bajo nivel con el mismo API, no se requieren cambios en code. Sus importaciones permanecen iguales:
// These imports work the same with Capacitor+
import { Capacitor } from '@capacitor/core';
import { registerPlugin } from '@capacitor/core';
Cómo Funciona
┌─────────────────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ ionic-team/ │ │ CI/CD │ │ Claude Code │ │ npm publish │
│ capacitor │────▶│ Pipeline │────▶│ Security Review │────▶│ @capacitor-plus│
│ (upstream) │ │ (daily sync) │ │ (AI analysis) │ │ packages │
└─────────────────────┘ └──────────────────┘ └──────────────────┘ └─────────────────┘
- Sincronización Diaria: Una Acción de GitHub obtiene los últimos cambios desde
ionic-team/capacitor - Creación de PR: Los cambios se proponen como solicitudes de cambio a la
plusrama - Validación de CI: Se ejecuta el conjunto de pruebas completo (lint, pruebas unitarias, compilación de iOS, compilación de Android)
- Revisión de Code de Claude: Análisis de seguridad integral impulsado por inteligencia artificial verifica:
- Vulnerabilidades de seguridad (inyección, XSS, etc.)
- Cambios de API que pueden romper la aplicación
- Riesgos de caída y problemas de estabilidad
- Preocupaciones de integridad y privacidad de datos
- Patrones maliciosos de code
- Auto-Merge: Solo si CI pasa y Claude aprueba (sin problemas detectados)
- Auto-Publish: Una nueva versión se publica en npm bajo
@capacitor-plus/*
Revisión de seguridad
Cada sincronización upstream se analiza para:
| Verificar | Descripción |
|---|---|
| Seguridad | Inyección de comandos, XSS, travesía de directorios, secretos fijos, etc. |
| Cambios importantes | APIs eliminadas/rerenombradas, firmas cambiadas, cambios en el formato de configuración |
| Estabilidad | Dereferencias nulas, excepciones no manejadas, condiciones de carrera, fugas de memoria |
| Seguridad de datos | Escenarios de pérdida de datos, violaciones de privacidad, almacenamiento inseguro |
| Code Integridad | Integridad de code, llamadas de red sospechosas, backdoors |
Si se detectan cualquier problema, el PR se marca para revisión manual y NO se fusionará automáticamente.
¿Quieres que se fusionen tus PR?
¿Tienes un PR atascado en el repositorio oficial Capacitor? Aquí te mostramos cómo hacer que se integre en Capacitor+:
- Abre una incidencia en el Capacitor+ repo vinculando a tu PR upstream
- O envía el PR directamente a la
plusrama - El equipo lo revisará, ejecutará CI y lo fusionará si pasa la prueba
De esta manera, tú y otros podrán beneficiarse de tu trabajo de inmediato, sin tener que esperar al ciclo de lanzamiento upstream.
Ventajas
- PRs Bloqueados Ahora: Se fusionan las correcciones y características de la comunidad que esperan subir a upstream
- Mantente Actualizado: Recibe correcciones de upstream tan pronto como pasan las pruebas de CI
- Seguridad Primero: Cada cambio se revisa por vulnerabilidades y riesgos de estabilidad
- Releases Verificados: Solo se publican cambios que pasan tanto las pruebas de CI como la revisión de seguridad de IA
- Sustitución de Inserción: Same API as Capacitor, just a different package scope
- Tu Voz Importa: Envía tus propios PRs o solicita PRs específicos de upstream para que se fusionen
Ejemplo: Usando Capacitor+ con Plugins
Todos los plugins oficiales Capacitor funcionan sin problemas con Capacitor+:
import { Capacitor } from '@capacitor/core';
import { Camera, CameraResultType } from '@capacitor/camera';
import { Geolocation } from '@capacitor/geolocation';
// Everything works exactly the same
const platform = Capacitor.getPlatform();
const photo = await Camera.getPhoto({
resultType: CameraResultType.Uri
});
const position = await Geolocation.getCurrentPosition();
Los plugins Capgo también funcionan perfectamente con Capacitor+:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
// Use Capgo plugins with Capacitor+
await CapacitorUpdater.notifyAppReady();
await ScreenOrientation.lock({ orientation: 'portrait' });
¡Eso es todo! Ahora tienes una versión actualizada más rápida de Capacitor con mejoras de la comunidad fusionadas más rápido. Tus aplicaciones se beneficiarán de correcciones de errores y características sin tener que esperar al ciclo de lanzamiento oficial.