A framework for building convergent cross-platform Nextcloud clients using Flutter.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
renovate[bot] 304ab489a9
chore(deps): update dependency dart to >=3.1.2 <4.0.0
1 year ago
..
bin refactor(nextcloud): Rename WebDAV prop without values 1 year ago
lib chore(nextcloud): Remove unused additionalProperties from notes 1 year ago
test feat(app,dynamite,neon,neon_files,neon_news,neon_notes,neon_notifications,neon_lints,nextcloud): enable strict-raw-types 1 year ago
.gitignore Initial commit 3 years ago
LICENSE Symlink BSD-3 licenses 2 years ago
README.md chore: Update URLs 1 year ago
analysis_options.yaml chore(app,dynamite,dynamite_runtime,file_icons,neon,neon_files,neon_news,neon_notes,neon_notifications,neon_lints,nextcloud,sort_box): use custom neon_lints package 1 year ago
build.yaml dynamite, nextcloud: enable built_value 2 years ago
pubspec.yaml chore(deps): update dependency dart to >=3.1.2 <4.0.0 1 year ago
pubspec_overrides.yaml chore(app,dynamite,dynamite_runtime,file_icons,neon,neon_files,neon_news,neon_notes,neon_notifications,neon_lints,nextcloud,sort_box): use custom neon_lints package 1 year ago

README.md

nextcloud

A Nextcloud client written in Dart.

This client will become the replacement for https://github.com/provokateurin/dart-nextcloud at some point (See).

Installing

In the future this code will be available at https://pub.dev/packages/nextcloud, but for now you have to include it via git in your pubspec.yaml:

dependencies:
  nextcloud:
    git:
      url: https://github.com/nextcloud/neon
      path: packages/nextcloud
      ref: $COMMIT

dependency_overrides:
  dynamite_runtime:
    git:
      url: https://github.com/nextcloud/neon
      path: packages/dynamite/dynamite_runtime
      ref: $COMMIT

You can either remove the ref or use a commit hash. It's not recommended to remove it, because then the version will be updated very often.

Development

Except for WebDAV all client code is generated using OpenAPI specs which can be found in the ../../specs/ folder.
Templates for these OpenAPI specs are generated from the Nextcloud codebase to make development easier.

To generate such a template take a look at ../../tool/generate-nextcloud.sh.
After you have generated a template, you need to fill it out. Some endpoints can or have to be discarded.

Then you start writing tests for the endpoints you added.
To easily inspect the responses for an endpoint, just set the type to string inside the schema blocks of the spec and let the output be printed in the tests.

Sometimes you will have to look at the source code of Nextcloud, because the API is not always intuitive. Make sure to check if there is any API documentation that can help you.