Skip to content

Commit 9305163

Browse files
committed
Initial commit: GitCode Android IDE
0 parents  commit 9305163

23 files changed

Lines changed: 5359 additions & 0 deletions
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Build and Release APK
2+
3+
on:
4+
push:
5+
branches: [ main, master ]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
build:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Set up JDK 17
18+
uses: actions/setup-java@v4
19+
with:
20+
java-version: '17'
21+
distribution: 'temurin'
22+
23+
- name: Grant execute permission for gradlew
24+
run: chmod +x gradlew
25+
26+
- name: Build Release APK
27+
run: ./gradlew assembleRelease
28+
29+
- name: Sign APK
30+
run: |
31+
echo "${{ secrets.KEYSTORE }}" | base64 -d > keystore.jks
32+
$ANDROID_HOME/build-tools/34.0.0/apksigner sign --ks keystore.jks --ks-key-alias release --ks-pass pass:android123 --key-pass pass:android123 --out app-release-signed.apk app/build/outputs/apk/release/app-release-unsigned.apk
33+
34+
- name: Upload APK
35+
uses: actions/upload-artifact@v4
36+
with:
37+
name: app-release-signed
38+
path: app-release-signed.apk
39+
40+
- name: Create Release
41+
uses: softprops/action-gh-release@v1
42+
with:
43+
tag_name: v${{ github.run_number }}
44+
name: Release v${{ github.run_number }}
45+
files: app-release-signed.apk
46+
env:
47+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

‎.gitignore‎

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
*.iml
2+
.gradle
3+
/local.properties
4+
/.idea
5+
.DS_Store
6+
/build
7+
/captures
8+
.externalNativeBuild
9+
.cxx
10+
*.apk
11+
*.ap_
12+
*.aab
13+
*.dex
14+
*.class
15+
bin/
16+
gen/
17+
out/
18+
.navigation/
19+
captures/
20+
output.json
21+
*.hprof
22+
.cxx/
23+
*.keystore
24+
*.jks

‎README.md‎

