Saltare al contenuto principale
Tutorial

Converti la tua App Nuxt in iOS & Android con Capacitor 8

Trasforma la tua applicazione web Nuxt 4 esistente in app mobili native per iOS e Android utilizzando Capacitor 8. Una guida completa per la configurazione della generazione statica, l'aggiunta di plugin nativi e il deployment nei negozi di app.

Martin Donadieu

Martin Donadieu

Content Marketer

Converti la tua App Nuxt in iOS & Android con Capacitor 8

Introduzione

Hai una applicazione web Nuxt esistente? In questo guide, imparerai a trasformarla in app mobili native per iOS e Android utilizzando Capacitor 8 — l'ultima versione con prestazioni migliorata e nuove funzionalità.

Capacitor avvolge la tua app web in un contenitore nativo, dando accesso alle API del dispositivo come la fotocamera, il filesystem e le notifiche push, mantenendo intatta la tua base di codice Vue esistente. A differenza di Flutter o React Native, non hai bisogno di ricompilare nulla — il tuo Nuxt code funziona com'è.

Cosa imparerai:

  • Configura la tua app Nuxt esistente per la generazione statica
  • Aggiungi Capacitor 8 con plugin nativi essenziali
  • Costruisci e testa su simulatori iOS e Android
  • Abilita il reload live per un sviluppo più veloce
  • Aggiungi optionalmente Konsta UI per componenti che assomigliano a quelli nativi

Desideri iniziare un nuovo progetto da zero? Consulta la nostra guida su Creare un'app mobile Nuxt da zero.

Vantaggi dell'uso di Nuxt e Capacitor

  • La reutilizzabilità di Code: Condividi i tuoi componenti Vue e logica tra app web e mobili.
  • Performance: La generazione statica di Nuxt crea bundle ottimizzati perfetti per i dispositivi mobili.
  • Funzionalità native: Accedi alle funzionalità del dispositivo come camera, geolocalizzazione e filesystem attraverso Capacitor plugin.
  • Sviluppo semplificato: Utilizza pattern Vue/Nuxt familiari senza dover imparare lo sviluppo nativo.

Requisiti preliminari

Prima di iniziare, assicurati di avere:

  • Node.js 18+ installato
  • Un progetto esistente Nuxt 4 applicazione
  • Xcode (per lo sviluppo di iOS, disponibile solo su macOS)
  • Android Studio (per lo sviluppo di Android)

Configurazione della tua App Nuxt per dispositivi mobili

Il primo passo è configurare la tua app Nuxt per la generazione statica. Capacitor richiede file HTML/JS/CSS statici per poterli bundle nel'app nativa.

Assicurati che il tuo package.json abbia lo script di generazione:

{
  "scripts": {
    "dev": "nuxt dev",
    "build": "nuxt build",
    "generate": "nuxt generate",
    "preview": "nuxt preview",
    "mobile": "bun run generate && bunx cap sync",
    "mobile:ios": "bun run mobile && bunx cap open ios",
    "mobile:android": "bun run mobile && bunx cap open android"
  }
}

Importante: Se stai utilizzando funzionalità server-side (API percorsi, middleware del server, ecc.), dovrai rifare quelle per utilizzare alternative client-side o API esterne.

Testa la generazione statica eseguendo:

bun run generate

Dovresti vedere una cartella con i tuoi file statici. Questo è ciò che __CAPGO_KEEP_0__ compilerà nel tuo app nativo. .output/public Questo è ciò che Capacitor compilerà nel tuo app nativo.

Aggiungere Capacitor 8 al tuo Progetto

Per pacchettizzare la tua app Nuxt in un contenitore mobile nativo, segui questi passaggi:

  1. Installa il core di Capacitor e CLI:
bun add @capacitor/core
bun add -D @capacitor/cli
  1. Installa i plugin di Capacitor più comuni che ti serviranno:
bun add @capacitor/app @capacitor/keyboard @capacitor/splash-screen @capacitor/status-bar @capacitor/preferences

Questi plugin forniscono funzionalità essenziali:

  • @capacitor/app: Gestisci gli eventi di ciclo di vita dell'app (in primo piano/ in background, collegamenti profondi)
  • @capacitor/keyboard: Controlla il comportamento della tastiera su mobile
  • @capacitor/splash-screen: Gestisci lo schermo di benvenuto nativo
  • @capacitor/status-bar: Stilizza la barra dello stato del dispositivo
  • @capacitor/preferences: Archiviazione chiave-valore (come localStorage ma nativa)
  1. Inizializza Capacitor con i dettagli del tuo progetto:
bunx cap init my-app com.example.myapp --web-dir .output/public

Sostituisci con il nome della tua app e con l'ID dell'app (notazione di dominio inverso). my-app Crea o aggiorna il file con la configurazione corretta: com.example.myapp Installa le piattaforme native:

  1. Install native platforms: Installa le piattaforme native: capacitor.config.ts Replace
