Skip to content

Commit 38b9678

Browse files
committed
Merge branch 'fix/android-windows-build-docs' of https://github.com/Akhash16/AppFlowy into fix/android-windows-build-docs
2 parents c3c8390 + 4bca4e5 commit 38b9678

File tree

14 files changed

+1269
-12
lines changed

14 files changed

+1269
-12
lines changed

.history/README_20250809205828.md

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
<h1 align="center" style="border-bottom: none">
2+
<b>
3+
<a href="https://www.appflowy.com">AppFlowy</a><br>
4+
</b>
5+
⭐️ The Open Source Alternative To Notion ⭐️ <br>
6+
</h1>
7+
8+
<p align="center">
9+
AppFlowy is the AI workspace where you achieve more without losing control of your data
10+
</p>
11+
12+
<p align="center">
13+
<a href="https://discord.gg/9Q2xaN37tV"><img src="https://img.shields.io/badge/AppFlowy.IO-discord-orange"></a>
14+
<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>
15+
<a href="https://github.com/AppFlowy-IO/appflowy"><img src="https://img.shields.io/github/forks/AppFlowy-IO/appflowy.svg"></a>
16+
<a href="https://opensource.org/licenses/AGPL-3.0"><img src="https://img.shields.io/badge/license-AGPL-purple.svg" alt="License: AGPL"></a>
17+
18+
</p>
19+
20+
<p align="center">
21+
<a href="https://www.appflowy.com"><b>Website</b></a> •
22+
<a href="https://forum.appflowy.io/"><b>Forum</b></a> •
23+
<a href="https://discord.gg/9Q2xaN37tV"><b>Discord</b></a> •
24+
<a href="https://www.reddit.com/r/AppFlowy"><b>Reddit</b></a> •
25+
<a href="https://twitter.com/appflowy"><b>Twitter</b></a>
26+
</p>
27+
28+
<p align="center"><img src="https://appflowy.com/_next/static/media/tasks.796c753e.png" alt="AppFlowy Kanban Board for To-dos" /></p>
29+
<p align="center"><img src="https://appflowy.com/_next/static/media/Grid.9e30484b.png" alt="AppFlowy Databases for Tasks and Projects" /></p>
30+
<p align="center"><img src="https://appflowy.com/_next/static/media/sites.a8d5b2b9.png" alt="AppFlowy Sites for Beautiful documentation" /></p>
31+
<p align="center"><img src="https://appflowy.com/_next/static/media/ai.e1460982.png" alt="AppFlowy AI" /></p>
32+
<p align="center"><img src="https://appflowy.com/_next/static/media/template.9ea13c3b.png" alt="AppFlowy Templates" /></p>
33+
34+
<br></br>
35+
<p align="center" >
36+
<img src="https://github.com/user-attachments/assets/5841c491-b564-4a26-b9b6-191def430911" alt="Work across devices" width="1040px" /></p>
37+
<p align="center" >
38+
<img src="https://github.com/user-attachments/assets/c2ba6bb8-746c-4743-9393-d008a669be95" alt="Work across devices" width="1040px" /></p>
39+
<p align="center" >
40+
<img src="https://github.com/user-attachments/assets/e83dd1a3-4975-4d0e-91a1-9eb6e0d248cd" alt="Work across devices" width="1040px" /></p>
41+
42+
## User Installation
43+
44+
- [Download AppFlowy Desktop (macOS, Windows, and Linux)](https://github.com/AppFlowy-IO/AppFlowy/releases)
45+
- Other
46+
channels: [FlatHub](https://flathub.org/apps/io.appflowy.AppFlowy), [Snapcraft](https://snapcraft.io/appflowy), [Sourceforge](https://sourceforge.net/projects/appflowy/)
47+
- Available on
48+
- [App Store](https://apps.apple.com/app/appflowy/id6457261352): iPhone
49+
- [Play Store](https://play.google.com/store/apps/details?id=io.appflowy.appflowy): Android 10 or above; ARMv7 is
50+
not supported
51+
- [Self-hosting AppFlowy](https://appflowy.com/docs/self-host-appflowy-overview)
52+
- [Source](https://docs.appflowy.io/docs/documentation/appflowy/from-source)
53+
54+
## Built With
55+
56+
- [Flutter](https://flutter.dev/)
57+
58+
- [Rust](https://www.rust-lang.org/)
59+
60+
## Stay Up-to-Date
61+
62+
<p align="center"><img src="https://github.com/AppFlowy-IO/appflowy/blob/main/doc/imgs/howtostar.gif" alt="AppFlowy Github - how to star the repo" width="100%" /></p>
63+
64+
## Getting Started with development
65+
66+
Please view our comprehensive [build from source guide](doc/BUILD_FROM_SOURCE.md) for detailed OS-specific development instructions, including desktop and mobile platform support.
67+
68+
For additional documentation, visit [docs.appflowy.io](https://docs.appflowy.io/docs/documentation/appflowy/from-source).
69+
70+
## Roadmap
71+
72+
- [AppFlowy Roadmap ReadMe](https://docs.appflowy.io/docs/appflowy/roadmap)
73+
- [AppFlowy Public Roadmap](https://github.com/orgs/AppFlowy-IO/projects/5/views/12)
74+
75+
If you'd like to propose a feature, submit a feature
76+
request [here](https://github.com/AppFlowy-IO/AppFlowy/issues/new?assignees=&labels=&template=feature_request.yaml&title=%5BFR%5D+) <br/>
77+
If you'd like to report a bug, submit a bug
78+
report [here](https://github.com/AppFlowy-IO/AppFlowy/issues/new?assignees=&labels=&template=bug_report.yaml&title=%5BBug%5D+)
79+
80+
## **Releases**
81+
82+
Please see the [changelog](https://appflowy.com/what-is-new) for more details about a given release.
83+
84+
## Contributing
85+
86+
Contributions make the open-source community a fantastic place to learn, inspire, and create. Any contributions you make
87+
are **greatly appreciated**. Please look
88+
at [Contributing to AppFlowy](https://docs.appflowy.io/docs/documentation/software-contributions/contributing-to-appflowy)
89+
for details.
90+
91+
If your Pull Request is accepted as it fixes a bug, adds functionality, or makes AppFlowy's codebase significantly
92+
easier to use or understand, **Congratulations!** If your administrative and managerial work behind the scenes sustains
93+
the community, **Congratulations!** You are now an official contributor to AppFlowy.
94+
95+
## Translations 🌎🗺
96+
97+
[![translation badge](https://inlang.com/badge?url=github.com/AppFlowy-IO/AppFlowy)](https://inlang.com/editor/github.com/AppFlowy-IO/AppFlowy?ref=badge)
98+
99+
To add translations, you can manually edit the JSON translation files in `/frontend/resources/translations`, use
100+
the [inlang online editor](https://inlang.com/editor/github.com/AppFlowy-IO/AppFlowy), or
101+
run `npx inlang machine translate` to add missing translations.
102+
103+
## Join the community to build AppFlowy together
104+
105+
<a href="https://github.com/AppFlowy-IO/AppFlowy/graphs/contributors">
106+
<img src="https://contrib.rocks/image?repo=AppFlowy-IO/AppFlowy" />
107+
</a>
108+
109+
## Why Are We Building This?
110+
111+
Notion has been our favourite project and knowledge management tool in recent years because of its aesthetic appeal and
112+
functionality. Our team uses it daily, and we are on its paid plan. However, as we all know, Notion has its limitations.
113+
These include weak data security and poor compatibility with mobile devices. Likewise, alternative collaborative
114+
workplace management tools also have their constraints.
115+
116+
The limitations we encountered using these tools and our past work experience with collaborative productivity tools have
117+
led to our firm belief that there is a glass ceiling on what's possible for these tools in the future. This emanates
118+
from the fact that these tools will probably struggle to scale horizontally at some point and be forced to prioritize a
119+
proportion of customers whose needs differ from the rest. While decision-makers want a workplace OS, it is impossible to
120+
come up with a one-size fits all solution in such a fragmented market.
121+
122+
When a customer's evolving core needs are not satisfied, they either switch to another or build one from the ground up,
123+
in-house. Consequently, they either go under another ceiling or buy an expensive ticket to learn a hard lesson. This is
124+
a requirement for many resources and expertise, building a reliable and easy-to-use collaborative tool, not to mention
125+
the speed and native experience. The same may apply to individual users as well.
126+
127+
All these restrictions necessitate our mission - to make it possible for anyone to create apps that suit their needs
128+
well.
129+
130+
- To individuals, we would like to offer Notion's functionality, data security, and cross-platform native experience.
131+
- To enterprises and hackers, AppFlowy is dedicated to offering building blocks and collaboration infra services to
132+
enable you to make apps on your own. Moreover, you have 100% control of your data. You can design and modify AppFlowy
133+
your way, with a single codebase written in Flutter and Rust supporting multiple platforms armed with long-term
134+
maintainability.
135+
136+
We decided to achieve this mission by upholding the three most fundamental values:
137+
138+
- Data privacy first
139+
- Reliable native experience
140+
- Community-driven extensibility
141+
142+
We do not claim to outperform Notion in terms of functionality and design, at least for now. Besides, our priority
143+
doesn't lie in more functionality at the moment. Instead, we would like to cultivate a community to democratize the
144+
knowledge and wheels of making complex workplace management tools while enabling people and businesses to create
145+
beautiful things on their own by equipping them with a versatile toolbox of building blocks.
146+
147+
## License
148+
149+
Distributed under the AGPLv3 License. See [`LICENSE.md`](https://github.com/AppFlowy-IO/AppFlowy/blob/main/LICENSE) for
150+
more information.
151+
152+
## Acknowledgments
153+
154+
Special thanks to these amazing projects which help power AppFlowy:
155+
156+
- [cargo-make](https://github.com/sagiegurari/cargo-make)
157+
- [contrib.rocks](https://contrib.rocks)
158+
- [flutter_chat_ui](https://pub.dev/packages/flutter_chat_ui)
Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
# Building AppFlowy from Source
2+
3+
This guide provides comprehensive instructions for building AppFlowy from source code on all supported platforms.
4+
5+
## Prerequisites
6+
7+
Before building AppFlowy, ensure you have the following installed:
8+
9+
### All Platforms
10+
- [Git](https://git-scm.com/)
11+
- [Rust](https://rustup.rs/) (1.70 or later)
12+
- [Flutter](https://flutter.dev/docs/get-started/install) (3.13.19 or later)
13+
- [cargo-make](https://github.com/sagiegurari/cargo-make) - Install with: `cargo install cargo-make`
14+
15+
### Platform-Specific Requirements
16+
17+
#### Windows
18+
- [Visual Studio 2019/2022](https://visualstudio.microsoft.com/) with C++ development tools
19+
- [vcpkg](https://github.com/microsoft/vcpkg)
20+
21+
#### macOS
22+
- Xcode Command Line Tools: `xcode-select --install`
23+
24+
#### Linux
25+
- Build essentials: `sudo apt install build-essential pkg-config libssl-dev`
26+
- Additional dependencies: `sudo apt install clang cmake ninja-build pkg-config libgtk-3-dev`
27+
28+
## Building for Desktop
29+
30+
### 1. Clone the Repository
31+
```bash
32+
git clone https://github.com/AppFlowy-IO/AppFlowy.git
33+
cd AppFlowy
34+
```
35+
36+
### 2. Build for Your Platform
37+
38+
#### Windows
39+
```bash
40+
cd frontend
41+
cargo make appflowy-windows
42+
```
43+
44+
#### macOS
45+
```bash
46+
cd frontend
47+
cargo make appflowy-macos
48+
```
49+
50+
#### Linux
51+
```bash
52+
cd frontend
53+
cargo make appflowy-linux
54+
```
55+
56+
### 3. Run the Application
57+
58+
After building, the executable will be located in:
59+
- **Windows**: `frontend/appflowy_flutter/product/[version]/windows/Release/AppFlowy/`
60+
- **macOS**: `frontend/appflowy_flutter/product/[version]/macos/Release/AppFlowy.app/`
61+
- **Linux**: `frontend/appflowy_flutter/product/[version]/linux/Release/AppFlowy/`
62+
63+
## Building for Mobile
64+
65+
### iOS
66+
67+
#### Prerequisites
68+
- macOS with Xcode installed
69+
- iOS development setup for Flutter
70+
71+
#### Build Steps
72+
```bash
73+
cd frontend
74+
cargo make appflowy-ios
75+
```
76+
77+
The iOS app will be built and available in `frontend/appflowy_flutter/build/ios/`.
78+
79+
### Android
80+
81+
#### Prerequisites
82+
83+
**All Platforms:**
84+
- [Android NDK](https://developer.android.com/ndk/downloads/) version 24
85+
- cargo-ndk: `cargo install cargo-ndk`
86+
87+
**Additional Setup:**
88+
89+
1. **Set Environment Variables**
90+
91+
**Windows:**
92+
```cmd
93+
set ANDROID_NDK_HOME=C:\Users\%USERNAME%\AppData\Local\Android\Sdk\ndk\24.0.8215888
94+
```
95+
96+
**macOS/Linux:**
97+
```bash
98+
export ANDROID_NDK_HOME=~/Android/Sdk/ndk/24.0.8215888
99+
```
100+
101+
2. **Configure Cargo for Android**
102+
103+
Create or edit `~/.cargo/config` (Linux/macOS) or `%USERPROFILE%\.cargo\config` (Windows):
104+
105+
**Linux/macOS:**
106+
```toml
107+
[target.aarch64-linux-android]
108+
ar = "/home/user/Android/Sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar"
109+
linker = "/home/user/Android/Sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android29-clang"
110+
111+
[target.armv7-linux-androideabi]
112+
ar = "/home/user/Android/Sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar"
113+
linker = "/home/user/Android/Sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi29-clang"
114+
115+
[target.i686-linux-android]
116+
ar = "/home/user/Android/Sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar"
117+
linker = "/home/user/Android/Sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/linux-x86_64/bin/i686-linux-android29-clang"
118+
119+
[target.x86_64-linux-android]
120+
ar = "/home/user/Android/Sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-ar"
121+
linker = "/home/user/Android/Sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android29-clang"
122+
```
123+
124+
**Windows:**
125+
```toml
126+
[target.aarch64-linux-android]
127+
ar = "C:\\Users\\%USERNAME%\\AppData\\Local\\Android\\Sdk\\ndk\\24.0.8215888\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\llvm-ar.exe"
128+
linker = "C:\\Users\\%USERNAME%\\AppData\\Local\\Android\\Sdk\\ndk\\24.0.8215888\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\aarch64-linux-android29-clang.exe"
129+
130+
[target.armv7-linux-androideabi]
131+
ar = "C:\\Users\\%USERNAME%\\AppData\\Local\\Android\\Sdk\\ndk\\24.0.8215888\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\llvm-ar.exe"
132+
linker = "C:\\Users\\%USERNAME%\\AppData\\Local\\Android\\Sdk\\ndk\\24.0.8215888\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\armv7a-linux-androideabi29-clang.exe"
133+
134+
[target.i686-linux-android]
135+
ar = "C:\\Users\\%USERNAME%\\AppData\\Local\\Android\\Sdk\\ndk\\24.0.8215888\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\llvm-ar.exe"
136+
linker = "C:\\Users\\%USERNAME%\\AppData\\Local\\Android\\Sdk\\ndk\\24.0.8215888\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\i686-linux-android29-clang.exe"
137+
138+
[target.x86_64-linux-android]
139+
ar = "C:\\Users\\%USERNAME%\\AppData\\Local\\Android\\Sdk\\ndk\\24.0.8215888\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\llvm-ar.exe"
140+
linker = "C:\\Users\\%USERNAME%\\AppData\\Local\\Android\\Sdk\\ndk\\24.0.8215888\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\x86_64-linux-android29-clang.exe"
141+
```
142+
143+
3. **NDK 24 Clang Fix**
144+
145+
Create a file named `libgcc.a` with this content:
146+
```
147+
INPUT(-lunwind)
148+
```
149+
150+
**Linux/macOS:** Place it in `Android/Sdk/ndk/24.0.8215888/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/14.0.1/lib/linux/`
151+
152+
**Windows:** Place it in `Android\Sdk\ndk\24.0.8215888\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\14.0.1\lib\linux\`
153+
154+
Copy this file to the following subdirectories: `aarch64`, `arm`, `i386`, and `x86_64`.
155+
156+
#### Build Steps
157+
```bash
158+
cd frontend
159+
cargo make appflowy-android
160+
```
161+
162+
The Android APK will be built and available in `frontend/appflowy_flutter/build/app/outputs/flutter-apk/`.
163+
164+
## Development Builds
165+
166+
For faster development builds without optimizations:
167+
168+
### Desktop Development
169+
```bash
170+
cd frontend
171+
cargo make appflowy-dev # Uses platform-specific aliases
172+
```
173+
174+
### Mobile Development
175+
```bash
176+
# iOS development build
177+
cd frontend
178+
cargo make appflowy-ios-dev
179+
180+
# Android development build
181+
cd frontend
182+
cargo make appflowy-android-dev
183+
```
184+
185+
## Troubleshooting
186+
187+
### Common Issues
188+
189+
1. **Flutter Doctor Issues**: Run `flutter doctor` to check for missing dependencies
190+
2. **Rust Version**: Ensure you're using Rust 1.70 or later
191+
3. **Path Issues**: Make sure all tools are in your system PATH
192+
4. **NDK Issues**: Verify ANDROID_NDK_HOME is set correctly
193+
194+
### Platform-Specific Issues
195+
196+
#### Windows
197+
- Ensure Visual Studio C++ tools are installed
198+
- Check that vcpkg is properly configured
199+
- Use PowerShell or Command Prompt, not Git Bash for building
200+
201+
#### macOS
202+
- Ensure Xcode Command Line Tools are installed
203+
- For iOS builds, you need a full Xcode installation
204+
205+
#### Linux
206+
- Install all required system dependencies
207+
- Check that pkg-config can find required libraries
208+
209+
### Getting Help
210+
211+
- Check the [AppFlowy Documentation](https://docs.appflowy.io/)
212+
- Join our [Discord](https://discord.gg/9Q2xaN37tV) for community support
213+
- Report issues on [GitHub](https://github.com/AppFlowy-IO/AppFlowy/issues)
214+
215+
## Additional Resources
216+
217+
- [AppFlowy Development Guide](https://docs.appflowy.io/docs/documentation/appflowy/from-source)
218+
- [Contributing Guidelines](CONTRIBUTING.md)
219+
- [Android-specific instructions](../frontend/appflowy_flutter/android/README.md)

0 commit comments

Comments
 (0)