mobile app to connect to the fabled assistant
- Dart 77.2%
- C++ 10.9%
- CMake 8.6%
- Swift 1.1%
- Kotlin 0.9%
- Other 1.3%
dev push → artifact named fabledapp-dev-<sha> main push → artifact named fabledapp-<sha> tag push → artifact + Forgejo Release Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| android | ||
| assets/icon | ||
| ios | ||
| lib | ||
| linux | ||
| macos | ||
| test | ||
| web | ||
| windows | ||
| .gitignore | ||
| .metadata | ||
| analysis_options.yaml | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
Fabled — Android App
Native Android client for FabledAssistant, a self-hosted AI productivity assistant.
Features
- Notes — create, edit, and browse markdown notes
- Tasks — manage tasks with status (To Do / In Progress / Done) and priority
- Chat — streaming AI conversations with real-time SSE response display
- Quick Capture — FAB shortcut to create a note or task from anywhere
- OAuth / SSO — authenticates via your server's configured OIDC provider; local username/password login also supported if enabled on the server
- Session persistence — stays logged in across app restarts via a persistent cookie jar
- Home screen widget — tap to open the chat screen directly from the Android launcher
Requirements
- A running FabledAssistant server (self-hosted)
- Android 5.0+ (API 21)
Getting Started
Prerequisites
- Flutter 3.x SDK
- Android Studio (for Android SDK and emulator)
- JDK 17
Setup
flutter pub get
flutter run
On first launch, enter your FabledAssistant server URL (e.g. https://fabled.example.com) and sign in.
Architecture
lib/
├── main.dart # Entry point; resolves async deps before runApp
├── app.dart # GoRouter + auth redirect guards + shell nav
├── core/
│ ├── constants.dart # Route name constants
│ └── exceptions.dart # AppException hierarchy
├── data/
│ ├── api/ # Dio HTTP layer (one class per resource)
│ ├── models/ # Plain Dart models with fromJson/toJson
│ └── repositories/ # Thin wrappers over API classes
└── providers/ # Riverpod providers (state + dependency wiring)
screens/ # Flutter UI screens
Key packages: flutter_riverpod, go_router, dio + cookie_jar, flutter_inappwebview, flutter_markdown
Building a Release APK
flutter build apk --release
The signed APK will be at build/app/outputs/flutter-apk/app-release.apk.