If you're tired of OJ platforms with their mobile-unfriendly IDEs, or if you've ever wanted to jot down a brilliant algorithm idea on your phone, then ACC IDE is just what you need ๐ค.
ACC IDE is a native Android integrated development environment designed specifically for algorithm competitions. It aims to enhance the competitive programming experience on mobile devices by providing a feature-rich environment for writing, testing, and submitting algorithmic solutions ๐.
The project is built with native Android and includes the following main components:
acc_ide/
โโโ app/ # Main application module
โ โโโ src/main/
โ โ โโโ java/com/acc_ide/ # Kotlin source code
โ โ โ โโโ completion/ # Code completion system
โ โ โ โโโ ui/ # UI components
โ โ โ โโโ util/ # Utility classes
โ โ โ โโโ view/ # Custom views
โ โ โโโ cpp/ # Tree-sitter JNI
โ โ โโโ res/ # Resources
โ โ โโโ assets/ # Static assets
โ โโโ build.gradle
โโโ executor-library/ # Code executor library
โ โโโ src/main/
โ โ โโโ java/ # Executor implementation
โ โ โโโ assets/wasm/ # WASM resources
โ โโโ build.gradle
โโโ treesitter-build/ # Tree-sitter build scripts
โโโ wasmClang-build/ # WASM Clang build scripts
โโโ gradle/ # Gradle configuration
- Syntax highlighting: Use
textmatefor syntax highlighting - Code completion: Code completion based on
CST (tree-siiter) - Theme Support: Dark and light modes with appropriate syntax coloring
- Gesture Controls: Adjust font size through zoom gestures
- Line Numbers and Block Indentation: Visual aids for code structure
- File Browser: Side drawer with a list of available files
- Rename and Delete: File management tools with confirmation dialogs
- Automatic Saving: Changes are automatically saved to prevent data loss, with temporary files stored at
/storage/emulated/0/Android/data/com.acc_ide/filesand templates at/template
- Language Selection: Interface language can be changed in settings
- Theme Selection: Toggle between dark and light themes
- Font Size Control: Adjust editor font size from settings or with gestures
- Editor Preferences: Customize editor behavior through settings, such as cursor width and symbol panel display
- Input/Output Panel: Manual input and output viewing
- GitHub Action Backend: Free runtime via GitHub Actions repository, supports C/C++, Java, and Python
- WASM-based Local Environment: WebAssembly-based compilation environment, though C++ may have some issues as there's no pre-compiled WASM
- Memory and Time Limits: Execution time (2s) and memory (512MB) restrictions via backend
- Execution Status Display: Shows code execution status and runtime (AC, WA, TLE, MLE, RE, CE, RS - Run Successful when no expected output provided), with highlighted compilation errors
- Android Error Lens: Highlight compilation errors in the editor
- LSP: Plan to adopt
tree-sitter+LSPfor precise syntax highlighting and semantic-level code completion - Maintain/Optimize wasm-clang
- Android version of competitive-companion
- Import test cases directly from problem statements
- Support for major competitive programming platforms:
- Codeforces
- AtCoder
- Luogu
- Niuke
- Download the latest version from releases
- Or
clonethe repository locally, open it with Android Studio, and run the project
If you find any problems or feature requests during use, you are welcome to submit an issue or a pull request.
- Sora Editor for code editing capabilities
- VSCode TextMate for syntax highlighting support
- Tree-sitter for
CSTbuild support - wasm-clang for
wasm-clangdemo - pyodide for out-of-the-box
wasm-python
