Full UI redesign pass complete: persistent tab shell with an always-visible background map, Modern Professional Dark theme, monochrome dark map tiles, offline skeleton map, a shared GlassPanel/FloatingPill component kit, customizable HUD telemetry widgets, and the Map HUD / Plan & Route Planning / Rides History screen rebuilds. 374 tests passing, up from 316. The APK is a fresh release build (debug-signed, no release signing config exists yet). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012Xki7YAcc2TiN2PRZJ2tXr
84 lines
3.2 KiB
Markdown
84 lines
3.2 KiB
Markdown
# Rippr — copies held here
|
||
|
||
Rippr is a GPS ride recorder for motorcycles. There are now **two** codebases, and
|
||
neither has a git remote — they exist only on that machine, so the bundles below are the
|
||
only off-machine copies of their history.
|
||
|
||
| Repo | What it is |
|
||
|---|---|
|
||
| `~/dojo/rippr` | The original **native Android** app (Kotlin, v1 → v2.0.1). **Superseded**, but still the only version that has recorded real rides. |
|
||
| `~/dojo/rippr-flutter` | The **Flutter port** — Android *and* iOS. Feature-complete, better tested, never yet ridden. |
|
||
|
||
**Snapshots taken at:** native `ba57a92`, Flutter `04127d7`.
|
||
|
||
## What is here
|
||
|
||
| File | Purpose |
|
||
|---|---|
|
||
| `rippr-flutter-src/` | Flutter port, browsable source (`git archive HEAD`) |
|
||
| `rippr-flutter-history.bundle` | Flutter port, full git history — the actual backup |
|
||
| `rippr-flutter-1.0-debug.apk` | **Installable Flutter build** (`com.rippr.port`) |
|
||
| `rippr-src/` | Native app, browsable source |
|
||
| `rippr-full-history.bundle` | Native app, full git history |
|
||
| `rippr-2.0.1-debug.apk` | Native app, latest installable build (`com.rippr`) |
|
||
| `rippr-2.0-debug.apk`, `rippr-1.0-debug.apk` | Older native builds |
|
||
|
||
**The two APKs use different application ids on purpose** (`com.rippr` vs
|
||
`com.rippr.port`), so both install side by side. That is not an accident — validating the
|
||
port depends on recording the same ride on both at once.
|
||
|
||
## Installing
|
||
|
||
See **[INSTALL.md](INSTALL.md)** for Android and iOS, including the sideloading route for
|
||
iPhone (which needs a Mac and takes about ten minutes).
|
||
|
||
## Restoring either repo
|
||
|
||
```bash
|
||
git clone rippr-flutter-history.bundle rippr-flutter
|
||
cd rippr-flutter && flutter pub get && dart run build_runner build
|
||
flutter test
|
||
|
||
# or the native app
|
||
git clone rippr-full-history.bundle rippr
|
||
cd rippr && echo "sdk.dir=$HOME/Library/Android/sdk" > local.properties
|
||
./gradlew assembleDebug
|
||
```
|
||
|
||
Both need **JDK 17–21** for Android — AGP does not support 25.
|
||
|
||
## Where to start reading
|
||
|
||
Inside `rippr-flutter-src/`:
|
||
|
||
- `README.md` — status, and the two bugs the port found in the native app
|
||
- `docs/port/PARITY-AUDIT.md` — feature by feature, with the evidence behind each claim
|
||
- `docs/port/REAL-RIDE-CHECKLIST.md` — **the outstanding work**
|
||
- `docs/ARCHITECTURE.md` — why it is built this way
|
||
- `docs/port/PROGRESS.md` — everything that went wrong during the port
|
||
|
||
Inside `rippr-src/` (native): `docs/v2/PROGRESS.md` and `docs/TESTING.md` remain the
|
||
record of how the app got here.
|
||
|
||
## Keeping these current
|
||
|
||
```bash
|
||
cd ~/dojo/samplez
|
||
|
||
rm -rf rippr-flutter-src && mkdir rippr-flutter-src
|
||
git -C ~/dojo/rippr-flutter archive HEAD | tar -x -C rippr-flutter-src
|
||
(cd ~/dojo/rippr-flutter && git bundle create /tmp/fb.bundle --all) \
|
||
&& mv /tmp/fb.bundle rippr-flutter-history.bundle
|
||
|
||
rm -rf rippr-src && mkdir rippr-src
|
||
git -C ~/dojo/rippr archive HEAD | tar -x -C rippr-src
|
||
(cd ~/dojo/rippr && git bundle create /tmp/rb.bundle --all) \
|
||
&& mv /tmp/rb.bundle rippr-full-history.bundle
|
||
|
||
git bundle verify rippr-flutter-history.bundle
|
||
git bundle verify rippr-full-history.bundle
|
||
```
|
||
|
||
The exports wipe those directories wholesale, which is why this file and `INSTALL.md`
|
||
live at the repo root rather than inside them.
|