mirror of
https://gitlab.com/Zer0interrupt/recipe-manager.git
synced 2026-11-01 23:24:11 -05:00
59 lines
2.4 KiB
Markdown
59 lines
2.4 KiB
Markdown
# ForkFolio Mobile 📱🍳
|
|
|
|
Cross-platform mobile application for **ForkFolio** built with Flutter, featuring deep **Android Share Target** ingestion, multimodal **Gemini Vision Camera Scanning**, and distraction-free **Cook Mode**.
|
|
|
|
---
|
|
|
|
## ✨ Features
|
|
|
|
* **Interactive Share Target (`ACTION_SEND`)**:
|
|
* Tap "Share" from Chrome, Instagram, TikTok, Reddit, or YouTube directly to ForkFolio.
|
|
* Pops an interactive bottom sheet that sanitizes URLs, extracts captions, scrapes details, and lets you preview & tag before saving.
|
|
* **Camera Recipe Scanner**:
|
|
* Point the camera at physical cookbooks, magazine pages, or handwritten recipe cards.
|
|
* Direct ingestion into ForkFolio's `POST /api/recipes/scan-photo` powered by server-side Gemini 2.5 Flash Vision.
|
|
* **Kitchen Cook Mode**:
|
|
* Automatic `Wakelock` keeps the screen awake so you don't touch your phone with flour or messy hands.
|
|
* Large, counter-readable typography with swipeable step cards.
|
|
* Live serving size scaling (0.5x, 1x, 1.5x, 2x) recalculating ingredient amounts on the fly.
|
|
* Integrated cooking timers with audible alerts.
|
|
* **Hardware-Backed Persistent Authentication**:
|
|
* Connects using `ff_m_...` device tokens stored in **Android Keystore** (`EncryptedSharedPreferences`) or **iOS Keychain**.
|
|
* Sliding 90-day inactivity expiration.
|
|
* One-click remote device revocation via ForkFolio web settings.
|
|
|
|
---
|
|
|
|
## 🚀 Getting Started
|
|
|
|
### 1. Prerequisites
|
|
* [Flutter SDK](https://flutter.dev/docs/get-started/install) (version `>= 3.2.0`)
|
|
* Android Studio with Android SDK (API 34+) or VS Code with Flutter extension
|
|
* An active ForkFolio instance accessible over HTTPS
|
|
|
|
### 2. Install Dependencies
|
|
```bash
|
|
cd forkfolio-mobile
|
|
flutter pub get
|
|
```
|
|
|
|
### 3. Run in Development
|
|
Connect an Android device or launch an emulator, then run:
|
|
```bash
|
|
flutter run
|
|
```
|
|
|
|
### 4. Build Release APK
|
|
```bash
|
|
flutter build apk --release
|
|
```
|
|
The resulting APK will be located at:
|
|
`build/app/outputs/flutter-apk/app-release.apk`
|
|
|
|
---
|
|
|
|
## 🔒 Security & Networking
|
|
|
|
* **Server Connection**: Enter your public HTTPS domain (e.g. `https://recipes.yourdomain.com`).
|
|
* **Credentials**: Log in once with your standard username/password. The app automatically registers with your device model name (e.g. "Google Pixel 8 Pro") and receives an encrypted persistent token.
|
|
* **Revocation**: At any time, you can visit the ForkFolio web app, open **Settings -> Linked Mobile Devices**, and tap **"Revoke"** to immediately cut off mobile access.
|