Files
samplez/RIPPR.md
uhryniuk 587f75eab4 Refresh the Flutter snapshot: UI-01 through UI-09, plus a fresh installable APK
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
2026-08-24 14:41:35 -05:00

84 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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