Initialize

FlowySDK works as the AppFlowy application Backend. It will be initialized before the application launch. Check out the initialization sequence diagram shown below.

  1. FlowyRunner will get called when the entry point, the main function, got called.

  2. FlowyRunner call initialize function on each task that registers as a LaunchTask one by one.

  3. InitRustSDKTask calls the init function and passes the working directory into FlowySDK.

     getIt<FlowySDK>().init(directory)

    The directory is different according to the IntegrationMode, which means running AppFlowy on developing mode will not alter the data on release mode.

    1. IntegrationMode.release

     Directory documentsDir = await getApplicationDocumentsDirectory();
     final directory = Directory('${documentsDir.path}/flowy')
    1. IntegrationMode.develop

     Directory documentsDir = await getApplicationDocumentsDirectory();
     final directory = Directory('${documentsDir.path}/flowy_dev')
    1. IntegrationMode.test

     final directory = Directory("${Directory.current.path}/.sandbox")
  4. InitAppWidgetTask initialize the ApplicationWidget and call runApp function.

  5. InitPlatformServiceTask start the NetworkListener.

WIP

typing...๐Ÿ’ฌ๏ธ

Last updated