Saltar al contenido principal
Tutoriales

Desarrollar Aplicaciones Móviles con Angular y Capacitor

Aprende a crear una aplicación móvil con Angular, Capacitor, y mejora la interfaz de usuario nativa con Konsta UI.

Martin Donadieu

Martin Donadieu

Especialista en Contenido

Desarrollar Aplicaciones Móviles con Angular y Capacitor

En este tutorial, comenzaremos con una nueva aplicación de Angular y transitaremos al reino de la aplicación móvil nativa utilizando __CAPGO_KEEP_0__. Opcionalmente, también puedes agregar app and transition into the native mobile app realm using Capacitor. Optionally, you can also add para una interfaz de usuario móvil mejorada con Tailwind CSS. __CAPGO_KEEP_0__ te permite convertir fácilmente tu aplicación web de Angular en una aplicación móvil nativa sin requerir modificaciones significativas o aprender una nueva habilidad como React Native.

Building Mobile Apps with Angular and Capacitor

With solo unos pocos pasos simples, la mayoría de las aplicaciones de Angular pueden ser transformadas en aplicaciones móviles.

Este tutorial te guiará a través del proceso, comenzando con una nueva aplicación de Angular y luego incorporando Capacitor para moverse al reino de las aplicaciones móviles nativas. Además, puedes utilizar opcionalmente Konsta UI para mejorar tu interfaz de usuario móvil con Tailwind CSS.

Sobre Capacitor

CapacitorJS es un juego de cambio! Puedes incorporarlo fácilmente en cualquier proyecto web, y lo envolverá en una vista web nativa, generando el proyecto de Xcode y Android Studio nativo para ti. Además, sus plugins te proporcionan acceso a características de dispositivo nativo como la cámara a través de un puente de JS.

Con Capacitor, obtienes una fantástica aplicación móvil nativa sin ningún setup complicado o curva de aprendizaje empinada. Su delgado API y funcionalidad streaminada lo hacen un placer integrarlo en tu proyecto. Confía en mí, te sorprenderá la facilidad con la que puedes lograr una aplicación móvil nativa completamente funcional con Capacitor!

Preparando tu aplicación de Angular

Para crear una nueva aplicación de Angular, ejecuta el siguiente comando:

ng new my-app
cd my-app

Elige 'Angular' cuando se te pregunte por la versión de Angular.

Para crear una aplicación móvil nativa, necesitamos un export de nuestro proyecto. Por lo tanto, incluyamos un script directo en nuestro package.json que se puede utilizar para construir y copiar el proyecto de Angular:

{
  "scripts": {
    // ...
    "build": "ng build --prod"
  }
}

Después de ejecutar el comando build, deberías poder ver un dist carpeta fresca en la raíz de tu proyecto.

Esta carpeta se utilizará por Capacitor más adelante, pero por ahora debemos configurarla correctamente.

Agregar Capacitor a Tu Aplicación de Angular

Para empaquetar cualquier aplicación web en un contenedor móvil nativo, debemos seguir unos pocos pasos inicialmente, pero después es tan simple como ejecutar un solo sync comando.

Primero, podemos instalar el Capacitor CLI como una dependencia de desarrollo, y luego configúrela dentro de nuestro proyecto. Durante la configuración, puedes pulsar “enter” para aceptar los valores predeterminados para el nombre y el ID de paquete.

A continuación, debemos instalar el paquete principal y los paquetes relevantes para las plataformas iOS y Android.

Finalmente, podemos agregar las plataformas, y Capacitor creará carpetas para cada plataforma en la raíz de nuestro proyecto:

# Install the Capacitor CLI locally
npm install -D @capacitor/cli

# Initialize Capacitor in your Angular project
npx cap init

# Install the required packages
npm install @capacitor/core @capacitor/ios @capacitor/android

# Add the native platforms
npx cap add ios
npx cap add android

Hasta este punto, deberías poder observar nuevos ios y android carpetas en tu proyecto de Angular.

Eso son proyectos nativos reales!

Para acceder al proyecto de Android más adelante, debes instalar Android Studio. Para iOS, necesitas un Mac y debes instalar Xcode.

Además, debes encontrar un archivo capacitor.config.ts en tu proyecto, que contiene algunas configuraciones fundamentales de Capacitor utilizadas durante la sincronización. La única cosa a la que debes prestar atención es el webDir, que debe apuntar al resultado de tu comando de compilación. Actualmente, es inexacto.

Para corregir esto, abre el archivo capacitor.config.json y actualiza el webDir:

{
  "appId": "com.example.app",
  "appName": "my-app",
  "webDir": "dist"
}

Puedes probarlo ejecutando los siguientes comandos:

npm run build
npx cap sync

