Saltare al contenuto principale
Torna ai plugin
@capacitor-plus/core
Tutorial
da github.com/Cap-go

Capacitor+ Core

Capacitor+ è un fork automatizzato, sempre sincronizzato di Capacitor con PR della community congiunti e rilasci rapidi

Guida

Tutorial su Capacitor+ Core

Utilizzo di Capacitor+ (@capacitor-plus) Pacchetti

Capacitor+ è una fork automatizzata e sempre sincronizzata di Capacitor gestita da Capgo. Offre una sostituzione a cadenza di giro per i pacchetti ufficiali Capacitor con un vantaggio chiave: le PR e le correzioni della community vengono integrate più velocemente.

Perché Capacitor+ Esiste

Il team Ionic gestisce Capacitor con le loro priorità e calendario di rilascio. Ciò significa che le contribuzioni della community - correzioni di bug, miglioramenti e funzionalità - possono attendere mesi o anche anni per essere merge. Alcune non arrivano mai.

Capacitor+ risolve questo problema in questo modo:

  1. Merging PRs da Fork - I PR preziosi bloccati nella coda upstream vengono attivamente merge
  2. Sincronizzazione Continua - Ogni modifica da Capacitor upstream viene automaticamente estrapolata, testata e verificata
  3. Rilasci Rapidi - Quando le modifiche superano la CI, vengono automaticamente pubblicate su npm con lo @capacitor-plus scope
  4. Community-First - Le tue contribuzioni contano e vengono priorizzate
  5. Verificato per la Sicurezza - Ogni modifica viene analizzata dall'IA per vulnerabilità di sicurezza, cambiamenti di rotta e rischi di stabilità

Pacchetti disponibili

Pacchetto Descrizione
@capacitor-plus/core Libreria runtime di base
@capacitor-plus/cli Interfaccia di linea di comando
@capacitor-plus/android Runtime per Android
@capacitor-plus/ios Runtime per iOS

Installazione

Nuovo Progetto

Per un nuovo progetto, utilizza semplicemente i pacchetti Capacitor+ al posto di quelli ufficiali:

npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android  # for Android
npm install @capacitor-plus/ios      # for iOS

Inizializza quindi il tuo progetto:

npx cap init
npx cap add android
npx cap add ios

Migrare da Official Capacitor

Per migrare un progetto esistente da Official 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

Poiché Capacitor+ è un sostituto a caduta di spada con lo stesso API, non sono necessarie modifiche code. Le tue importazioni rimangono le stesse:

// These imports work the same with Capacitor+
import { Capacitor } from '@capacitor/core';
import { registerPlugin } from '@capacitor/core';

Come Funziona

┌─────────────────────┐     ┌──────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  ionic-team/        │     │  CI/CD           │     │  Claude Code     │     │  npm publish    │
│  capacitor          │────▶│  Pipeline        │────▶│  Security Review │────▶│  @capacitor-plus│
│  (upstream)         │     │  (daily sync)    │     │  (AI analysis)   │     │  packages       │
└─────────────────────┘     └──────────────────┘     └──────────────────┘     └─────────────────┘
  1. Sincronizzazione quotidiana: Un'azione GitHub recupera le ultime modifiche da ionic-team/capacitor
  2. Creazione PR: Le modifiche vengono proposte come richieste di pull alle plus branch
  3. Validazione CI: Esegue il set completo di test (lint, unit tests, build iOS, build Android)
  4. Recensione di Claude Code: Analisi di sicurezza avanzata basata su AI controlla:
    • Vulnerabilità di sicurezza (iniezione, XSS, ecc.)
    • Rischio di rottura dei cambiamenti API
    • Problemi di stabilità e rischi di crash
    • Preoccupazioni per l'integrità e la privacy dei dati
    • Modelli maliziosi code
  5. Auto-Merge: Solo se CI passa e Claude approva (nessun problema rilevato)
  6. Auto-Publish: Una nuova versione viene pubblicata su npm sotto @capacitor-plus/*

Revisione di Sicurezza

Tutti gli aggiornamenti upstream vengono analizzati per:

Verifica Descrizione
Sicurezza Iniezione di comando, XSS, percorso di navigazione, segreti hardcoded, ecc.
Cambiamenti significativi API rimosse/nominate, cambiamenti di firma, modifiche al formato di configurazione
Stabilità Dereferenziazione di null, eccezioni non gestite, condizioni di corsa, perdite di memoria
Sicurezza dei dati Scenari di perdita di dati, violazioni della privacy, archiviazione non sicura
Code Integrità Integrità di code oscurata, chiamate di rete sospette, porte dietro

Se vengono rilevate eventuali problematiche, il PR viene segnalato per una revisione manuale e NON sarà automaticamente fuso.

Vuoi che il tuo PR venga fuso?

Hai un PR bloccato nel repository ufficiale Capacitor? Ecco come farlo entrare in Capacitor+:

  1. Apri un issue nel Capacitor+ repository facendo riferimento al tuo PR upstream
  2. O invia direttamente il PR alla plus branch
  3. La squadra lo esaminerà, eseguirà il CI e lo fonderà se supera

In questo modo, tu e gli altri potrete beneficiare del tuo lavoro immediatamente, senza dover attendere il ciclo di rilascio upstream.

Vantaggi

  • Risolve PR bloccati ora: Le correzioni e le funzionalità della community che sono in attesa di essere integrate in upstream vengono merge
  • Resta all'ultima moda: Ottieni le correzioni upstream non appena passano le prove di CI
  • Prima della sicurezza: Ogni modifica viene valutata per vulnerabilità e rischi di stabilità
  • Rilasci verificati: Vengono pubblicati solo le modifiche che superano sia le prove di CI che la revisione di sicurezza AI
  • Sostituzione a caduta: Lo stesso API di Capacitor, solo con un diverso scope del pacchetto
  • La tua voce conta: Invia le tue PR personali o richiedi PR upstream specifici per essere integrati

Esempio: Utilizzare Capacitor+ con Plugin

Tutti i plugin ufficiali Capacitor funzionano senza problemi 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();

I plugin Capgo funzionano perfettamente anche 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' });

Ecco fatto! Ora hai una versione aggiornata più velocemente di Capacitor con miglioramenti della community integrati più velocemente. Le tue app beneficeranno di correzioni di bug e funzionalità senza dover attendere il ciclo di rilascio ufficiale.