import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.example.myapp',
  appName: 'my-app',
  webDir: '.output/public',
  plugins: {
    SplashScreen: {
      launchShowDuration: 2000,
      launchAutoHide: true,
      androidScaleType: 'CENTER_CROP',
      splashFullScreen: true,
      splashImmersive: true,
    },
    Keyboard: {
      resize: 'body',
      resizeOnFullScreen: true,
    },
    StatusBar: {
      style: 'dark',
    },
  },
};

export default config;
  1. with your app name and
bun add @capacitor/ios @capacitor/android
  1. Aggiungi le cartelle della piattaforma nativa:
bunx cap add ios
bunx cap add android

Capacitor creerà ios e android le cartelle alla radice del tuo progetto contenenti i progetti nativi.

Per costruire il progetto Android, hai bisogno di Android Studio. Per iOS, hai bisogno di un Mac con Xcode.

  1. Costruisci e sincronizza il tuo progetto:
bun run mobile

Esegue il tuo script personalizzato che genera la costruzione statica Nuxt e sincronizza i file con le piattaforme native.

Costruzione e Distribuzione di Applicazioni Native

Per costruire e distribuire la tua applicazione mobile nativa, segui questi passaggi:

Per sviluppare app iOS, è necessario avere Xcode installato, e per app Android, è necessario avere Android Studio installato. Inoltre, se pianifichi di distribuire la tua app sul negozio di app, è necessario iscriversi al Apple Developer Program per iOS e al Google Play Console per Android.

  1. Apri i progetti nativi:

Per iOS:

bun run mobile:ios

Per Android:

bun run mobile:android

O direttamente con Capacitor CLI:

bunx cap open ios
bunx cap open android
  1. Costruisci e esegui l'app:

android-studio-run

  • In Android Studio, attendi che il progetto sia pronto, e poi clicca sul pulsante "Esegui" per distribuire l'app su un dispositivo connesso o emulatore.

xcode-run

  • In Xcode, impostare il tuo account di firma per distribuire l'applicazione su un dispositivo reale. Se non hai fatto ciò prima, Xcode ti guiderà attraverso il processo (nota che devi essere iscritto al Apple Developer Program). Una volta impostato, clicca sul pulsante "Gioca" per eseguire l'applicazione sul tuo dispositivo connesso.

Congratulazioni! Hai avuto successo nel distribuire la tua app web Nuxt su un dispositivo mobile.

app mobile Nuxtjs

Ma aspetta, c'è anche un modo più veloce per farlo durante lo sviluppo…

Capacitor Live Reload

Durante lo sviluppo, puoi sfruttare il live reloading per vedere i cambiamenti istantaneamente sul tuo dispositivo mobile. Per abilitare questa funzionalità, segui questi passaggi:

  1. Trova l'indirizzo IP locale:
  • Su macOS, esegui il seguente comando nel terminale:

    ipconfig getifaddr en0
  • Su Windows, esegui:

    ipconfig

    Cerca l'indirizzo IPv4 nell'output.

  1. Aggiorna il tuo capacitor.config.ts per puntare al tuo server di sviluppo:
import type { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.example.app',
  appName: 'my-app',
  webDir: '.output/public',
  server: {
    url: 'http://YOUR_IP_ADDRESS:3000',
    cleartext: true,
  },
  plugins: {
    // ... your plugin config
  },
};

export default config;

Sostituisci YOUR_IP_ADDRESS con l'indirizzo IP locale (ad esempio, 192.168.1.100).

  1. Applica le modifiche al tuo progetto nativo:
bunx cap copy

Il copy comando copia la cartella web e le modifiche di configurazione nel progetto nativo senza aggiornare l'intero progetto.

  1. Avvia il tuo server di sviluppo Nuxt e ricostruisci in Xcode/Android Studio:
bun run dev

Ora, ogni volta che apporti modifiche all'app Nuxt, l'app mobile si ricaricherà automaticamente per riflettere quelle modifiche.

Nota: Se installi nuovi plugin o apporti modifiche a file nativi, dovrai ricostruire il progetto nativo poiché il ricaricamento in tempo reale si applica solo alle modifiche web code.

Utilizzo dei Capacitor Plugin

I Capacitor plugin ti consentono di accedere alle funzionalità del dispositivo nativo dall'app Nuxt. Esploriamo come utilizzare i Condividi plugin ad esempio:

  1. Installa il plugin Condividi:
bun add @capacitor/share
  1. Crea o aggiorna una pagina per utilizzare il plugin Condividi. In Nuxt 4, le pagine vanno in app/pages/:
