Capacitor aiuta gli sviluppatori a sviluppare app per iOS e Android usando la stessa codebase, gestendo le differenze specifiche di ogni piattaforma. Semplifica l'integrazione delle funzionalità native, garantisce la conformità alle linee guida delle piattaforme e ottimizza le prestazioni. Punti chiave:
- Rilevamento della piattaforma: Usa
Capacitor.getPlatform()per applicare code specifici per la piattaforma. - Plugin integrati: API unificate per funzionalità come Camera, Storage e Geolocation.
- Plugin personalizzati: Aggiungi code nativi per requisiti specifici.
- Modifiche UI: Segui le linee guida di design per iOS (es. SF Symbols, bottoni arrotondati) e Android (es. Material Icons, bottoni allineati a sinistra).
- Configurazione: Regola le impostazioni in
capacitor.config.jsonper entrambe le piattaforme. - Live Updates con Capgo: Distribuisci aggiornamenti istantaneamente senza i ritardi degli app store, raggiungendo fino al 95% di adozione degli utenti in 24 ore.
Confronto rapido
| Funzionalità | iOS | Android |
|---|---|---|
| Navigazione | Bottom tab bars, back button left | Drawer di navigazione superiore, nav inferiore |
| Tipografia | Font San Francisco | Font Roboto |
| Plugin (es. Camera) | AVFoundation | Camera2 API |
| Output di build | .ipa file |
.aab oppure .apk file |
Capacitor colma il divario tra lo sviluppo web e quello di app native, facilitando la creazione di app cross-platform mantenendo al contempo le ottimizzazioni specifiche per piattaforma.
Sviluppo cross-platform: esplorare CapacitorJS con …
Come Capacitor gestisce le Code di piattaforma

