Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f7d66a1e59 | ||
|
|
706f64c9dd | ||
|
|
d2a8f89668 | ||
|
|
b0a818b813 | ||
|
|
259a61378d | ||
|
|
0e8ebe1e4d | ||
|
|
118219e5b3 | ||
|
|
d160c35e29 | ||
|
|
51a7cc9dee | ||
|
|
b51b12ab7d | ||
|
|
95a5c06e30 | ||
|
|
2e03e03c77 | ||
|
|
b36de8b8c8 | ||
|
|
6cdbb459fa | ||
|
|
7f11b01480 | ||
|
|
b63a6e8abc | ||
|
|
4661e32053 |
No files matched your search
+42
-42
@@ -1,3 +1,5 @@
|
||||
#https://github.com/sagiegurari/cargo-make
|
||||
|
||||
extend = [
|
||||
{ path = "scripts/makefile/desktop.toml" },
|
||||
{ path = "scripts/makefile/protobuf.toml" },
|
||||
@@ -11,72 +13,70 @@ extend = [
|
||||
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true
|
||||
CARGO_MAKE_CRATE_FS_NAME = "dart_ffi"
|
||||
CARGO_MAKE_CRATE_NAME = "dart-ffi"
|
||||
VERSION = "0.0.1"
|
||||
FEATURES = "flutter,http_server"
|
||||
VERSION = "0.0.2"
|
||||
FEATURES = "flutter"
|
||||
PRODUCT_NAME = "AppFlowy"
|
||||
|
||||
#CRATE_TYPE: https://doc.rust-lang.org/reference/linkage.html
|
||||
CRATE_TYPE = "cdylib"
|
||||
|
||||
|
||||
[env.development-mac]
|
||||
DEV = true
|
||||
PROD = false
|
||||
TARGET_OS = "macos"
|
||||
DESKTOP_TARGET = "x86_64-apple-darwin"
|
||||
CRATE_TYPE = "cdylib"
|
||||
RUST_COMPILE_TARGET = "x86_64-apple-darwin"
|
||||
BUILD_FLAG = "debug"
|
||||
FLUTTER_PLATFORM = "macos"
|
||||
FLUTTER_OUTPUT_DIR = "Debug"
|
||||
FEATURES = "flutter"
|
||||
PRODUCT_EXT = "app"
|
||||
|
||||
|
||||
[env.production-mac]
|
||||
DEV = false
|
||||
PROD = true
|
||||
TARGET_OS = "macos"
|
||||
DESKTOP_TARGET = "x86_64-apple-darwin"
|
||||
CRATE_TYPE = "cdylib"
|
||||
[env.production-desktop-mac-aarch64]
|
||||
BUILD_FLAG = "release"
|
||||
FLUTTER_PLATFORM = "macos"
|
||||
TARGET_OS = "macos"
|
||||
RUST_COMPILE_TARGET = "aarch64-apple-darwin"
|
||||
FLUTTER_OUTPUT_DIR = "Release"
|
||||
FEATURES = "flutter"
|
||||
PRODUCT_EXT = "app"
|
||||
|
||||
[env.production-desktop-mac-x86]
|
||||
BUILD_FLAG = "release"
|
||||
TARGET_OS = "macos"
|
||||
RUST_COMPILE_TARGET = "x86_64-apple-darwin"
|
||||
FLUTTER_OUTPUT_DIR = "Release"
|
||||
PRODUCT_EXT = "app"
|
||||
CRATE_TYPE = "staticlib"
|
||||
|
||||
[env.production-desktop-windows-x86]
|
||||
BUILD_FLAG = "release"
|
||||
TARGET_OS = "windows"
|
||||
RUST_COMPILE_TARGET = "x86_64-pc-windows-gnu"
|
||||
FLUTTER_OUTPUT_DIR = "Release"
|
||||
PRODUCT_EXT = "exe"
|
||||
|
||||
[tasks.echo_env]
|
||||
script = [
|
||||
'''
|
||||
echo CRATE_TYPE: ${CRATE_TYPE}
|
||||
echo BUILD_FLAG: ${BUILD_FLAG}
|
||||
echo TARGET_OS: ${TARGET_OS}
|
||||
echo RUST_COMPILE_TARGET: ${RUST_COMPILE_TARGET}
|
||||
echo FEATURES: ${FEATURES}
|
||||
echo PRODUCT_EXT: ${PRODUCT_EXT}
|
||||
echo ${platforms}
|
||||
'''
|
||||
]
|
||||
|
||||
[env.production-ios]
|
||||
DEV = false
|
||||
PROD = true
|
||||
BUILD_FLAG = "release"
|
||||
TARGET_OS = "ios"
|
||||
CRATE_TYPE = "staticlib"
|
||||
BUILD_FLAG = "release"
|
||||
FLUTTER_PLATFORM = "ios"
|
||||
FLUTTER_OUTPUT_DIR = "Release"
|
||||
PRODUCT_EXT = "ipa"
|
||||
|
||||
[env.production-android]
|
||||
DEV = false
|
||||
PROD = true
|
||||
TARGET_OS = "android"
|
||||
CRATE_TYPE = "cdylib"
|
||||
BUILD_FLAG = "release"
|
||||
FLUTTER_PLATFORM = "apk"
|
||||
FLUTTER_OUTPUT_DIR = "Release"
|
||||
PRODUCT_EXT = "apk"
|
||||
|
||||
[env.production-win]
|
||||
DEV = false
|
||||
PROD = true
|
||||
TARGET_OS = "windows"
|
||||
CRATE_TYPE = "cdylib"
|
||||
BUILD_FLAG = "release"
|
||||
FLUTTER_PLATFORM = "apk"
|
||||
FLUTTER_OUTPUT_DIR = "Release"
|
||||
PRODUCT_EXT = "exe"
|
||||
|
||||
[tasks.setup-crate-type]
|
||||
private = true
|
||||
script = [
|
||||
"""
|
||||
toml = readfile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml
|
||||
val = replace ${toml} "rlib" ${CRATE_TYPE}
|
||||
val = replace ${toml} "dylib" ${CRATE_TYPE}
|
||||
result = writefile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml ${val}
|
||||
assert ${result}
|
||||
""",
|
||||
@@ -88,7 +88,7 @@ private = true
|
||||
script = [
|
||||
"""
|
||||
toml = readfile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml
|
||||
val = replace ${toml} ${CRATE_TYPE} "rlib"
|
||||
val = replace ${toml} ${CRATE_TYPE} "dylib"
|
||||
result = writefile ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/Cargo.toml ${val}
|
||||
assert ${result}
|
||||
""",
|
||||
|
||||
@@ -5,21 +5,30 @@
|
||||
⭐️ The Open Source Notion Alternative ⭐️ <br>
|
||||
</h1>
|
||||
|
||||
|
||||
<p align="center">
|
||||
<a href="https://discord.gg/9Q2xaN37tV"><img src="https://img.shields.io/badge/AppFlowy.IO-discord-orange"></a>
|
||||
<a href="https://github.com/AppFlowy-IO/appflowy"><img src="https://img.shields.io/github/stars/AppFlowy-IO/appflowy.svg?style=flat&logo=github&colorB=deeppink&label=stars"></a>
|
||||
<a href="https://github.com/AppFlowy-IO/appflowy"><img src="https://img.shields.io/github/forks/AppFlowy-IO/appflowy.svg"></a>
|
||||
<a href="https://opensource.org/licenses/AGPL-3.0"><img src="https://img.shields.io/badge/license-APGL-purple.svg" alt="License: AGPL"></a>
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
<p align="center">
|
||||
You are in charge of your data and customizations.
|
||||
</p>
|
||||
|
||||
|
||||
<div align="center">
|
||||
|
||||

|
||||
|
||||
</div>
|
||||
|
||||
<p align="center">
|
||||
<a href="http://www.appflowy.io"><b>Website</b></a> •
|
||||
<a href="https://discord.gg/9Q2xaN37tV"><b>Discord</b></a> •
|
||||
<a href="https://twitter.com/appflowy"><b>Twitter</b></a> •
|
||||
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
|
||||
<p align="center"><img src="https://github.com/AppFlowy-IO/appflowy/blob/main/doc/imgs/welcome.png" alt="The Open Source Notion Alternative." width="1000px" /></p>
|
||||
@@ -42,17 +51,27 @@ How to build on MacOS, please follow these simple steps.
|
||||
|
||||
**Step 1:**
|
||||
|
||||
* git clone [https://github.com/AppFlowy-IO/appflowy.git](https://github.com/AppFlowy-IO/appflowy.git)
|
||||
```shell
|
||||
git clone https://github.com/AppFlowy-IO/appflowy.git
|
||||
```
|
||||
|
||||
**Step 2:**
|
||||
|
||||
- `cd appflowy`
|
||||
- `make install_rust`
|
||||
- `make install_cargo_make`
|
||||
- `cargo make install_targets`
|
||||
```shell
|
||||
cd appflowy
|
||||
```
|
||||
```shell
|
||||
make install_rust
|
||||
```
|
||||
```shell
|
||||
make install_cargo_make
|
||||
```
|
||||
```shell
|
||||
cargo make install_targets
|
||||
```
|
||||
|
||||
>
|
||||
>
|
||||
>
|
||||
> 🚀 Skip install_rust or install_cargo_make if you already installed it.
|
||||
> FYI, AppFlowy uses [https://github.com/sagiegurari/cargo-make](https://github.com/sagiegurari/cargo-make) to construct the build scripts
|
||||
|
||||
@@ -60,7 +79,9 @@ How to build on MacOS, please follow these simple steps.
|
||||
|
||||
Follow the instructions [here](https://flutter.dev/docs/get-started/install) to install Flutter. As AppFlowy uses the `dev` channel, you need to switch the channel. Just type:
|
||||
|
||||
* `flutter channel dev`
|
||||
```shell
|
||||
flutter channel dev
|
||||
```
|
||||
|
||||
**Step 4:**
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flowy_infra_ui/style_widget/text.dart';
|
||||
//import 'package:flowy_infra_ui/style_widget/icon_button.dart';
|
||||
import 'package:avatars/avatars.dart';
|
||||
|
||||
class MenuUser extends StatelessWidget {
|
||||
final UserProfile user;
|
||||
@@ -36,17 +35,22 @@ class MenuUser extends StatelessWidget {
|
||||
}
|
||||
|
||||
Widget _renderAvatar(BuildContext context) {
|
||||
return SizedBox(
|
||||
width: 30,
|
||||
height: 30,
|
||||
return const SizedBox(
|
||||
width: 25,
|
||||
height: 25,
|
||||
child: ClipRRect(
|
||||
borderRadius: Corners.s5Border,
|
||||
child: Avatar(
|
||||
value: 'M',
|
||||
shape: AvatarShape.circle(20),
|
||||
placeholderColors: const [Color.fromRGBO(132, 39, 224, 1.0)],
|
||||
),
|
||||
),
|
||||
borderRadius: Corners.s5Border,
|
||||
child: CircleAvatar(
|
||||
backgroundColor: Color.fromRGBO(132, 39, 224, 1.0),
|
||||
child: Text(
|
||||
'M',
|
||||
style: TextStyle(
|
||||
fontSize: 18,
|
||||
fontWeight: FontWeight.w300,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
)),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,6 @@ import flowy_infra_ui
|
||||
import flowy_sdk
|
||||
import package_info_plus_macos
|
||||
import path_provider_macos
|
||||
import sqflite
|
||||
import url_launcher_macos
|
||||
import window_size
|
||||
|
||||
@@ -20,7 +19,6 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
FlowySdkPlugin.register(with: registry.registrar(forPlugin: "FlowySdkPlugin"))
|
||||
FLTPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FLTPackageInfoPlusPlugin"))
|
||||
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
|
||||
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
|
||||
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
|
||||
WindowSizePlugin.register(with: registry.registrar(forPlugin: "WindowSizePlugin"))
|
||||
}
|
||||
@@ -6,16 +6,10 @@ PODS:
|
||||
- flowy_sdk (0.0.1):
|
||||
- FlutterMacOS
|
||||
- FlutterMacOS (1.0.0)
|
||||
- FMDB (2.7.5):
|
||||
- FMDB/standard (= 2.7.5)
|
||||
- FMDB/standard (2.7.5)
|
||||
- package_info_plus_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- path_provider_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- sqflite (0.0.2):
|
||||
- FlutterMacOS
|
||||
- FMDB (>= 2.7.5)
|
||||
- url_launcher_macos (0.0.1):
|
||||
- FlutterMacOS
|
||||
- window_size (0.0.2):
|
||||
@@ -28,14 +22,9 @@ DEPENDENCIES:
|
||||
- FlutterMacOS (from `Flutter/ephemeral`)
|
||||
- package_info_plus_macos (from `Flutter/ephemeral/.symlinks/plugins/package_info_plus_macos/macos`)
|
||||
- path_provider_macos (from `Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos`)
|
||||
- sqflite (from `Flutter/ephemeral/.symlinks/plugins/sqflite/macos`)
|
||||
- url_launcher_macos (from `Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos`)
|
||||
- window_size (from `Flutter/ephemeral/.symlinks/plugins/window_size/macos`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- FMDB
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
flowy_editor:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/flowy_editor/macos
|
||||
@@ -49,8 +38,6 @@ EXTERNAL SOURCES:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/package_info_plus_macos/macos
|
||||
path_provider_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/path_provider_macos/macos
|
||||
sqflite:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/sqflite/macos
|
||||
url_launcher_macos:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/url_launcher_macos/macos
|
||||
window_size:
|
||||
@@ -59,12 +46,10 @@ EXTERNAL SOURCES:
|
||||
SPEC CHECKSUMS:
|
||||
flowy_editor: 26060a984848e6afac1f6a4455511f4114119d8d
|
||||
flowy_infra_ui: 9d5021b1610fe0476eb1191bf7cd41c4a4138d8f
|
||||
flowy_sdk: c302ac0a22dea596db0df8073b9637b2bf2ff6fd
|
||||
flowy_sdk: b7efddcc3af4ea87dc2f842c22dc37283bb9e169
|
||||
FlutterMacOS: 57701585bf7de1b3fc2bb61f6378d73bbdea8424
|
||||
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
|
||||
package_info_plus_macos: f010621b07802a241d96d01876d6705f15e77c1c
|
||||
path_provider_macos: 160cab0d5461f0c0e02995469a98f24bdb9a3f1f
|
||||
sqflite: a5789cceda41d54d23f31d6de539d65bb14100ea
|
||||
url_launcher_macos: 45af3d61de06997666568a7149c1be98b41c95d4
|
||||
window_size: 339dafa0b27a95a62a843042038fa6c3c48de195
|
||||
|
||||
|
||||
@@ -406,6 +406,7 @@
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
STRIP_STYLE = "non-global";
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
};
|
||||
@@ -488,6 +489,7 @@
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = macosx;
|
||||
STRIP_STYLE = "non-global";
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
};
|
||||
@@ -534,6 +536,7 @@
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.11;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = macosx;
|
||||
STRIP_STYLE = "non-global";
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
};
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
TODO: Add your license here.
|
||||
@@ -0,0 +1 @@
|
||||
TODO: Add your license here.
|
||||
@@ -0,0 +1 @@
|
||||
TODO: Add your license here.
|
||||
@@ -0,0 +1 @@
|
||||
TODO: Add your license here.
|
||||
@@ -73,4 +73,5 @@ build/
|
||||
!**/ios/**/default.pbxuser
|
||||
!**/ios/**/default.perspectivev3
|
||||
|
||||
**/*.dylib
|
||||
**/*.dylib
|
||||
**/*.a
|
||||
@@ -0,0 +1 @@
|
||||
TODO: Add your license here.
|
||||
@@ -20,5 +20,6 @@ A new flutter plugin project.
|
||||
# Flutter.framework does not contain a i386 slice.
|
||||
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
|
||||
s.swift_version = '5.0'
|
||||
s.vendored_libraries = "libdart_ffi.dylib"
|
||||
s.static_framework = true
|
||||
s.vendored_libraries = "libdart_ffi.a"
|
||||
end
|
||||
@@ -12,15 +12,10 @@ final DynamicLibrary _dl = _open();
|
||||
/// Reference to the Dynamic Library, it should be only used for low-level access
|
||||
final DynamicLibrary dl = _dl;
|
||||
DynamicLibrary _open() {
|
||||
if (is_tester()) {
|
||||
return DynamicLibrary.open(
|
||||
'${Directory.systemTemp.path}/app_flowy/libdart_ffi.dylib');
|
||||
} else {
|
||||
if (Platform.isAndroid) return DynamicLibrary.open('libdart_ffi.so');
|
||||
if (Platform.isMacOS) return DynamicLibrary.executable();
|
||||
if (Platform.isIOS) return DynamicLibrary.executable();
|
||||
throw UnsupportedError('This platform is not supported.');
|
||||
}
|
||||
if (Platform.isAndroid) return DynamicLibrary.open('libdart_ffi.so');
|
||||
if (Platform.isMacOS) return DynamicLibrary.executable();
|
||||
if (Platform.isIOS) return DynamicLibrary.executable();
|
||||
throw UnsupportedError('This platform is not supported.');
|
||||
}
|
||||
|
||||
/// C function `async_command`.
|
||||
@@ -32,8 +27,7 @@ void async_command(
|
||||
_invoke_async(port, input, len);
|
||||
}
|
||||
|
||||
final _invoke_async_Dart _invoke_async =
|
||||
_dl.lookupFunction<_invoke_async_C, _invoke_async_Dart>('async_command');
|
||||
final _invoke_async_Dart _invoke_async = _dl.lookupFunction<_invoke_async_C, _invoke_async_Dart>('async_command');
|
||||
typedef _invoke_async_C = Void Function(
|
||||
Int64 port,
|
||||
Pointer<Uint8> input,
|
||||
@@ -53,8 +47,7 @@ Pointer<Uint8> sync_command(
|
||||
return _invoke_sync(input, len);
|
||||
}
|
||||
|
||||
final _invoke_sync_Dart _invoke_sync =
|
||||
_dl.lookupFunction<_invoke_sync_C, _invoke_sync_Dart>('sync_command');
|
||||
final _invoke_sync_Dart _invoke_sync = _dl.lookupFunction<_invoke_sync_C, _invoke_sync_Dart>('sync_command');
|
||||
typedef _invoke_sync_C = Pointer<Uint8> Function(
|
||||
Pointer<Uint8> input,
|
||||
Uint64 len,
|
||||
@@ -71,8 +64,7 @@ int init_sdk(
|
||||
return _init_sdk(path);
|
||||
}
|
||||
|
||||
final _init_sdk_Dart _init_sdk =
|
||||
_dl.lookupFunction<_init_sdk_C, _init_sdk_Dart>('init_sdk');
|
||||
final _init_sdk_Dart _init_sdk = _dl.lookupFunction<_init_sdk_C, _init_sdk_Dart>('init_sdk');
|
||||
typedef _init_sdk_C = Int64 Function(
|
||||
Pointer<ffi.Utf8> path,
|
||||
);
|
||||
@@ -80,29 +72,28 @@ typedef _init_sdk_Dart = int Function(
|
||||
Pointer<ffi.Utf8> path,
|
||||
);
|
||||
|
||||
|
||||
/// C function `init_stream`.
|
||||
int set_stream_port(int port) {
|
||||
return _set_stream_port(port);
|
||||
}
|
||||
|
||||
final _set_stream_port_Dart _set_stream_port =
|
||||
_dl.lookupFunction<_set_stream_port_C, _set_stream_port_Dart>('set_stream_port');
|
||||
_dl.lookupFunction<_set_stream_port_C, _set_stream_port_Dart>('set_stream_port');
|
||||
|
||||
typedef _set_stream_port_C = Int32 Function(
|
||||
Int64 port,
|
||||
);
|
||||
Int64 port,
|
||||
);
|
||||
typedef _set_stream_port_Dart = int Function(
|
||||
int port,
|
||||
);
|
||||
int port,
|
||||
);
|
||||
|
||||
/// C function `link_me_please`.
|
||||
void link_me_please() {
|
||||
_link_me_please();
|
||||
}
|
||||
|
||||
final _link_me_please_Dart _link_me_please = _dl
|
||||
.lookupFunction<_link_me_please_C, _link_me_please_Dart>('link_me_please');
|
||||
final _link_me_please_Dart _link_me_please =
|
||||
_dl.lookupFunction<_link_me_please_C, _link_me_please_Dart>('link_me_please');
|
||||
typedef _link_me_please_C = Void Function();
|
||||
typedef _link_me_please_Dart = void Function();
|
||||
|
||||
@@ -113,26 +104,11 @@ void store_dart_post_cobject(
|
||||
_store_dart_post_cobject(ptr);
|
||||
}
|
||||
|
||||
final _store_dart_post_cobject_Dart _store_dart_post_cobject = _dl
|
||||
.lookupFunction<_store_dart_post_cobject_C, _store_dart_post_cobject_Dart>(
|
||||
'store_dart_post_cobject');
|
||||
final _store_dart_post_cobject_Dart _store_dart_post_cobject =
|
||||
_dl.lookupFunction<_store_dart_post_cobject_C, _store_dart_post_cobject_Dart>('store_dart_post_cobject');
|
||||
typedef _store_dart_post_cobject_C = Void Function(
|
||||
Pointer<NativeFunction<Int8 Function(Int64, Pointer<Dart_CObject>)>> ptr,
|
||||
);
|
||||
typedef _store_dart_post_cobject_Dart = void Function(
|
||||
Pointer<NativeFunction<Int8 Function(Int64, Pointer<Dart_CObject>)>> ptr,
|
||||
);
|
||||
|
||||
bool is_tester() {
|
||||
if (Foundation.kDebugMode) {
|
||||
// ignore: unnecessary_null_comparison
|
||||
// if (Platform.executable.isEmpty) {
|
||||
// return false;
|
||||
// } else {
|
||||
// return Platform.executable.contains("tester");
|
||||
// }
|
||||
return false;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -14,11 +14,12 @@ A new flutter plugin project.
|
||||
s.author = { 'Your Company' => 'email@example.com' }
|
||||
s.source = { :path => '.' }
|
||||
s.source_files = 'Classes/**/*'
|
||||
s.public_header_files = 'Classes/**/*.h'
|
||||
s.dependency 'FlutterMacOS'
|
||||
|
||||
s.platform = :osx, '10.11'
|
||||
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES' }
|
||||
s.swift_version = '5.0'
|
||||
# s.static_framework = true
|
||||
s.vendored_libraries = "libdart_ffi.dylib"
|
||||
s.static_framework = true
|
||||
s.vendored_libraries = "libdart_ffi.a"
|
||||
end
|
||||
@@ -36,13 +36,6 @@ packages:
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.8.2"
|
||||
avatars:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: avatars
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.2.0"
|
||||
bloc:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -328,13 +321,6 @@ packages:
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "7.3.3"
|
||||
flutter_cache_manager:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_cache_manager
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.1.3"
|
||||
flutter_colorpicker:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -809,13 +795,6 @@ packages:
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
rxdart:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: rxdart
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.27.2"
|
||||
shelf:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -863,20 +842,6 @@ packages:
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "6.0.0"
|
||||
sqflite:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0+4"
|
||||
sqflite_common:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite_common
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.1+1"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -919,13 +884,6 @@ packages:
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.4.0+3"
|
||||
synchronized:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: synchronized
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.0.0"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
||||
@@ -64,7 +64,6 @@ dependencies:
|
||||
flutter_colorpicker: ^0.6.0
|
||||
package_info_plus: ^1.3.0
|
||||
url_launcher: ^6.0.2
|
||||
avatars: ^2.0.0
|
||||
# file_picker: ^4.2.1
|
||||
clipboard: ^0.1.3
|
||||
|
||||
|
||||
+21
-4
@@ -1,9 +1,26 @@
|
||||
# About
|
||||
|
||||
AppFlowy is an open-source alternative to Notion and Airtable, a no-code platform for anyone to build apps that suit their needs well.
|
||||
AppFlowy is an open-source Notion alternative.
|
||||
You are in charge of your data and customizations.
|
||||
|
||||
Design and modify AppFlowy your way, with a single codebase written in Flutter and Rust supporting multiple platforms armed with long-term maintainability.
|
||||
## Built for teams that need more control and flexibility
|
||||
### 100% data control
|
||||
* You can host AppFlowy wherever you want; no vendor lock-in.
|
||||
### Unlimited customizations
|
||||
* Design and modify AppFlowy your way with an open core codebase.
|
||||
### One codebase supporting multiple platforms
|
||||
* AppFlowy is built with Flutter and Rust. What does this mean? Faster development, better native experience, and more reliable performance.
|
||||
|
||||
And you have **100%** control of your data.
|
||||
## Built for individuals who care about data security and mobile experience
|
||||
### 100% control of your data
|
||||
* Download and install AppFlowy on your local machine. You own and control your personal data.
|
||||
### Extensively extensible
|
||||
* For those with no coding experience, AppFlowy enables you to create apps that suit your needs. It's built on a community-driven toolbox, including templates, plugins, themes, and more.
|
||||
### Truely native experience
|
||||
* Faster, more stable with support for offline mode. It's also better integrated with different devices. Moreover, AppFlowy enables users to access features and possibilities not available on the web.
|
||||
|
||||
Most workplace SaaS tools are limited in terms of customizations and data control. We don't believe that one workplace SaaS solution can fit all companies or individuals not to mention that a glass ceiling on what's possible in the future. Our mission is to make it possible for anyone to create apps that suit their needs well. Therefore, we are dedicated to creating AppFlowy, a powerful no-code open-source solution. This would not only democratize the knowledge of making complex workplace SaaS tools but also enable people and businesses to make beautiful things on their own.
|
||||
## Community for hackers | Community for creators | Community for builders
|
||||
### Let’s democratize the knowledge and wheels of making complex workplace collaboration tools
|
||||
* It takes tremendous resources and expertise to build a great collaborative productivity tool. Don’t reinvent the wheels, let’s create the best open-source building blocks as infra to power others.
|
||||
### We collaboratively create apps that suit others’ needs by developing a versatile toolbox of plugins, templates, and more
|
||||
* Join us to build a toolbox that empowers anyone to create their own system - play and tweak without a glass ceiling on what’s possible.
|
||||
+1
-1
@@ -1 +1 @@
|
||||
[WIP]
|
||||
https://trello.com/b/NCyXCXXh/appflowy-roadmap
|
||||
@@ -2,4 +2,7 @@
|
||||
#target-dir = "./bin"
|
||||
|
||||
[target.x86_64-apple-darwin]
|
||||
rustflags=["-C", "link-arg=-mmacosx-version-min=10.11"]
|
||||
|
||||
[target.aarch64-apple-darwin]
|
||||
rustflags=["-C", "link-arg=-mmacosx-version-min=10.11"]
|
||||
@@ -7,11 +7,8 @@ edition = "2018"
|
||||
[lib]
|
||||
name = "dart_ffi"
|
||||
# this value will change depending on the target os
|
||||
# for iOS it would be `rlib`
|
||||
# for Macos it would be `rlib`
|
||||
# for android it would be `c-dylib`
|
||||
# default rlib
|
||||
crate-type = ["rlib"]
|
||||
# default dylib
|
||||
crate-type = ["dylib"]
|
||||
|
||||
|
||||
[dependencies]
|
||||
|
||||
@@ -7,6 +7,7 @@ edition = "2018"
|
||||
|
||||
[dependencies]
|
||||
r2d2 = "0.8.9"
|
||||
libsqlite3-sys = {version = "0.9.1", features = ["bundled"]}
|
||||
diesel = {version = "1.4.7", features = ["sqlite"]}
|
||||
diesel_derives = {version = "1.4.1", features = ["sqlite"]}
|
||||
diesel_migrations = {version = "1.4.0", features = ["sqlite"]}
|
||||
|
||||
@@ -28,7 +28,7 @@ pub fn create_default_workspace(time: chrono::DateTime<Utc>) -> Workspace {
|
||||
|
||||
fn create_default_app(workspace_id: String, time: chrono::DateTime<Utc>) -> App {
|
||||
let app_id = uuid::Uuid::new_v4();
|
||||
let name = "Getting Started".to_string();
|
||||
let name = "⭐️ Getting started".to_string();
|
||||
let desc = "".to_string();
|
||||
|
||||
let views = RepeatedView {
|
||||
|
||||
@@ -2,39 +2,39 @@
|
||||
|
||||
[tasks.flowy-sdk]
|
||||
category = "Build"
|
||||
condition = { profiles = [ "development-mac" ], channels = ["nightly"] }
|
||||
condition = { channels = ["nightly"] }
|
||||
dependencies = ["flowy-sdk-build"]
|
||||
run_task = { name = ["copy-to-sys-tmpdir"] }
|
||||
|
||||
[tasks.flowy-sdk-build]
|
||||
condition = { channels = ["nightly"] }
|
||||
dependencies = ["echo_env"]
|
||||
condition = { env_set = [ "BUILD_FLAG", "RUST_COMPILE_TARGET", "CRATE_TYPE", "TARGET_OS"] }
|
||||
run_task = { name = ["setup-crate-type","sdk-build", "post-desktop", "restore-crate-type"] }
|
||||
|
||||
[tasks.sdk-build]
|
||||
condition = { platforms = ["mac"] }
|
||||
description = "Build desktop targets."
|
||||
script = [
|
||||
"""
|
||||
cd rust-lib/
|
||||
if [ ${PROD} == true ]
|
||||
if [ ${BUILD_FLAG} == release ]
|
||||
then
|
||||
cargo build --${BUILD_FLAG} --package=dart-ffi --target ${DESKTOP_TARGET} --features=${FEATURES}
|
||||
cargo build --${BUILD_FLAG} --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features=${FEATURES}
|
||||
else
|
||||
cargo build --package=dart-ffi --target ${DESKTOP_TARGET} --features=${FEATURES}
|
||||
cargo build --package=dart-ffi --target ${RUST_COMPILE_TARGET} --features=${FEATURES}
|
||||
fi
|
||||
cd ../
|
||||
""",
|
||||
]
|
||||
script_runner = "@shell"
|
||||
|
||||
|
||||
[tasks.post-desktop]
|
||||
private = true
|
||||
condition = { platforms = ["mac"] }
|
||||
script = [
|
||||
"""
|
||||
echo "🚀 🚀 🚀 Flowy-SDK build success"
|
||||
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/x86_64-apple-darwin/${BUILD_FLAG}/lib${CARGO_MAKE_CRATE_FS_NAME}.dylib \
|
||||
${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/packages/flowy_sdk/macos/lib${CARGO_MAKE_CRATE_FS_NAME}.dylib
|
||||
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/lib${CARGO_MAKE_CRATE_FS_NAME}.a \
|
||||
${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/packages/flowy_sdk/macos/lib${CARGO_MAKE_CRATE_FS_NAME}.a
|
||||
""",
|
||||
"""
|
||||
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/${CARGO_MAKE_CRATE_NAME}/binding.h \
|
||||
@@ -45,13 +45,13 @@ script_runner = "@duckscript"
|
||||
|
||||
[tasks.copy-to-sys-tmpdir]
|
||||
private = true
|
||||
condition = { platforms = ["mac"] }
|
||||
condition = { profiles = [ "development-mac" ], platforms = ["mac"] }
|
||||
script = [
|
||||
"""
|
||||
# post the dylib target_path that use for flutter unit test
|
||||
target_path = set ${TMPDIR}/appflowy_client/lib${CARGO_MAKE_CRATE_FS_NAME}.dylib
|
||||
rm ${target_path}
|
||||
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/x86_64-apple-darwin/${BUILD_FLAG}/lib${CARGO_MAKE_CRATE_FS_NAME}.dylib ${target_path}
|
||||
cp ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/rust-lib/target/${RUST_COMPILE_TARGET}/${BUILD_FLAG}/lib${CARGO_MAKE_CRATE_FS_NAME}.dylib ${target_path}
|
||||
""",
|
||||
]
|
||||
script_runner = "@duckscript"
|
||||
|
||||
@@ -10,7 +10,7 @@ script = [
|
||||
cd app_flowy/
|
||||
flutter clean
|
||||
flutter pub get
|
||||
flutter build ${FLUTTER_PLATFORM} --${BUILD_FLAG} --build-name=${VERSION}
|
||||
flutter build ${TARGET_OS} --${BUILD_FLAG} --build-name=${VERSION}
|
||||
""",
|
||||
]
|
||||
script_runner = "@shell"
|
||||
@@ -28,7 +28,7 @@ script = [
|
||||
|
||||
product=${PRODUCT_NAME}.${PRODUCT_EXT}
|
||||
|
||||
cp -R ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/build/${FLUTTER_PLATFORM}/Build/Products/${FLUTTER_OUTPUT_DIR}/${product} \
|
||||
cp -R ${CARGO_MAKE_WORKSPACE_WORKING_DIRECTORY}/app_flowy/build/${TARGET_OS}/Build/Products/${FLUTTER_OUTPUT_DIR}/${product} \
|
||||
${output_path}/${product}
|
||||
""",
|
||||
]
|
||||
|
||||
Reference in new issue
Block a user