Fjord for Android
Fjord for Android is the Android counterpart to the iOS app: a universal phone and tablet client for self-hosted Forgejo, built to reach the same feature set against the same API contract.
The Android app is an early scaffold under active development. The pieces below describe the target and what the build is made of; check the repository for exactly what has landed.
Requirements
| Devices | Android phones, tablets, and foldables (universal) |
| OS | Android 8.0 (API 26) or later |
| Server | Any Forgejo 15.x instance (Gitea 1.22-compatible API), reachable over HTTPS |
| Account | A Fjord Account or a Forgejo personal access token |
How it is built
The Android app shares Fjord’s design goals and its API discipline, on a native Android stack:
- Kotlin with Jetpack Compose and Material 3.
- Single-Activity app with Navigation Compose.
ViewModelplusStateFlow, dependency injection with Hilt.- Ktor and kotlinx.serialization for networking.
- A generated
:forgejokitmodule built from the same sharedforgejo-api-contractOpenAPI spec the iOS client uses, so app code never builds requests by hand. Both apps move in lockstep when the contract changes.
Building from source
You need a JDK (17 or later) and the Android SDK. With Android Studio installed:
JAVA_HOME="/Applications/Android Studio.app/Contents/jbr/Contents/Home" \
ANDROID_HOME="$HOME/Library/Android/sdk" \
./gradlew assembleDebug testDebugUnitTestOr open the project in Android Studio and run the app configuration. The
repository’s docs/parity-plan.md tracks the roadmap and what has shipped.
Signing in
Connecting works the same way as on iOS: a Fjord Account for the hosted platform, or a personal access token for any Forgejo instance by hostname. Sign-in is evolving with the app; see Signing in for the credential model and token scopes.
Pointing the app at a self-hosted Forgejo instance that Fjord does not host for
you (a custom server) requires a Pro account. This is a mobile-app requirement;
the fj CLI connects to any Forgejo host with a
personal access token at no extra cost.
- Stephen Way