<template>
  <div class="p-6">
    <h1 class="text-2xl font-bold mb-4">Welcome to Nuxt + Capacitor!</h1>
    <button
      @click="shareContent"
      class="px-6 py-3 bg-blue-600 text-white rounded-lg font-semibold"
    >
      Share now!
    </button>
  </div>
</template>

<script setup lang="ts">
import { Share } from '@capacitor/share';

async function shareContent() {
  await Share.share({
    title: 'Check this out!',
    text: 'Built with Nuxt and Capacitor',
    url: 'https://capacitorjs.com',
    dialogTitle: 'Share with friends',
  });
}
</script>
  1. Sincronizza le modifiche con il progetto nativo:
bun run mobile

O sincronizza senza ricostruire:

bunx cap sync
  1. Ricostruisci e esegui l'app sul tuo dispositivo.

Ora, quando clicchi sul pulsante "Condividi ora!", apparirà il dialogo di condivisione nativo.

Aggiungi Konsta UI v5 con Tailwind CSS 4

Per rendere il pulsante più compatibile con i dispositivi mobili, puoi aggiungere Konsta UI per componenti iOS e Android di aspetto nativo.

Hai bisogno di Tailwind CSS 4 già installato.

  1. Installa i pacchetti richiesti:
bun add konsta
bun add tailwindcss @tailwindcss/vite
  1. Configura il plugin Vite in nuxt.config.ts:
import tailwindcss from '@tailwindcss/vite';

export default defineNuxtConfig({
  compatibilityDate: '2025-01-15',
  devtools: { enabled: true },
  css: ['~/assets/css/main.css'],
  vite: {
    plugins: [tailwindcss()],
  },
});
  1. Crea app/assets/css/main.css:
@import 'tailwindcss';
@import 'konsta/theme.css';
  1. Avvolgi la tua app con l'interfaccia utente Konsta App componente in app/app.vue:
<template>
  <App theme="ios">
    <NuxtPage />
  </App>
</template>

<script setup>
import { App } from 'konsta/vue';
</script>
  1. Aggiorna la tua pagina per utilizzare componenti Konsta UI:
<template>
  <Page>
    <Navbar title="My App" />

    <Block strong>
      <p>
        Here is your Nuxt & Konsta UI app. Let's see what we have here.
      </p>
    </Block>

    <BlockTitle>Navigation</BlockTitle>
    <List>
      <ListItem href="/about/" title="About" />
      <ListItem href="/form/" title="Form" />
    </List>

    <Block strong class="flex space-x-4">
      <Button>Button 1</Button>
      <Button>Button 2</Button>
    </Block>
  </Page>
</template>

<script setup>
import {
  Page,
  Navbar,
  Block,
  Button,
  List,
  ListItem,
  BlockTitle,
} from 'konsta/vue';
</script>
  1. Aggiungi il font Roboto per il tema di progettazione materiale in nuxt.config.ts:
export default defineNuxtConfig({
  app: {
    head: {
      link: [
        { rel: 'preconnect', href: 'https://fonts.googleapis.com' },
        { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossorigin: '' },
        {
          rel: 'stylesheet',
          href: 'https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap',
        },
      ],
    },
  },
  // ... rest of config
});

La tua app Nuxt dovrebbe ora avere un'interfaccia utente mobile nativa:

konsta-nuxt

Conclusione

Hai avuto successo nel convertire la tua applicazione web esistente Nuxt in app native per iOS e Android utilizzando Capacitor 8. Il tuo codice Vue adesso funziona nativamente su dispositivi mobili con accesso agli API di dispositivo.

Cosa hai ottenuto:

  • Configurato Nuxt per la generazione statica
  • Aggiunto Capacitor 8 con plugin essenziali
  • Costruito e distribuito su simulatori iOS e Android
  • Abilitato il reload live per il development
  • Aggiunto optionalmente Konsta UI per componenti che assomigliano a nativi

Passaggi successivi:

  • Configurazione Capgo per aggiornamenti over-the-air senza riconsegna dell'app store
  • Aggiungi plugin nativi aggiuntivi come Camera, Geolocalizzazione o Notifiche Push
  • Configura icone dell'app e schermate di avvio per la produzione
  • Prepara il tuo app per la sottoscrizione di App Store e Google Play

Iniziando un nuovo progetto? Ecco un percorso guidato. Creare un'app mobile Nuxt da zero per un percorso guidato.

Risorse

Impari come Capgo possa aiutarti a creare app migliori e più veloci, iscriviti gratuitamente oggi.

Aggiornamenti in tempo reale per le app Capacitor

Quando un bug nel layer web è attivo, invia la correzione attraverso Capgo invece di attendere giorni per l'approvazione della store. Gli utenti ricevono l'aggiornamento in background mentre le modifiche native rimangono nel normale percorso di revisione.

Inizia subito

Ultimi articoli dal nostro Blog

Capgo ti offre le migliori informazioni che ti servono per creare un'app mobile veramente professionale.