AppFlowy Docs
Search…
CodeMap(WIP)
This code map introduces the folder hierarchy of AppFlowy.
  1. 1.
    app_flowy : The flutter working directory, includes all the Dart code of AppFlowy.
    1. 1.
      assets:
      The directory contains all the resources that AppFlowy uses.
      1. 1.
        fonts
      2. 2.
        images
      3. 3.
        translations
    2. 2.
      lib
      1. 1.
        core:
      2. 2.
        startup:
        This directory includes the initialized tasks when the application launched.
      3. 3.
        user:
        This directory contains all the use-related components.
        1. 1.
          application
          Defines the tasks the user is supposed to do. (Shouldn't find any UI code or network code)
        2. 2.
          presentation
          Consists of Widgets that are used by the user and also the state of the Widgets.
      4. 4.
        workspace:
        This directory includes the codebase that is used to describe the user workspace.
        1. 1.
          application
          Defines the tasks the workspace is supposed to do. (Shouldn't find any UI code or network code)
        2. 2.
          presentation
          Consists of Widgets that are used by the workspace and also the state of the Widgets.
    3. 3.
      packages
      1. 1.
        flowy_board:
        This directory contains all the codes that are used to build the BoardView.
      2. 2.
        flowy_editor:
        This directory contains all the codes that are used to build the FlowyEditor.
      3. 3.
        flowy_infra:
        This directory contains the shared Dart code that is used by AppFlowy. Such as the shared text-style configuration, and theme configuration. etc.
      4. 4.
        flowy_infra_ui:
        This directory contains the shard Flutter widget that is used by AppFlowy. You can reuse the widgets here before designing to write a new widget.
      5. 5.
        flowy_sdk:
        This directory contains the codes that are used to communicate with the backend. Such as the Dart protobuf class definitions, FFI interface, and the dispatch event definitions.
    ​
  2. 2.
    rust-lib
    This directory is the backend code base that is written in Rust.
    1. 1.
      dart-ffi:
      This crate defines the FFI interfaces that are used to communicate with the frontend.
    2. 2.
      dart-notify
      This crate defines how to send a notification from backend to frontend.
    3. 3.
      flowy-database
      This crate contains the SQLite database definition.
    4. 4.
      flowy-folder
      This crate defines each workspace struct. A workspace contains a list of Apps, each App contains a list of Views, and each View can be a TextEditor, Grid, or Board.
    5. 5.
      flowy-grid
      This crate handles all the Grid operations, such as creating a grid or deleting a row in a grid.
    6. 6.
      flowy-text-block
      This crate help to save the text editor data to disk.
    7. 7.
      flowy-user
      This crate handles all the user-related operations.
    8. 8.
      flowy-sdk
      This crate is used to initial each crate including resolving their dependencies. It encapsulates all the abilities provided by the other crates.
    ​
  3. 3.
    scripts
​
​
​
​
​
Copy link