Add the Rippr Flutter port: source, history bundle, and installable APK
The port runs on Android and iOS and is feature-complete; the native Android app is superseded but kept, since it is still the only version that has recorded real rides. rippr-flutter-1.0-debug.apk is package com.rippr.port, deliberately different from the native com.rippr so both install side by side. Recording the same ride on both at once is the strongest available check that the port is faithful. Added INSTALL.md covering both platforms. Android is a one-line adb install; iOS has no APK equivalent and must be built and signed through Xcode with a free Apple ID, which gives a 7-day profile. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
19
rippr-flutter-src/tool/parity/stubs.kt
Normal file
19
rippr-flutter-src/tool/parity/stubs.kt
Normal file
@@ -0,0 +1,19 @@
|
||||
package com.rippr.data
|
||||
data class TrackPoint(
|
||||
val id: Long = 0, val tripId: Long, val segmentId: Long, val timestamp: Long,
|
||||
val latitude: Double, val longitude: Double, val speedKmh: Float,
|
||||
val altitudeM: Double, val accuracyM: Float = 0f, val bearingDeg: Float = 0f,
|
||||
val synced: Boolean = false,
|
||||
)
|
||||
data class Segment(
|
||||
val id: Long = 0, val tripId: Long, val startedAt: Long, val endedAt: Long? = null,
|
||||
) { val isOpen: Boolean get() = endedAt == null }
|
||||
|
||||
enum class TripState { RECORDING, PAUSED, COMPLETED }
|
||||
data class Trip(
|
||||
val id: Long = 0, val startedAt: Long, val endedAt: Long? = null,
|
||||
val name: String? = null, val state: TripState = TripState.RECORDING,
|
||||
val distanceM: Double = 0.0, val movingMillis: Long = 0,
|
||||
val maxSpeedKmh: Float = 0f, val elevationGainM: Double = 0.0,
|
||||
val pointCount: Int = 0,
|
||||
)
|
||||
Reference in New Issue
Block a user