Capacitor offre strumenti per gestire i code specifici della piattaforma, consentendo agli sviluppatori di creare esperienze su misura per iOS e Android con un unico API.
Rilevare le piattaforme in Code
Grazie alle API di piattaforma integrate in Capacitor, rilevare la piattaforma corrente è semplice. Il Capacitor.getPlatform() metodo identifica l'ambiente in esecuzione, facilitando l'applicazione di logiche condizionali:
import { Capacitor } from '@capacitor/core';
const platform = Capacitor.getPlatform();
if (platform === 'ios') {
// Code specific to iOS
} else if (platform === 'android') {
// Code specific to Android
}
Questo approccio è particolarmente utile per funzionalità come autenticazione biometrica, dove iOS potrebbe usare Face ID e Android si basa su Fingerprint Authentication. Insieme al rilevamento della piattaforma, i plugin integrati di Capacitor semplificano l'integrazione nativa.
Funzionalità integrate per piattaforma
Capacitor include un set di plugin core che gestiscono le differenze specifiche della piattaforma in modo trasparente. Questi plugin gestiscono le complessità delle implementazioni native fornendo al contempo un'interfaccia JavaScript coerente:
| Plugin | Implementazione iOS | Implementazione Android |
|---|---|---|
| Fotocamera | AVFoundation | Camera2 API |
| Storage | UserDefaults | SharedPreferences |
| Geolocalizzazione | CoreLocation | LocationManager |
Ogni plugin utilizza automaticamente le API native della piattaforma, garantendo prestazioni e funzionalità fluide.
Creare plugin personalizzati per piattaforma
Nei casi in cui i plugin integrati non soddisfano le tue esigenze, puoi creare plugin personalizzati per accedere a specifiche API native. Ecco come:
-
Definisci il Plugin
@Plugin({ name: 'CustomFeature', platforms: ['ios', 'android'] }) -
Aggiungi il codice nativo Code
@PluginMethod() async customFunction(): Promise<void> { if (Capacitor.getPlatform() === 'ios') { // Add iOS-specific code } else { // Add Android-specific code } } -
Implementa i gestori della piattaforma
-
iOS (Swift):
@objc func customFunction(_ call: CAPPluginCall) { // Add native iOS functionality } -
Android (Kotlin):
@PluginMethod fun customFunction(call: PluginCall) { // Add native Android functionality }
-
I plugin personalizzati permettono di accedere alle funzionalità native mantenendo la coerenza e la semplicità d'uso di API. Questo garantisce prestazioni e funzionalità senza complicare il processo di sviluppo.
Linee guida UI specifiche per piattaforma
Regole di design iOS vs Android
Quando si progetta per iOS e Android, è fondamentale seguire i pattern di design nativi. Gli utenti di ogni piattaforma hanno aspettative diverse su elementi come navigazione, tipografia, bottoni, header e icone. Ecco un confronto:
| Elemento di design | iOS | Android |
|---|---|---|
| Navigazione | Tab bar in basso, tasto back a sinistra | Navigation drawer in alto, navigazione in basso |
| Tipografia | Font San Francisco | Font Roboto |
| Bottoni | Rettangoli arrotondati, testo centrato | Pulsanti Material Design, testo a sinistra |
| Intestazioni | Titoli grandi, centrati | Barre app, allineate a sinistra |
| Icone | SF Symbols | Material Icons |
Standard di design cross-platform
Sebbene ogni piattaforma abbia le proprie regole, mantenere un'identità di marca coerente su entrambe è fondamentale. Ecco come puoi garantire la coerenza:
const sharedStyles = {
primaryColor: '#007AFF', // iOS blue
androidPrimaryColor: '#6200EE', // Material Design purple
borderRadius: Capacitor.getPlatform() === 'ios' ? '10px' : '4px'
};
:root {
--app-header-height: var(--platform-header-height, 56px);
--app-safe-area-top: var(--platform-safe-area-top, 0px);
}
Con Capacitor, puoi integrare componenti UI specifici per piattaforma mantenendo la funzionalità coerente. Aiuta anche a gestire le impostazioni di sistema come Dark Mode e Dynamic Type. Per completare il processo, assicurati che le impostazioni di build specifiche per piattaforma siano allineate a queste linee guida.
Configurazione e setup della piattaforma
Dopo aver gestito il code della piattaforma, una configurazione corretta è essenziale per far funzionare l'app senza problemi sia su iOS che su Android.
Impostazioni di piattaforma in capacitor.config.json
Usa il capacitor.config.json file per definire le impostazioni specifiche della piattaforma:
{
"appId": "com.example.app",
"appName": "MyApp",
"ios": {
"contentInset": "always",
"backgroundColor": "#ffffff",
"scheme": "myapp",
"preferredContentMode": "mobile"
},
"android": {
"backgroundColor": "#FFFFFF",
"allowMixedContent": true,
"captureInput": true,
"webContentsDebuggingEnabled": true
}
}
Ecco alcune opzioni di configurazione da considerare:
| Opzione | iOS | Android |
|---|---|---|
| Deep link | scheme proprietà |
androidScheme proprietà |
| Barra di stato | statusBar.style |
statusBar.backgroundColor |
| Tastiera | keyboard.resize |
keyboard.resize, keyboard.style |
| Splash Screen | splashScreen.launchShowDuration |
splashScreen.layoutName |
Una volta impostate le configurazioni di runtime, ottimizza le impostazioni di build per migliorare le performance su ogni piattaforma.
Impostazioni di build specifiche per piattaforma
Affina le impostazioni di build per ottimizzare la tua app su iOS e Android.
Per iOS, aggiorna il Info.plist dell'app:
<key>NSCameraUsageDescription</key>
<string>Required for document scanning</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Required for store locator</string>
Per Android, modifica android/app/build.gradle:
android {
defaultConfig {
minSdkVersion 21
targetSdkVersion 33
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
}
}
Ecco alcuni aspetti chiave della build:
| Aspetto | iOS | Android |
|---|---|---|
| Permessi | Aggiungi voci in Info.plist |
Definisci in AndroidManifest.xml |
| Icone | Dimensioni da 20px a 1024px | Densità da mdpi a xxxhdpi |
| Splash Screen | Basato su Storyboard | Basato su layout XML |
| Output di build | .ipa file |
.aab oppure .apk file |
Aggiorna le app con Capgo

Mantenere app Capacitor aggiornate in modo efficiente sia per iOS che per Android è fondamentale. Capgo offre un sistema live update conforme alle linee guida di entrambe le piattaforme.
Funzionalità di Capgo
| Funzionalità | Descrizione | Vantaggio della piattaforma |
|---|---|---|
| Live Update | Deploy immediato senza revisione degli store | Garantisce un'esperienza unificata su iOS e Android |
| Crittografia end-to-end | Protegge la consegna degli update | Rispetta i requisiti di sicurezza di entrambe le piattaforme |
| Sistema di canali | Targettizza gruppi di utenti specifici | Supporta beta testing e rollout progressivi |
| Update parziali | Scarica solo il contenuto modificato | Risparmia banda e accelera gli aggiornamenti |
Capgo ha distribuito 23,5 milioni di aggiornamenti, raggiungendo un tasso di aggiornamento degli utenti attivi del 95% entro 24 ore [1]. Queste funzionalità rendono gestione degli update più fluido ed efficiente su tutte le piattaforme.
Gestione piattaforme Capgo
Il sistema di canali di Capgo semplifica la gestione degli aggiornamenti. Gli sviluppatori possono testare funzionalità specifiche per iOS con utenti beta, distribuire aggiornamenti Android in fasi e monitorare le metriche di prestazioni senza interruzioni.
La piattaforma rispetta i requisiti di aggiornamento over-the-air di Apple e Google [1].
Attualmente, 750 app in produzione si affidano a Capgo, mantenendo un tasso di successo globale degli aggiornamenti dell'82% [1]. La sua integrazione CI/CD semplifica le distribuzioni, mentre la funzione di rollback consente agli sviluppatori di tornare istantaneamente alle versioni precedenti in caso di problemi. Le analisi in tempo reale forniscono informazioni sulle prestazioni degli aggiornamenti e aiutano a mantenere la stabilità dell'app.
Conclusione
Vantaggi della gestione delle piattaforme
Gestire efficacemente le differenze tra piattaforme in Capacitor migliora lo sviluppo cross-platform. I suoi strumenti integrati per il rilevamento e la configurazione delle piattaforme consentono agli sviluppatori di creare esperienze fluide sia su iOS che su Android, rispettando al contempo gli standard di design e le funzionalità uniche di ciascuna piattaforma.
Concentrandosi su una corretta gestione delle piattaforme, i team di sviluppo possono rilasciare aggiornamenti più rapidamente e migliorare la soddisfazione degli utenti. Strumenti come Capgo hanno dimostrato come una gestione coerente delle piattaforme possa portare a tassi di successo degli aggiornamenti più elevati e a esperienze utente migliori [1].
“Lavoriamo in agile e @Capgo è fondamentale per fornire aggiornamenti continui ai nostri utenti!”
– Rodrigo Mantica [1]
Questi spunti possono aiutarti ad apportare miglioramenti concreti.
Prossimi passi
Per sfruttare al massimo questi vantaggi, valuta queste strategie:
| Attività | Vantaggio |
|---|---|
| Abilita la Platform Detection | Si adatta automaticamente alle esigenze di iOS e Android |
| Implementa Live Updates | Evita i ritardi degli app store per i fix urgenti |
| Configura Analytics | Traccia le metriche di prestazioni per ogni piattaforma |
| Abilita il supporto al rollback | Risolvi rapidamente i problemi specifici della piattaforma |
Per gli sviluppatori che vogliono migliorare il proprio workflow, strumenti come Capgo possono semplificare il processo. Funzionalità come la crittografia end-to-end e l'integrazione CI/CD aiutano i team a mantenere la coerenza distribuendo aggiornamenti in modo efficiente.
Il successo nella gestione delle piattaforme dipende dall'uso degli strumenti giusti e dal rispetto delle linee guida specifiche. Concentrandosi su strategie di rilevamento e gestione robuste, gli sviluppatori possono garantire che le loro app funzionino senza interruzioni sia su iOS che su Android.
Continua da Come Capacitor gestisce le differenze tra piattaforme
Se stai usando Come Capacitor gestisce le differenze tra piattaforme per pianificare il comportamento dei media nativi e dell'interfaccia, collegalo a Uso di @capgo/capacitor-live-activities per la funzionalità nativa nella pagina Uso di @capgo/capacitor-live-activities, @capgo/capacitor-live-activities per il dettaglio implementativo in @capgo/capacitor-live-activities, Uso di @capgo/capacitor-video-player per la funzionalità nativa in Utilizzo di @capgo/capacitor-video-player, @capgo/capacitor-video-player per i dettagli di implementazione in @capgo/capacitor-video-player, e Usando @capgo/capacitor-native-navigation per la funzionalità nativa in Usando @capgo/capacitor-native-navigation.