📱 ForgeHub — Forgejo/Gitea Android-Client mit Jetpack Compose & Material 3. Repos, Issues, Pull Requests, Benachrichtigungen, Wiki, Releases, Offline-Modus, Dunkles Design, Multi-Account.
Find a file
2026-03-11 14:54:12 +01:00
.github/workflows Phase 12: Polish & Release 2026-03-11 14:21:46 +01:00
app Fix all compile errors: remove PullToRefreshBox, HorizontalDivider, surfaceContainerLow, fix NavItem icon type, CacheMapper User params, ForgejoApi Tag import, add ExperimentalMaterial3Api opt-ins 2026-03-11 14:54:12 +01:00
fastlane/metadata/android/en-US Phase 12: Polish & Release 2026-03-11 14:21:46 +01:00
gradle/wrapper Fix all compile errors: remove PullToRefreshBox, HorizontalDivider, surfaceContainerLow, fix NavItem icon type, CacheMapper User params, ForgejoApi Tag import, add ExperimentalMaterial3Api opt-ins 2026-03-11 14:54:12 +01:00
metadata Phase 12: Polish & Release 2026-03-11 14:21:46 +01:00
.gitignore Initial commit: ForgeHub - Forgejo/Gitea Android client 2026-03-11 14:11:35 +01:00
build.gradle.kts Initial commit: ForgeHub - Forgejo/Gitea Android client 2026-03-11 14:11:35 +01:00
CHANGELOG.md Phase 12: Polish & Release 2026-03-11 14:21:46 +01:00
gradle.properties Initial commit: ForgeHub - Forgejo/Gitea Android client 2026-03-11 14:11:35 +01:00
gradlew Fix all compile errors: remove PullToRefreshBox, HorizontalDivider, surfaceContainerLow, fix NavItem icon type, CacheMapper User params, ForgejoApi Tag import, add ExperimentalMaterial3Api opt-ins 2026-03-11 14:54:12 +01:00
gradlew.bat Fix all compile errors: remove PullToRefreshBox, HorizontalDivider, surfaceContainerLow, fix NavItem icon type, CacheMapper User params, ForgejoApi Tag import, add ExperimentalMaterial3Api opt-ins 2026-03-11 14:54:12 +01:00
README.md Phase 12: Polish & Release 2026-03-11 14:21:46 +01:00
settings.gradle.kts Fix all compile errors: remove PullToRefreshBox, HorizontalDivider, surfaceContainerLow, fix NavItem icon type, CacheMapper User params, ForgejoApi Tag import, add ExperimentalMaterial3Api opt-ins 2026-03-11 14:54:12 +01:00
TODO.md Update TODO.md: Tasks #59-#80 completed 2026-03-11 14:22:16 +01:00

ForgeHub 🔨

A modern Android client for Forgejo and Gitea instances.

Built with Kotlin, Jetpack Compose, and Material 3.

Get it on F-Droid

Features

Core

  • 🔐 Multi-Account Support — Connect to multiple Forgejo/Gitea servers with token-based auth
  • 📊 Dashboard — Overview of your repos, starred repos, organizations, and activity feed
  • 📁 Repository Browser — Browse files, view code with syntax highlighting, render README.md
  • 🌿 Branch & Tag Selection — Switch between branches and tags seamlessly
  • 📜 Commit History — View commits and contributors

Issues & Pull Requests

  • 🐛 Issues — List, filter, create, comment, close/reopen with label & milestone management
  • 🔀 Pull Requests — View PRs, diffs, reviews, comments, and merge directly from the app
  • 🏷️ Labels & Milestones — Full label and milestone management
  • 👥 Assignees — Assign and manage issue assignees

Collaboration

  • 🔔 Notifications — Unread notifications with swipe-to-dismiss and deep-links
  • 📝 Markdown Editor — Write issues and comments with live preview
  • 📎 File Upload — Attach files to issues
  • 🔍 Code Search — Search files within repositories
  • 📦 Releases — Browse releases with download links
  • 📖 Wiki — Read wiki pages with full Markdown rendering
  • 🍴 Fork & Create — Fork repos and create new ones from the app

Polish

  • 👤 Profile — View your profile and other users with follower/following lists
  • ⚙️ Settings — Light/Dark/System theme, account management, cache control
  • 🎨 Material You — Dynamic colors on Android 12+, Forgejo orange accent
  • 💾 Offline Mode — Cached data available without network
  • 🚀 Performance — Paging 3 for long lists, Coil for image caching

Screenshots

Dashboard Repository Issues Pull Requests
Dashboard Repository Issues PRs
Notifications Releases Wiki Create Repo
Notifications Releases Wiki Create

Screenshots coming soon — placeholders above

Tech Stack

Component Technology
Language Kotlin
UI Jetpack Compose + Material 3
Architecture MVVM (ViewModel + Repository)
Networking Retrofit2 + OkHttp
DI Koin
Async Coroutines + Flow
Images Coil
Database Room
Pagination Paging 3
Markdown Markwon
Storage EncryptedSharedPreferences + DataStore

Build

Prerequisites

  • Android Studio Hedgehog (2023.1.1) or newer
  • Android SDK 34
  • JDK 17

Steps

git clone https://github.com/krugi20/forgejo_android_app.git
cd forgejo_android_app
./gradlew assembleDebug

Or open in Android Studio and click ▶️ Run.

Release Build

export KEYSTORE_PASSWORD=your_password
export KEY_ALIAS=forgehub
export KEY_PASSWORD=your_key_password
./gradlew assembleRelease

API

This app uses the Forgejo/Gitea REST API v1. All you need is:

  1. Your server URL (e.g., https://forgejo.example.com)
  2. An API token (Settings → Applications → Generate Token)

Project Structure

app/src/main/java/com/krugi20/forgejoapp/
├── data/
│   ├── api/          # Retrofit API interface, interceptors
│   ├── local/        # AccountManager, SettingsManager, Room database
│   ├── model/        # Data classes (User, Repo, Issue, PR, Release, etc.)
│   ├── paging/       # Paging 3 sources
│   └── repository/   # ForgejoRepository
├── di/               # Koin dependency injection modules
├── ui/
│   ├── components/   # Reusable components (MarkdownEditor)
│   ├── navigation/   # Navigation routes and NavGraph
│   ├── screens/      # All screens
│   │   ├── dashboard/
│   │   ├── issues/
│   │   ├── login/
│   │   ├── notifications/
│   │   ├── onboarding/
│   │   ├── profile/
│   │   ├── pullrequests/
│   │   ├── releases/
│   │   ├── repos/
│   │   ├── search/
│   │   ├── settings/
│   │   └── wiki/
│   └── theme/        # Material 3 theme with Forgejo colors
└── util/             # Utilities (NetworkMonitor, etc.)

Contributing

Contributions welcome! Please open an issue or PR.

License

MIT License — Copyright (c) 2024 Klaus Krug

See LICENSE for the full text.