Neon
一个用于使用 Flutter 构建收敛式跨平台 Nextcloud 客户端的框架。
在 2023 年 Nextcloud 大会上,有一场闪电演讲总结了 Neon 框架:https://www.youtube.com/watch?v=MD3zlRHdSEw
贡献
请查阅我们的贡献文档,以开始使用 Neon 进行开发。
我们提供了大量文档,从帮助你搭建开发环境到我们的指南。 请在开始贡献之前务必阅读它们。
Neon 的目标
Neon 项目有三个主要目标:
- Neon 框架为 Nextcloud 客户端开发者承担了繁重的工作。Neon 已经处理了身份验证流程,并管理数据请求和缓存。这意味着开发者可以复用大量代码,无需重新发明轮子。
- Neon 应用是一个跨平台的 Nextcloud 客户端,可在 iOS、Android、macOS、Windows、Linux 和 Web 上运行。我们已支持 Android 和 Linux,其他平台正在开发中。
- Neon 应用是一个多客户端应用。这意味着你可以在同一个移动应用中拥有多个客户端。它实现了在多个应用之间无缝切换,正如 Nextcloud 用户在 Web 上一直享受的那样。
其他客户端当前存在的问题
- 有许多客户端被设计为仅在单一平台或设备类型上运行。它们拥有不同的代码库,这使得功能一致性和维护变得更加困难。
- 用户体验和功能在不同平台之间存在显著差异,这导致了用户的挫败感。这尤其影响了运行 Linux 的移动设备(例如 postmarketOS)。在该平台上根本没有合适的客户端。使用桌面版 Linux 客户端进行文件同步可能可行,但它仍然缺少在例如 Android 上可用的几乎所有功能,并且该客户端并未向移动屏幕的需求收敛。
- 即使在功能丰富的平台上,功能也分散在多个应用中,这使得那些只想在设备上充分利用其 Nextcloud 服务器的用户感到更加复杂。
Neon 作为框架如何尝试解决这些问题
Neon 项目使用 Dart 和 Flutter 来帮助移动客户端开发者构建应用。Flutter 使我们能够构建具有原生体验的跨平台客户端。 我们是一个 100% FOSS 框架,不依赖任何专有库,这使得开发者可以轻松地在 F-Droid 商店等地方发布他们的应用。 我们提供了一个生成的 Nextcloud Dart 客户端,它由随 Nextcloud 发布的新 OpenAPI 规范生成,并且已被其他 Dart 和 Flutter 项目使用。过去那种查看 PHP 代码并手动实现 API 客户端的耗时且极易出错的日子已经一去不复返了。 有关生成 OpenAPI 规范的更多详细信息,您可以观看 Nextcloud Conference 2023 的以下闪电演讲:https://www.youtube.com/watch?v=lI9PrOOMLzE
我们提供抽象、通用工具和预构建的 UI 组件(在 Flutter 中称为 Widgets),这些组件可以重复使用。这使得 Neon 能够轻松开发新的 Nextcloud 客户端,只需添加一些自定义 UI 元素和必要的状态管理,而其他一切都已为您处理妥当。
回馈贡献
我们鼓励每位客户端开发者将其应用实现回馈到 Neon 中。 这样,应用开发者就可以从大量可用的客户端中进行选择。
开发与支持
我们有一个 Matrix 空间,您可以在那里提问:https://matrix.to/#/#nextcloud-neon:matrix.org
功能
参见此处查看截图。
- :white_check_mark: 已支持
- :construction: 进行中
- :rocket: 计划中
| 应用 | 状态 |
|---|---|
| 仪表盘 | :white_check_mark: |
| 文件 | :white_check_mark: |
| 新闻 | :white_check_mark: |
| 笔记 | :white_check_mark: |
| 通知 | :white_check_mark: |
| 聊天 | :construction: |
| 活动 | :rocket: |
| 日历 | :rocket: |
| 联系人 | :rocket: |
| 食谱 | :rocket: |
| 支出 | :rocket: |
| 幻灯片 | :rocket: |
| 照片 | :rocket: |
| 任务 | :rocket: |
平台支持
| 平台 | 进度 |
|---|---|
| Android | :white_check_mark: |
| iOS | :construction: |
| MacOS | :construction: |
| Linux | :white_check_mark: |
| Windows | :rocket: |
| Web | :white_check_mark: |
试一试
查看 示例 以获取试用该应用的说明。