Lines changed: 286 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,286 @@
1+
# GitCode - Professional Mobile IDE for Android
2+
3+
<div align="center">
4+
5+
**A fully-featured, professional mobile IDE for Android with GitHub integration, advanced code editing, large file support, and modern development tools.**
6+
7+
[![Latest Release](https://img.shields.io/github/v/release/UniverseKing4/GitHubActionsApp)](https://github.com/UniverseKing4/GitHubActionsApp/releases)
8+
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
9+
[![Android](https://img.shields.io/badge/platform-Android-green.svg)](https://www.android.com/)
10+
11+
[Download APK](https://github.com/UniverseKing4/GitHubActionsApp/releases/latest) • [Report Bug](https://github.com/UniverseKing4/GitHubActionsApp/issues) • [Request Feature](https://github.com/UniverseKing4/GitHubActionsApp/issues)
12+
13+
</div>
14+
15+
---
16+
17+
## 🌟 Overview
18+
19+
GitCode transforms your Android device into a powerful development environment. Write, edit, and manage code projects of any size with professional-grade features including syntax highlighting, intelligent large file handling, GitHub integration, and polished UI/UX.
20+
21+
## ✨ Key Features
22+
23+
### 🎨 **Advanced Code Editor**
24+
- **Multi-Language Syntax Highlighting** - Support for Java, JavaScript, Python, C/C++, Go, Rust, PHP, Ruby, Swift, Kotlin, HTML, CSS, and more
25+
- **Smart Line Numbers** - Dynamic, perfectly aligned line numbers that scale with your code
26+
- **Large File Support** - Intelligent chunking for files >10KB or 1000+ lines with seamless navigation
27+
- **Bracket Matching** - Click any bracket to highlight its matching pair
28+
- **Auto-Indent & Auto-Brackets** - Intelligent code formatting as you type
29+
- **Customizable Font Size** - Adjustable from 10sp to 30sp for comfortable coding
30+
- **Word Wrap** - Toggle word wrapping for long lines
31+
- **Undo/Redo** - Full undo/redo support with visual feedback
32+
- **Go to Line/Part** - Jump to any line or file section instantly
33+
34+
### 📑 **Tabbed Interface**
35+
- Open multiple files simultaneously
36+
- Horizontal scrolling for unlimited tabs
37+
- Quick tab switching with visual indicators
38+
- Individual close buttons on each tab
39+
- Active tab highlighting
40+
- Seamless file navigation
41+
42+
### 🔗 **GitHub Integration**
43+
- **Clone Repositories** - Clone any public/private GitHub repository via URL
44+
- **Smart Push** - Automatically detects and pushes only modified files
45+
- **Pull Changes** - Sync your local project with remote repository
46+
- **File Deletion Detection** - Automatically removes deleted files from GitHub
47+
- **Multiple Profiles** - Switch between different GitHub accounts with ease
48+
- **Secure Authentication** - Personal Access Token support with encrypted storage
49+
50+
### 📁 **Project Management**
51+
- Create and manage multiple projects
52+
- Organize files and folders with intuitive UI
53+
- Rename, delete, and move files/folders
54+
- File selection mode with batch operations
55+
- Project statistics (file count, folder count, lines of code, character count)
56+
- Recent projects list on home screen
57+
- Auto-save functionality
58+
59+
### 🎯 **Developer Tools**
60+
- **Find & Replace** - Search and replace text across files with occurrence tracking
61+
- **Auto-Save** - Never lose your work with automatic saving
62+
- **Keyboard Shortcuts** - Efficient coding with shortcuts
63+
- **File Browser** - Expandable/collapsible folder tree with drawer navigation
64+
- **Welcome Messages** - Helpful prompts when no files are open
65+
- **Toast Notifications** - Clear feedback for all operations
66+
67+
### 🌙 **Modern UI/UX**
68+
- **Dark Mode** - Eye-friendly dark theme (default) with consistent styling
69+
- **Light Mode** - Clean light theme option
70+
- **Themed Dialogs** - All dialogs match your selected theme
71+
- **Compact Toolbar** - Efficient use of screen space with emoji icons
72+
- **Responsive Design** - Optimized for all screen sizes
73+
- **Smooth Animations** - Polished user experience with no lag
74+
- **Professional Layout** - Clean, intuitive interface
75+
76+
## 📸 Screenshots
77+
78+
*(Coming soon)*
79+
80+
## 🚀 Getting Started
81+
82+
### Installation
83+
84+
#### Option 1: Download Pre-built APK (Recommended)
85+
1. Go to [Releases](https://github.com/UniverseKing4/GitHubActionsApp/releases/latest)
86+
2. Download the latest `app-release-signed.apk`
87+
3. Install on your Android device
88+
4. Grant necessary permissions when prompted
89+
90+
#### Option 2: Build from Source
91+
```bash
92+
# Clone the repository
93+
git clone https://github.com/UniverseKing4/GitHubActionsApp.git
94+
cd GitHubActionsApp
95+
96+
# Build with Gradle
97+
./gradlew assembleRelease
98+
99+
# APK will be at: app/build/outputs/apk/release/
100+
```
101+
102+
### First-Time Setup
103+
104+
1. **Launch GitCode** - Open the app after installation
105+
2. **Create a Project** - Tap "New Project" and enter a name
106+
3. **Set Up GitHub** (Optional)
107+
- Tap "👤 GitHub Profiles"
108+
- Add your GitHub username and Personal Access Token
109+
- Save the profile
110+
111+
### Creating a GitHub Personal Access Token
112+
113+
1. Visit [GitHub Settings → Tokens](https://github.com/settings/tokens)
114+
2. Click "Generate new token" → "Generate new token (classic)"
115+
3. Give it a descriptive name (e.g., "GitCode Mobile")
116+
4. Select scopes:
117+
- ✅ `repo` (Full control of private repositories)
118+
5. Click "Generate token"
119+
6. **Copy the token immediately** (you won't see it again!)
120+
7. Paste it into GitCode when adding a profile
121+
122+
## 📖 Usage Guide
123+
124+
### Creating Your First Project
125+
126+
1. Tap **"New Project"** on the home screen
127+
2. Enter a project name
128+
3. Tap **"Create"**
129+
4. Start coding!
130+
131+
### Working with Files
132+
133+
- **Create File**: Tap "File" → Enter filename with extension
134+
- **Create Folder**: Tap "Folder" → Enter folder name
135+
- **Open File**: Tap any file in the file browser
136+
- **Rename**: Long-press file → Select "Rename"
137+
- **Delete**: Long-press file → Select "Delete"
138+
- **Select Multiple**: Tap "Select" → Check files → Tap "Actions"
139+
140+
### GitHub Workflow
141+
142+
#### Clone a Repository
143+
1. Tap **"Clone Repository"** on home screen
144+
2. Enter full GitHub URL (e.g., `https://github.com/username/repo`)
145+
3. Select your GitHub profile
146+
4. Tap **"Clone"**
147+
148+
#### Push Changes
149+
1. Make changes to your files
150+
2. Tap **💾 Save** (or auto-save handles it)
151+
3. Tap **🚀 Push**
152+
4. Enter commit message
153+
5. Changes are pushed to GitHub
154+
155+
#### Pull Changes
156+
1. Open your project
157+
2. Tap **Menu (☰)** → **"Pull from GitHub"**
158+
3. Select your profile
159+
4. Local files sync with remote repository
160+
161+
### Customizing Settings
162+
163+
1. Tap **"⚙ Settings"** on home screen
164+
2. Adjust **Font Size** with slider (10-30sp)
165+
3. Toggle **Theme** between Dark/Light mode
166+
4. Tap **"Save"** to apply changes
167+
168+
## 🎨 Supported Languages
169+
170+
Syntax highlighting is automatically applied for:
171+
172+
| Language | Extensions |
173+
|----------|-----------|
174+
| Java | `.java` |
175+
| JavaScript | `.js`, `.jsx` |
176+
| TypeScript | `.ts`, `.tsx` |
177+
| Python | `.py` |
178+
| HTML | `.html`, `.htm` |
179+
| CSS | `.css`, `.scss`, `.sass` |
180+
| C/C++ | `.c`, `.cpp`, `.h`, `.hpp` |
181+
| Go | `.go` |
182+
| Rust | `.rs` |
183+
| PHP | `.php` |
184+
| Ruby | `.rb` |
185+
| Swift | `.swift` |
186+
| Kotlin | `.kt` |
187+
| JSON | `.json` |
188+
| YAML | `.yaml`, `.yml` |
189+
| XML | `.xml` |
190+
191+
Plain text files (`.txt`, `.md`, etc.) display without syntax highlighting.
192+
193+
## ⚙️ Technical Details
194+
195+
### Requirements
196+
- **Android Version**: 5.0 (Lollipop) or higher
197+
- **Permissions**:
198+
- `INTERNET` - GitHub API communication
199+
- `READ_EXTERNAL_STORAGE` - File access
200+
- `WRITE_EXTERNAL_STORAGE` - File operations
201+
- `MANAGE_EXTERNAL_STORAGE` - Project management
202+
203+
### Architecture
204+
- **Language**: Java
205+
- **UI Framework**: Native Android Views
206+
- **Storage**: SharedPreferences for settings, local filesystem for projects
207+
- **API**: GitHub REST API v3
208+
- **Build System**: Gradle
209+
- **CI/CD**: GitHub Actions (automatic APK builds and releases)
210+
211+
### Security
212+
- Credentials stored locally using Android SharedPreferences
213+
- Personal Access Tokens never logged or transmitted except to GitHub API
214+
- HTTPS-only communication with GitHub
215+
- No third-party analytics or tracking
216+
217+
## 🔧 Development
218+
219+
### Project Structure
220+
```
221+
GitHubActionsApp/
222+
├── app/src/main/
223+
│ ├── java/com/github/actions/
224+
│ │ ├── ProjectsActivity.java # Home screen & project management
225+
│ │ ├── IDEActivity.java # Main code editor
226+
│ │ └── GitHubAPI.java # GitHub integration
227+
│ ├── res/
228+
│ │ ├── drawable/ # Icons and graphics
229+
│ │ ├── mipmap-*/ # Launcher icons
230+
│ │ └── layout/ # XML layouts
231+
│ └── AndroidManifest.xml
232+
├── .github/workflows/
233+
│ └── android.yml # CI/CD pipeline
234+
└── README.md
235+
```
236+
237+
### Building Locally
238+
239+
**Prerequisites:**
240+
- Android Studio Arctic Fox or later
241+
- JDK 11 or higher
242+
- Android SDK 30+
243+
244+
**Steps:**
245+
1. Open project in Android Studio
246+
2. Sync Gradle files
247+
3. Build → Build Bundle(s) / APK(s) → Build APK(s)
248+
4. APK location: `app/build/outputs/apk/release/`
249+
250+
### Contributing
251+
252+
Contributions are welcome! Please:
253+
1. Fork the repository
254+
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
255+
3. Commit your changes (`git commit -m 'Add amazing feature'`)
256+
4. Push to the branch (`git push origin feature/amazing-feature`)
257+
5. Open a Pull Request
258+
259+
## 🐛 Known Issues
260+
261+
- GitHub API rate limits apply (60 requests/hour unauthenticated, 5000/hour authenticated)
262+
263+
## 📄 License
264+
265+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
266+
267+
## 🙏 Acknowledgments
268+
269+
- Built with ❤️ for mobile developers
270+
- Inspired by professional desktop IDEs
271+
- Thanks to the Android and GitHub communities
272+
273+
## 📞 Support
274+
275+
- **Issues**: [GitHub Issues](https://github.com/UniverseKing4/GitHubActionsApp/issues)
276+
- **Discussions**: [GitHub Discussions](https://github.com/UniverseKing4/GitHubActionsApp/discussions)
277+
278+
---
279+
280+
<div align="center">
281+
282+
**Made with ❤️ for developers who code on the go**
283+
284+
⭐ Star this repo if you find it useful!
285+
286+
</div>

0 commit comments

Comments
 (0)