Saltar al contenido principal

Capacitor Guía de Contribución de Plugins

Aprende a contribuir de manera efectiva a los plugins Capacitor con una guía integral sobre configuración, estándares de codificación, pruebas y documentación.

Martin Donadieu

Martin Donadieu

Gerente de Contenido

Capacitor Guía de Contribución de Plugins

Capacitor Los plugins conectan tecnologías web con características de dispositivos nativos, lo que permite desarrollo de aplicaciones de múltiples plataformas. Esta guía te ayuda:

  • Configura tu entorno: Herramientas como Node.js, Xcode, y Android Studio son fundamentales.
  • Sigue los estándares de Code: Utiliza TypeScript, Swift, y Kotlin con convenciones de nombres y manejo de errores consistentes.
  • Prueba exhaustivamente: Escribe pruebas unitarias para JavaScript, iOS y Android para garantizar la confiabilidad.
  • Documenta con claridad: Utiliza JSDoc y archivos README para una adopción fácil.
  • Realiza una solicitud de extracción: Asegúrate de que la calidad sea alta, code, la prueba y la documentación antes de contribuir.

Guía completa sobre código abierto - Cómo contribuir

Configuración del Entorno de Desarrollo

Crear un entorno de desarrollo adecuado es clave para el desarrollo eficiente de plugins. Una configuración bien preparada permite un codificación, prueba y despliegue suaves de sus plugins.

Herramientas y Habilidades que Necesitarás

Antes de empezar, asegúrate de tener las siguientes herramientas instaladas:

CategoríaRequisitos
Herramientas BásicasNode.js (LTS), npm 6+, Git
IDE/EditoresVisual Studio Code o tu editor preferido
Desarrollo de iOSXcode, SwiftLint, CocoaPods
Desarrollo de AndroidAndroid Studio, Android SDK, JDK

También debe estar cómodo con TypeScript para el desarrollo web y, dependiendo de si se trabaja con iOS o Android, con Swift (para iOS) o Java/Kotlin (para Android) para tareas de desarrollo nativo [1][2].

Configuración de la Repósitorio Monolítico

El Capacitor plugins El ecosistema se basa en una estructura de repósitorio monolítico. Este enfoque garantiza que su trabajo se alinee con los estándares de la comunidad desde el principio

  1. Fork y Clonar el Repositorio
    Comience forkeando el repositorio de Capacitor plugins en GitHub. Luego, clone su repositorio forkeado:

    git clone https://github.com/your-username/capacitor-plugins.git
    cd capacitor-plugins
    npm install
  2. Instalar Dependencias y Compilar
    Ejecuta el siguiente comando para instalar todo lo que necesitas y compilar los plugins:

    npm run build
  3. Configurar Control de Versiones
    Utiliza ramas de características para tus cambios y mantén sincronizada tu rama con el repositorio upstream.

Preparando Plataformas Nativas

Para el desarrollo de aplicaciones cruzadas, necesitarás configurar tanto el entorno iOS como Android.

Para iOS:

  • Descarga Xcode desde la Tienda de Aplicaciones de Mac.

  • Instala herramientas de línea de comandos con:

    xcode-select --install
  • Instala CocoaPods con:

    sudo gem install cocoapods
  • Configura una cuenta de desarrollador de Apple y los certificados necesarios.

  • Utiliza SwiftLint (opcional) para mantener la calidad de code.

Para Android:

  • Instale Android Studio junto con la última SDK y una dispositivo virtual.
  • Asegúrese de tener instalado un JDK.
  • Configure la SDK de Android correctamente dentro de Android Studio.

Una vez que estén configuradas estas plataformas, estará listo para seguir las prácticas de codificación establecidas y sumergirse en el desarrollo de plugins.

Code Standards Guide

Ahora que su entorno de desarrollo está configurado, siga estas directrices para crear plugins que sean fáciles de mantener y usar.

Cumplimiento del Estilo de Guía

La ecosistema de plugins Capacitor aplica estándares de codificación estrictos utilizando herramientas como ESLint, Prettier, y SwiftLint. A continuación, se muestra un resumen rápido de los formatos requeridos:

ComponenteFormato
VariablesdeviceInfo (camelCase)
ClasesBatteryManager (PascalCase)
MétodosgetLanguageCode() (camelCase)
ConstantesMAX_RETRY_COUNT (SNAKE_CASE)

Los plugins deben utilizar TypeScript para una mayor seguridad de tipos y características de ES6+ como async/awaitAdemás, sigan las convenciones de codificación específicas de plataforma para Swift (iOS) y Kotlin (Android).

Gestión de Errores y Tipos

Es crucial un manejo de errores consistente para la compatibilidad entre plataformas. Aquí hay un ejemplo:

async checkPermissions(): Promise<PermissionStatus> {
  try {
    const result = await this.implementation.checkPermissions();
    return result;
  } catch (error) {
    throw new Error(`Permission check failed: ${error.message}`);
  }
}

Para la seguridad de tipos:

  • Utilice interfaces enfocadas en casos de uso específicos.
  • Aplicar tipos de unión para variaciones específicas de plataforma.

Code Documentación

Una buena documentación es clave para hacer que tu plugin sea accesible y fácil de usar. Sigue estas prácticas:

  1. API Documentación: Escribe comentarios de JSDoc que funcionen con @capacitor/docgenPor ejemplo:
/**
 * @description Get the device's current battery level
 * @returns Promise with the battery level percentage
 */
async getBatteryLevel(): Promise<{ level: number }>;
  1. Estructura de README: Incluye información esencial como instrucciones de instalación, configuración, requisitos específicos de plataforma, ejemplos de uso y una referencia detallada API.

La documentación bien escrita garantiza que tu plugin sea fácil de adoptar y contribuye a la comunidad Capacitor más amplia.

sbb-itb-f9944d2

Guía de Pruebas de Plugin

Las pruebas de Capacitor plugins implican centrarse en unas pocas áreas críticas para garantizar una funcionalidad suave y confiabilidad.

Pruebas de Puente Nativo

Las pruebas de puente nativo garantizan una comunicación adecuada entre JavaScript y code. Para empezar, configura tu entorno de prueba con frameworks adaptados a cada plataforma.

Aquí tienes un ejemplo de Jest una prueba de unidad para el lado de JavaScript:

// Example of a Jest unit test for the JavaScript bridge
describe('DeviceInfo Plugin', () => {
  test('getBatteryLevel returns valid percentage', async () => {
    const result = await DeviceInfo.getBatteryLevel();
    expect(result.level).toBeGreaterThanOrEqual(0);
    expect(result.level).toBeLessThanOrEqual(100);
  });
});

Para probar en el lado nativo, utiliza XCTest para iOS y JUnit para Android. A continuación, tienes un ejemplo para Android:

@Test
fun testBatteryLevel() {
    val plugin = DeviceInfo()
    val result = plugin.getBatteryLevel()
    assertTrue(result.level in 0..100)
}

Una vez que hayas confirmado que la funcionalidad de la puente básica funciona como se espera, pasa a probar flujos de trabajo de usuario completos.

Pruebas de Plugin Completo

Para asegurarte de que tu plugin se desempeña bien en diferentes escenarios, prueba varias categorías:

Categoría de PruebaÁreas de enfoque clave
Pruebas de IntegraciónFuncionalidad cruzar plataformas
Pruebas de rendimientoUso de recursos y tiempos de respuesta
Pruebas de seguridadManipulación de datos y verificaciones de permisos

Para plugins con características complejas, simula escenarios de usuario reales. Por ejemplo, si estás probando un plugin de DeviceInfo, verifica:

  • Subidas exitosas bajo diferentes condiciones de red
  • Información de progreso precisa
  • Uso de memoria durante transferencias de archivos grandes

Pruebas de actualización OTA con Capgo

Capgo Interfaz de la consola de actualización en vivo

