Introducción

Resumen

Esta página explica cómo crear una app nueva a partir de un esqueleto generado en la tienda de apps o contribuir a una app existente desde la carpeta apps-extra, cómo activarla y qué contiene cada directorio de una app. Está dirigida a quienes desarrollan apps.

Fuente: documentación de Nextcloud, «developer_manual/app_development/intro», versión 3ad9158, licencia CC BY 3.0; traducida y adaptada para APS Conecta Gestión.

Crear una app

Después de haber configurado el entorno de desarrollo, cambiar al directorio de apps de APS Conecta Gestión:

cd /var/www/nextcloud/apps

Luego crear un esqueleto de app en la tienda de apps. Esto todavía no publica nada en la tienda de apps; solo entrega una descarga.

Editar una app existente

Como alternativa, si se quiere contribuir a una app existente en lugar de crear una nueva, primero configurar el entorno de desarrollo y luego crear una carpeta apps-extra en el directorio raíz de APS Conecta Gestión:

cd /var/www/nextcloud/apps-extra

Después se puede configurar APS Conecta Gestión para que ejecute apps desde este directorio, cambiando la configuración del sistema app_paths en el config.php

'apps_paths' => array (
    0 => array (
        'path' => '/var/www/html/apps',
        'url' => '/apps',
        'writable' => false,
    ),
    1 => array (
        'path' => '/var/www/html/apps-extra',
        'url' => '/apps-extra',
        'writable' => false,
    ),
),

Por último, clonar la app a la que se quiere contribuir dentro de la carpeta apps-extra. Por ejemplo:

Activar la app

Ahora la app se puede activar en la página de apps de APS Conecta Gestión.

Arquitectura de la app

Ahora se han creado los siguientes directorios:

  • appinfo/: contiene los metadatos y la configuración de la app

  • css/: contiene el CSS

  • img/: contiene iconos e imágenes

  • js/: contiene los archivos JavaScript

  • lib/: contiene los archivos de clases PHP de la app

  • src/: contiene el código fuente de la app de vue.js

  • templates/: contiene las plantillas

  • tests/: contiene las pruebas