El primer comando npm run build will simplemente construir su proyecto Angular y copiar la compilación estática, mientras que el segundo comando npx cap sync sincronizará todos los web code en los lugares adecuados de las plataformas nativas para que puedan ser mostrados en una aplicación.

Además, el comando de sincronización podría actualizar las plataformas nativas e instalar plugins, por lo que cuando instale un nuevo Capacitor plugins es hora de ejecutar npx cap sync de nuevo.

Sin darse cuenta, ahora está realmente listo, así que veamos la aplicación en un dispositivo!

Desarrollar y desplegar aplicaciones nativas

Para desarrollar aplicaciones iOS, necesita tener Xcode instalado, y para aplicaciones Android, necesita tener Android Studio instalado instalado. Además, si planeas distribuir tu aplicación en la tienda de aplicaciones, debes inscribirte en el Programa de Desarrolladores de Apple para iOS y en el Console de Google Play para Android.

Si eres nuevo en el desarrollo de aplicaciones móviles nativas, puedes utilizar el Capacitor CLI para abrir fácilmente ambos proyectos nativos:

npx cap open ios
npx cap open android

Una vez que hayas configurado tus proyectos nativos, desplegar tu aplicación en un dispositivo conectado es fácil. En Android Studio, solo necesitas esperar a que todo esté listo, y puedes desplegar tu aplicación en un dispositivo conectado sin cambiar ninguna configuración. Aquí tienes un ejemplo:

android-studio-run

En Xcode, debes configurar tu cuenta de firma para desplegar tu aplicación en un dispositivo real en lugar del simulador. Si no lo has hecho antes, Xcode te guía a través del proceso (pero, una vez más, debes estar inscrito en el Programa de Desarrolladores). Posteriormente, puedes simplemente pulsar play para ejecutar la aplicación en tu dispositivo conectado, que puedes seleccionar en la parte superior. Aquí tienes un ejemplo:

xcode-run

Felicidades! Has desplegado con éxito tu aplicación web de Angular en un dispositivo móvil. Aquí tienes un ejemplo:

angular-mobile-app

Pero espera, hay una forma más rápida de hacer esto durante el desarrollo…

Capacitor Live Reload

Hasta ahora, probablemente estás acostumbrado a tener hot reload con todas las marcos modernos, y la buena noticia es que puedes tener la misma funcionalidad en un dispositivo móvil con mínimo esfuerzo!

Habilite el acceso a su aplicación alojada localmente con recarga en vivo en su red al tener la aplicación Capacitor cargar el contenido desde la URL específica.

El primer paso es determinar la dirección IP local. Si está utilizando un Mac, puede encontrar esto ejecutando el comando siguiente en la terminal:

ipconfig getifaddr en0

En Windows, ejecuta:

ipconfig

Luego busque la dirección IPv4.

Podemos instruir a Capacitor a cargar la aplicación directamente desde el servidor agregando otra entrada a nuestro archivo: capacitor.config.ts Asegúrese de utilizar

import { CapacitorConfig } from '@capacitor/cli';

const config: CapacitorConfig = {
  appId: 'com.example.app',
  appName: 'my-app',
  webDir: 'dist',
  bundledWebRuntime: false,
  server: {
    url: 'http://192.168.x.xx:4200',
    cleartext: true
  }
};

export default config;

la dirección IP y puerto correctos , he utilizado el puerto Angular por defecto en este ejemplo.Por favor, ingrese la dirección IP y puerto correctos para su servidor.

Ahora, podemos aplicar estos cambios copiándolos a nuestro proyecto nativo:

npx cap copy

El copy comando es similar a sync, pero solo copiará los cambios realizados en la carpeta web y la configuración, sin actualizar el proyecto nativo.

Puede desplegar su aplicación una vez más a través de Android Studio o Xcode. Después de eso, si cambia algo en su aplicación de Angular, la aplicación se recargará automáticamente y mostrará los cambios!

Ten en cuenta que si instala nuevos plugins como la cámara, todavía requiere una reconstrucción de su proyecto nativo. Esto se debe a que los archivos nativos se han modificado, y no se puede hacer en tiempo real.

Tenga en cuenta que debe utilizar la IP y el puerto correctos en su configuración. El bloque code anterior muestra el puerto de Angular por defecto para fines de demostración.

Usando Capacitor Plugins

Vamos a ver cómo usar un Capacitor plugin en acción, que mencionamos antes. Para hacer esto, podemos instalar un plugin bastante simple ejecutando:

npm i @capacitor/share