Capgo herramientas de código abierto facilitan la implementación y prueba de actualizaciones de manera rápida. Aquí está cómo utilizarlas:

  1. Configuración canales de actualización como dev, staging y producción
  2. Automatizar despliegues con herramientas CI/CD
  3. Enviar actualizaciones de manera instantánea
  4. Monitoree el rendimiento y problemas a través de Capgo panel de control.

Para lanzamientos en fases, Capgo te permite limitar las actualizaciones a un pequeño porcentaje de usuarios. Por ejemplo, puedes lanzar una nueva versión a un 25% de usuarios cada 24 horas:

// Example configuration for staged rollout
{
  "plugin": "camera-plugin",
  "version": "1.2.0",
  "rollout": {
    "percentage": 25,
    "interval": "24h"
  }
}

Esta aproximación en fases ayuda a identificar problemas temprano aprovechando la retroalimentación de la comunidad antes de un lanzamiento completo.

Proceso de Solicitud de Revisión

Una vez que hayas probado exhaustivamente tus cambios, sigue estos pasos para enviar tu solicitud de revisión:

Lista de Verificación de Solicitud de Revisión

Antes de enviar, asegúrate de haber cubierto estas áreas clave:

CategoríaQué verificar
Code Calidad- Asegúrate de que las implementaciones de Swift/Kotlin se alineen con el API web.
Pruebas- Agregar pruebas unitarias para cualquier nueva funcionalidad.
- Confirmar que los controles de pipeline CI/CD son exitosos.
Documentación- Actualizar el README, documentación inline y CHANGELOG según sea necesario.

Directrices de la Comunidad

Al colaborar, sigue estas mejores prácticas:

  • Responder rápidamente a los comentarios de los revisores.
  • Mantener las discusiones enfocadas en detalles técnicos.
  • Utiliza la función de sugerencia de GitHub para proponer code cambios.
  • Enviar solicitudes de extracción pequeñas y enfocadas que aborden una característica o problema a la vez.

Para cambios más grandes, es una buena idea crear un problema primero y discutir tu enfoque. El equipo de Capacitor depende de GitHub Actions para controles automatizados, y todos los controles deben pasar antes de que tu solicitud de extracción pueda ser revisada.

Capgo Guía de Integración

Si su plugin involucra actualizaciones en vivo, asegúrese de que funcione de manera fluida con Capgo antes de presentarlo:

  1. Control de Versión
    Utilice una versión semántica clara para su plugin, y documente todos los cambios en el changelog. El sistema de Capgo ayuda a rastrear la adopción de versiones en dispositivos de los usuarios.

  2. Integración CI/CD
    Integre Capgo en su pipeline de CI/CD para automatizar los despliegues de actualizaciones.

  3. Monitoreo de Actualizaciones
    Monitoree las tasas de éxito de despliegue y asegúrese de cumplir con las directrices de las tiendas de aplicaciones.

Resumen

Para hacer una contribución significativa con su plugin, es importante seguir el proceso establecido y cumplir con los estándares de la comunidad. Esto incluye adherirse a las directrices de codificación de Capacitor y probar exhaustivamente su trabajo.

La lista de verificación de PR destaca la necesidad de presentaciones de alta calidad. Si su plugin admite actualizaciones en vivo, integrar con Capgo (tal como se mencionó anteriormente) puede ayudarlo a liberar actualizaciones rápidamente sin tener que esperar aprobaciones de las tiendas de aplicaciones.

Una vez que su PR se haya fusionado, manténgase involucrado siguiendo los problemas y liberando actualizaciones de versiones. La interacción regular con la comunidad, la mantenimiento consistente y manteniéndose actualizado con Capacitor actualizaciones asegurará que su plugin permanezca útil y relevante.

Preste atención a los comentarios de los usuarios y realice actualizaciones según sea necesario. Este esfuerzo continuo ayuda a mantener la calidad general del ecosistema y mantiene su plugin valioso para los desarrolladores.

Actualizaciones en vivo para aplicaciones Capacitor

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

Empezar Ahora

Últimas noticias de nuestro Blog

Capgo le da las mejores pistas que necesita para crear una aplicación móvil verdaderamente profesional.