You are reading an outdated version of this documentation. Please check out the latest version of the developer manual.

App Development

Intro

Before you start, please check if there already is a similar app in the App Store or the GitHub organisation that you could contribute to. Also, feel free to communicate your idea and plans in the forum so other contributors might join in.

Then, please make sure you have set up a development environment:

Before starting to write an app please read the security and coding guidelines:

After this you can start with the tutorial

Once you are ready for publishing, check out the app store process:

For enhanced security it is also possible to sign your code:

App development

Take a look at the changes in this version:

Create a new app:

Inner parts of an app:

Requests

How a request is being processed:

View

The app’s presentation layer:

Storage

Create database tables, run Sql queries, store/retrieve configuration information and access the filesystem:

Authentication & Users

Creating, deleting, updating, searching, login and logout:

Writing a two-factor auth provider:

Hooks

Listen on events like user creation and execute code:

Background Jobs

Periodically run code in the background:

Settings

An app can register both admin settings as well as personal settings:

Logging

Log to the data/nextcloud.log:

Repair steps

Repair steps can be used to run code at various stages in app installation, uninstallation, migration ...

Testing

Write automated tests to ensure stability and ease maintenance:

PHPDoc Class Documentation

Nextcloud class and function documentation: