菜单

AppFlowy 简介

相关源文件

目的与范围

本文档全面介绍了AppFlowy作为一款软件系统,涵盖了其核心理念、架构设计和关键组件。它为理解AppFlowy如何实现一个开源、隐私优先的协同工作空间工具(如Notion)替代方案奠定了基础。

有关Flutter前端架构的具体实现细节,请参阅前端架构和应用程序初始化。有关后端服务组织和Rust核心系统,请参阅后端架构和核心服务。开发设置和构建过程在入门和安装中有所涵盖。

AppFlowy是什么

AppFlowy是一个开源的协同工作空间应用程序,其设计基于三个基本原则:数据隐私优先可靠的原生体验社区驱动的可扩展性。与云优先的替代方案不同,AppFlowy让用户完全控制他们的数据,同时提供现代生产力工具所期望的丰富功能。

该系统结合了基于Flutter的跨平台前端和Rust驱动的后端,支持文档、数据库、AI集成以及在桌面和移动平台上的实时协作。

核心价值主张

原则实现
数据隐私优先本地优先架构,可选自托管云同步
原生体验Flutter UI,针对桌面和移动设备进行平台特定适配
社区可扩展性具有插件架构和模块化设计的开源代码库

来源: README.md108-149

系统架构概览

AppFlowy采用分层架构,清晰地分离了用户界面、业务逻辑和数据持久化层。

高层系统组件

来源: 提供的系统架构图,README.md54-58

核心技术与设计原则

技术栈

AppFlowy的架构基于两项主要技术,这些技术使其具备跨平台能力和性能特征

  • Flutter:在保持原生性能的同时,提供跨平台一致的用户界面
  • Rust:提供内存安全、并发性和高性能的后端操作

本地优先架构

该系统优先考虑本地数据存储和处理,云同步作为可选的增强功能而非必需。

来源: README.md129-133 系统架构图

关键系统组件

前端组件

Flutter前端围绕主要功能区域组织,每个区域都作为独立的页面组件和支持系统实现

组件主要类目的
文档编辑器AppFlowyEditorPage具有块级架构的富文本编辑
AI聊天AIChatPage会话式 AI 界面
导航HomeSideBar工作区导航和视图管理
数据库视图各种视图专用小部件网格、看板和日历界面
移动适配平台特定实现触控优化的移动界面

后端服务

Rust后端通过专门的管理器类提供核心业务逻辑和数据管理

来源: 系统架构图,README.md54-58

数据流和通信模式

事件驱动架构

AppFlowy实现了Flutter前端和Rust后端之间的事件驱动通信模式,确保类型安全和高性能的数据交换。

状态管理模式

该应用程序使用BLoC(业务逻辑组件)模式进行状态管理,提供可预测的状态转换以及UI和业务逻辑之间的清晰分离。

来源: 系统架构图,Flutter前端模式

平台支持和分发

AppFlowy支持多种部署场景和平台

支持的平台

平台分发方式实现说明
桌面直接下载、FlatHub、Snapcraft原生Flutter桌面实现
移动端App Store (iOS), Play Store (Android)平台特定的移动适配
自托管Docker 容器完整的服务器部署
开发源代码编译完整的开发环境

构建与分发系统

该项目使用cargo-make进行跨平台构建协调,支持所有目标平台的一致构建,同时管理Flutter-Rust集成的复杂性。

来源: README.md42-53 README.md64-67

国际化与无障碍

AppFlowy通过全面的国际化系统支持20多种语言,翻译文件在/frontend/resources/translations中管理。该系统集成了在线翻译工具,并支持自动化翻译工作流。

来源: README.md94-101

这一架构基础使AppFlowy能够兑现其隐私、原生性能和可扩展性的核心承诺,同时保持用户对现代协同工作空间工具所期望的丰富功能。