No hay nada sofisticado sobre el Share plugin, pero lo trae de todos modos el diálogo de compartir nativo. Para esto ahora solo necesitamos importar el paquete y llamar al método correspondiente desde nuestra aplicación, así que cambiemos el share() src/app/app.component.ts a esto: Como mencionamos antes, al instalar nuevos plugins, debemos realizar una operación de sincronización y luego volver a desplegar la aplicación en nuestro dispositivo. Para hacer esto, ejecuta el siguiente comando:

import { Component } from '@angular/core';
import { Share } from '@capacitor/share';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent {
  title = 'my-app';

  async share() {
    await Share.share({
      title: 'Open Youtube',
      text: 'Check new video on youtube',
      url: 'https://www.youtube.com',
      dialogTitle: 'Share with friends'
    });
  }
}

Después de pulsar el botón, puedes ver el diálogo de compartir nativo en acción. ¡Es hermoso!

npx cap sync

Agregar Konsta UI

Para usar Konsta UI en tu aplicación Nuxt 3, necesitas tener:

(los tokens protegidos se mantienen como están) tailwind ya está instalado y para instalar el paquete:

npm i konsta

Además, necesita modificar su tailwind.config.js archivo:

// import konstaConfig config
const konstaConfig = require('konsta/config')

// wrap config with konstaConfig config
module.exports = konstaConfig({
  content: [
    './src/**/*.{html,ts}',
  ],
  darkMode: 'media', // or 'class'
  theme: {
    extend: {},
  },
  variants: {
    extend: {},
  },
  plugins: [],
})

konstaConfig extenderá la configuración predeterminada (o la suya personalizada) de Tailwind CSS con algunas variantes y utilidades de ayuda necesarias para Konsta UI.

Ahora necesitamos configurar el componente principal de Aplicación para que podamos establecer algunos parámetros globales (como theme).

Necesitamos envolver toda la aplicación con App en el src/app/app.component.html:

<app>
  <h1>Welcome to Angular and Capacitor!</h1>
  <button (click)="share()">Share now!</button>
</app>

Página de Ejemplo

Ahora que todo está configurado, podemos utilizar componentes de Konsta UI Vue en nuestras páginas de Angular.

Por ejemplo, abramos src/app/app.component.html y cambiémoslo a lo siguiente:

<app>
  <page>
    <navbar title="My App" />

    <block strong>
      <p>
        Here is your Angular & Konsta UI app. Let's see what we have here.
      </p>
    </block>
    <block-title>Navigation</block-title>
    <list>
      <list-item href="/about/" title="About" />
      <list-item href="/form/" title="Form" />
    </list>

    <block strong class="flex space-x-4">
      <button>Button 1</button>
      <button>Button 2</button>
    </block>
  </page>
</app>

Si el recarga en vivo está fuera de sincronía después de instalar todos los componentes necesarios, intenta reiniciar todo. Una vez que lo hayas hecho, deberías ver una aplicación móvil con un aspecto nativo algo similar, construida con Angular y Capacitor!

Deberías ver la siguiente página como resultado:

konsta-angular

Conclusión

Capacitor es una excelente opción para construir aplicaciones nativas basadas en un proyecto web existente, ofreciendo una forma sencilla de compartir code y mantener una interfaz de usuario consistente.

Y con la adición de Capgo, es aún más fácil agregar actualizaciones en vivo a tu aplicación, asegurando que tus usuarios siempre tengan acceso a las últimas características y correcciones de errores.

Si deseas aprender a agregar Capgo a tu aplicación de Angular, echa un vistazo al siguiente artículo:

Sigue adelante desde Construyendo aplicaciones móviles con Angular y Capacitor

Si estás utilizando Desarrollo de aplicaciones móviles con Angular y Capacitor para planificar el comportamiento y la interfaz de medios nativos, conecta con Usando @capgo/capacitor-actividades-en-vivo para la capacidad nativa en Usando @capgo/capacitor-actividades-en-vivo @capgo/capacitor-actividades-en-vivo para el detalle de implementación en @capgo/capacitor-actividades-en-vivo Usando @capgo/capacitor-reproductor-de-videos para la capacidad nativa en Usando @capgo/capacitor-reproductor-de-videos @capgo/capacitor-reproductor-de-videos para el detalle de implementación en @capgo/capacitor-reproductor-de-videos, y Usando @capgo/capacitor-navegación-nativa para la capacidad nativa en Usando @capgo/capacitor-navegación nativa.

Actualizaciones en vivo para aplicaciones Capacitor

Cuando un error en la capa web está vivo, envía la corrección a través de Capgo en lugar de esperar días para la aprobación de la tienda de aplicaciones. Los usuarios reciben la actualización en segundo plano mientras los cambios nativos siguen en el camino de revisión normal.

Comienza Ahora

Últimas noticias de nuestro Blog

Capgo te da las mejores perspectivas que necesitas para crear una aplicación móvil verdaderamente profesional.