nextcloud / neon

A framework for building convergent cross-platform Nextcloud clients using Flutter.
Other
123 stars 31 forks source link
dart flutter hacktoberfest nextcloud

Neon

Neon logo

A framework for building convergent cross-platform Nextcloud clients using Flutter.

At the Nextcloud Conference 2023 there was a lightning talk summarizing the Neon framework: https://www.youtube.com/watch?v=MD3zlRHdSEw

Contributing

Check out our contributing docs to get started with developing with Neon.

We have a lot of documentation from helping you set up your development environment to our guidelines. Please make sure to read them before starting to contribute.

The goals of Neon

The Neon project has three main goals:

  1. The Neon framework does the heavy lifting for Nextcloud client developers. Neon already handles the authentication flow and manages data requests and caching. This means that developers can reuse a lot of the code and do not need to reinvent the wheel.
  2. The Neon app is a cross-platform Nextcloud client that runs on iOS, Android, macOS, Windows, Linux and Web. We already support Android and Linux with the other platforms being work in progress.
  3. The Neon app is a multi client app. This means that you can have multiple clients in the same mobile app. It enables seamless switching between multiple apps as Nextcloud users have enjoyed on the web forever.

Current problems with other clients

How Neon as a framework tries to solve them

The Neon project uses Dart and Flutter to help mobile client developers building apps. Flutter allows us to build convergent cross-platform clients that feel native. We are a 100% FOSS framework and do not rely on any proprietary libraries making it easy for developers to publish their apps in places like the F-Droid store. We provide a generated Nextcloud Dart client that is generated from the new OpenAPI specifications shipped with Nextcloud and is already being used by other Dart and Flutter projects. Gone are the days of looking at the PHP code and implementing an API client by hand which can be time-consuming and very error-prone. For more details on generating the OpenAPI specifications you can watch the following lightning talk from the Nextcloud Conference 2023: https://www.youtube.com/watch?v=lI9PrOOMLzE

We provide abstractions, common utilities and prebuilt UI components (called Widgets in Flutter) that can be re-used. This allows Neon to make developing a new Nextcloud client as easy as adding a few custom UI elements and the necessary state management, while everything else is already taken care of for you.

Contributing back

We encourage every client developer to contribute their app implementation back into Neon. This way the app developers can choose from a large set of clients to enable.

Development and support

We have a Matrix space where you can ask questions: https://matrix.to/#/#nextcloud-neon:matrix.org

Features

See here for screenshots.

App Status
Dashboard :white_check_mark:
Files :white_check_mark:
News :white_check_mark:
Notes :white_check_mark:
Notifications :white_check_mark:
Talk :construction:
Activity :rocket:
Calendar :rocket:
Contacts :rocket:
Cookbook :rocket:
Cospend :rocket:
Deck :rocket:
Photos :rocket:
Tasks :rocket:

Platform support

Platform Progress
Android :white_check_mark:
iOS :construction:
MacOS :construction:
Linux :white_check_mark:
Windows :rocket:
Web :white_check_mark:

Try it out

Check the example for instructions to try out the app.