rapido

Rapido brings Rapid Application Development principles to mobile development, currently available for Flutter.

简介

Rapido 使构建以文档为中心的应用变得简单,通过

  1. 提供一个 DocumentList 类,使管理用户数据,包括持久化,变得容易。
  2. 提供了许多您需要与 DocumentList 配合使用的 UI 元素,包括 ListViews、Forms 和其他小部件。它们知道如何与 DocumentList 配合,因此几乎无需额外编码即可提供大量功能。
  3. 轻松自定义核心小部件的能力。

展示一下

创建一个 DocumentList 并定义字段标签,然后像这样创建一个 DocumentListScaffold

class _MyHomePageState extends State<MyHomePage> {
  DocumentList taskList = DocumentList("Tarea",
      labels: {"Date": "date", "Task": "task", "Priority": "pri count"});

  @override
  Widget build(BuildContext context) {
    return DocumentListScaffold(taskList);
  }
}

rapido 小部件会根据字段名称推断每个字段中的数据类型。您无需额外编码即可获得所有功能。
add button, forms, listview, edit and delete, sorting

您可以替换任何小部件,也可以使用内置的自定义挂钩来快速创建自己的外观和感觉。

更仔细地看看

使用 DocumentList 概览

DocumentList 是 R.A.D. 体验的核心。通过简单地使用列表,您将获得

  1. 对象的本地持久化。
  2. 默认的 CRUD UI,您的用户可以使用它来显示、创建、编辑和删除列表中的文档。

导入

所有您需要的东西都在 document_list.dart 中

import 'package:rapido/document_list.dart';

此导入包括 DocumentList 本身,以及所有与它协同工作 UI 元素。

DocumentList

要创建 DocumentList,只需包含一个“documentType”字符串即可。DocumentList 使用此字符串来组织其文档。然后,您只需传入 Map<String, dynamic> 类型的映射即可向其中添加文档。

DocumentList taskList = DocumentList("tasks");
taskList.add({"name":"grocery shopping", "priority": 1, "done": false});

请注意,映射使用字符串作为键,但值是动态的。您可以在 DocumentList 中存储任何您喜欢的内容。

您可以使用正常的列表功能来修改和删除文档。

taskList[0]  = {"name":"grocery shopping", "priority": 1, "done": true};

您可以删除它们

taskList.removeAt[0];

请注意,对 DocumentList 的所有更改都会自动持久化到用户的手机上!用户可以关闭应用程序,当他们重新打开时,数据仍然在那里。

UI 元素

创建 DocumentList 后,您可以在 Rapido 提供的各种 UI 元素中使用它。只需传入 DocumentList,小部件就可以自行确定要向用户显示哪些功能。

例如,如果您想轻松创建一个支持添加、删除和编辑文档的应用程序,您可以使用 DocumentListScaffold 类。

DocumentListScaffold(taskList, title:"Task List");

DocumentListView 将创建一个 ListView 来显示和编辑列表中的项目。它还提供了几个自定义选项,但默认设置“就是好用”。

DocumentListView(taskList);

DocumentForm 允许轻松创建新文档或编辑现有文档。

创建新文档

DocumentForm(taskList);

编辑现有文档

DocumentForm(taskList, index: 0);

欢迎反馈

Rapido 正在快速发展中。请访问 我们的 Github 仓库 来记录任何问题或功能请求。当然,我们非常欢迎 pull request。

路线图

更多 TypedInputFields

DocumentForm 通过根据文档中的字段名称创建输入字段来工作。我们目前的计划是添加更多类型的输入字段,例如

  • 开关
  • 收藏
  • 时间与日期时间
  • 长文本

云存储和同步

我们计划让 DocumentList 的文档存储和同步变得极其容易。

相机小部件

我们需要大大简化在应用程序中使用相机的过程。

GitHub

https://github.com/rapido-mobile/rapido-flutter