Introduction
Create an app
After you’ve set up the development environment change into the Nextcloud apps directory:
cd /var/www/nextcloud/apps
Then create a skeleton app in the app store. This doesn’t publish anything on the appstore yet, it just gives you a download.
Edit an existing app
Alternatively, if you would like to contribute to an existing app instead of creating a new one, first set up the development environment, then create an apps-extra folder in the Nextcloud root directory:
cd /var/www/nextcloud/apps-extra
You can then configure Nextcloud to run apps from this directory, by changing your app_paths system config in your 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,
    ),
),
Finally, clone the app to which you would like to contribute inside the apps-extra folder. For example:
Enable the app
The app can now be enabled on the Nextcloud apps page.
App architecture
The following directories have now been created:
- appinfo/: Contains app metadata and configuration 
- css/: Contains the CSS 
- img/: Contains icons and images 
- js/: Contains the JavaScript files 
- lib/: Contains the PHP class files of your app 
- src/: Contains the source code of your vue.js app 
- templates/: Contains the templates 
- tests/: Contains the tests