Skip to content
2 min read

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.

Tip

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

DevicesAndroid phones, tablets, and foldables (universal)
OSAndroid 8.0 (API 26) or later
ServerAny Forgejo 15.x instance (Gitea 1.22-compatible API), reachable over HTTPS
AccountA 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.
  • ViewModel plus StateFlow, dependency injection with Hilt.
  • Ktor and kotlinx.serialization for networking.
  • A generated :forgejokit module built from the same shared forgejo-api-contract OpenAPI 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 testDebugUnitTest

Or 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.

Note

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.

Contributors
  • Stephen Way