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.
 
 
Nikolas Rimikis 01e9c53cd9
Merge pull request #1155 from nextcloud/fix/dynamite/one_member_allOf
1 year ago
.cspell feat(dynamite_petstore_example): Init 1 year ago
.fvm chore(deps): update dependency flutter to v3.16.0 1 year ago
.github chore(deps): update kuhnroyal/flutter-fvm-config-action action to v2 1 year ago
.husky refactor(neon,neon_news,neon_notes,neon_files,neon_notifications): refactor l10n handling 1 year ago
.idea Remove unnecessary IntelliJ files 2 years ago
.vscode feat(tool): add vscode extension recommendations 1 year ago
assets chore(dynamite_runtime,sort_box): Relicense as BSD-3-Clause 1 year ago
docs chore: Move license file 1 year ago
external feat(dynamite_petstore_example): Init 1 year ago
packages fix(dynamite,dynamite_end_to_end_test): fix class name collision on single member allOf 1 year ago
tool feat(dynamite_petstore_example): Init 1 year ago
.gitattributes nextcloud, tool: Generate client using dynamite 2 years ago
.gitignore fix(tool): update gitignore 1 year ago
.gitmodules feat(dynamite_petstore_example): Init 1 year ago
CODE_OF_CONDUCT.md feat: Add code of conduct 1 year ago
CONTRIBUTING.md refactor(tool,nextcloud): Use php standalone webserver 1 year ago
README.md chore: Update README.md 1 year ago
commitlint.yaml feat(dynamite_petstore_example): Init 1 year ago
cspell.json feat(dynamite_petstore_example): Init 1 year ago
dartdoc_options.yaml chore: test for dart doc errors 1 year ago
melos.yaml chore(tool): Run format after melos bootstrap 1 year ago
pubspec.yaml chore(deps): update dependency melos to ^3.2.0 1 year ago

README.md

Neon

Neon logo

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

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

  • There are many clients that are designed to run exclusively on a single platform or device type. They all have different code bases, which makes feature parity and maintenance much more difficult.
  • The user experience and features differ significantly from platform to platform, which leads to frustration. This particularly affects mobile devices running Linux (e.g. postmarketOS). There is no suitable client on this platform at all. Using the desktop Linux client for file synchronization would probably work, but it still lacks almost all the features available on e.g. Android and the client is not converging to the needs of a mobile screens.
  • Even on feature-rich platforms, features are spread across multiple apps, making it more complicated for the user who simply wants to get the most out of their Nextcloud server on their device.

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.

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

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. 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.

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.

  • Supported
  • 🚧 Work in progress
  • 🚀 Planned
App Status
Dashboard
Files
News
Notes
Notifications
Activity 🚀
Calendar 🚀
Contacts 🚀
Cookbook 🚀
Photos 🚀
Talk 🚀
Tasks 🚀

Platform support

Platform Progress
Android
iOS 🚧
MacOS 🚧
Linux
Windows 🚀
Web 🚧