Phone application

Phone application

Stage 7 Android status and current phone guidance.

Release status — 20 October 2026: Squire 1.0.0-beta.1, including the coach Android app, is published and accepted for beta evaluation. Packaging/signature checks passed, the founder accepted the Galaxy S20+ standalone field/offline walkthrough, and the uploaded Android bundle's APK checksum matches the recorded build. Broader device, accessibility and historical-upgrade coverage are follow-up work, not unfinished beta.1 release gates. Institutions still approve their own environment and privacy/security arrangements before using real athlete data.

Android app in development

The coach-first Android field app supports institution URL sign-in, upcoming events, attendance, assessment results, completion and recovery. Squire 1.0.0-beta.1 is available as an Android download bundle below; there is no store listing.

Attendance capture, assessment drafts/results, event completion, encrypted event-storage configuration and command retry/recovery are implemented locally. Focused Node SQLite and isolated real-API checks pass. A temporary Android 14 emulator profile also passed queued fractional-score replay after force-stop and online restart, history, completion and recovery-share cancellation. Native storage initialization and a non-plaintext database header were checked; this is not a cryptographic audit. On 19 October, the signed production APK also started offline without Metro and preserved uncertain attendance plus an unsubmitted score draft through a same-key versionCode 1 → 1000001 update on a separate Android 14 emulator. Reconnecting confirmed attendance, one score result at revision 1 and completion. The lower-code qualification baseline used the same production code; historical release/schema migration remains unverified. The first physical-phone walkthrough was subsequently reported passed on 20 October; see below. The initial beta APK can retain a stale offline error after sync. A source fix is merged, with the first S20+ walkthrough subsequently reported passed. Use synthetic records until the institution approves real athlete information.

Field timing and completion

In updated builds, upcoming events explain that attendance, scores and completion unlock at the scheduled start, shown in the device timezone. Download the roster online before going offline. If timing is incorrect, ask staff to reschedule in the web app and refresh the roster. A completed event has a distinct read-only summary after institution acknowledgement; queued completion is still awaiting confirmation. Use web Events & assessments for event details and correction history.

The founder reports a successful offline-attendance → backend-restart → reconnect-and-sync walkthrough on 18 October 2026. Target/device type was not reconfirmed. This is reported attendance evidence, not acceptance of score capture, completion, app process-death recovery, native encryption or physical hardware.

History, recovery and language

Updated development builds provide per-athlete attendance and score history online, 25 entries per page, including the original entry and corrections. Current event authority is checked on every page; history is not cached offline.

Review saved work compares durable device changes with a separate current server read. It does not replace the queued base or modify operation IDs. Uncertain results retry the exact saved operation; rejected or revoked work remains paused. You can explicitly share a recovery copy through Android's chooser before discarding anything. Copies contain involved athlete names, attendance/scores/notes, event metadata and pending operations/drafts as plain text, without credentials or unrelated roster members. Choose only an institution-approved destination. Sharing does not confirm delivery, resend work, undo server records or provide automatic import. Oversized text is refused without truncation; individual-item sharing is available. Exported copies are outside app encryption and retention.

English/العربية controls restore a device-local preference and preserve open drafts when switching. Arabic layouts and feedback are implemented, including Arabic numeric entry. English light score history and Arabic dark recovery were inspected on a 1280×800 landscape Android emulator, alongside earlier schedule RTL checks. The later release check covered English/light portrait at 400dp; the full phone/layout/theme matrix, accessibility and broader native conflict/revocation/account-switch acceptance remain open. URL scanning is still unimplemented.

Beta installation and updates

The canonical Android release guide documents npm run mobile:release, local private signing, APK verification/checksums and installation checks. A release APK bundles JavaScript and does not need Metro or Android Studio. The published bundle is accepted for beta evaluation. Use synthetic records until the institution approves real athlete data.

Future updates must keep the package ID and signing key, increase Android versionCode and preserve the device database/key identifiers. Install updates in place; never uninstall or clear app data to repair a signature mismatch, because pending work can be lost. A separately signed development app needs another test device/AVD for release acceptance. See the release status before offering downloads.

Current phone and tablet use

Use your institution's responsive web address and ask its operator for account access. Browser emulation does not certify physical phones or tablets.

Platform scope

The first native target is Android. iOS is out of scope unless the project later approves it. The signed APK is published in the Android download bundle. The configured build minimum is Android 7.0 / API 24 with ARM64 phones and x86_64 emulators; this is a configuration target, not acceptance of every device/version. The founder reports the first S20+ walkthrough passed; broader device-size and hardware acceptance remain open. No push notifications or background synchronization are promised.

API development

The backend OpenAPI contract is available at /v1/openapi.json on an instance running a version with the Stage 7 export. Updated backends also serve Swagger UI at /v1/docs (Compose: /api/v1/docs), with local interaction and production reference-only browsing. See API development for authentication, deployment availability and safety boundaries.

Source and status

Updated on 20 October 2026 with the founder-reported phone result; earlier emulator evidence keeps its original scope. See the Stage 7 mobile scope.

Physical evaluation and signing ownership

The updated maintainer guide gives encrypted signing-key backup steps and a Galaxy S20+ test using USB forwarding to a local backend; a domain, emulator and Metro are unnecessary for that standalone check. Unplug USB as well as disabling Wi-Fi/mobile data to test genuine disconnection. This guide accompanies the merged fixes; the founder reports the first S20+ walkthrough passed.

The Android app serves coaches; administrators and athletes use the web app. Scores are performance observations, not medical diagnoses or injury predictions. Only downloaded events work offline; background sync and remote erasure are not promised. Server revocation blocks subsequent reads/replay but cannot erase records on an offline device. See the canonical privacy and operations guidance before evaluating real athlete data.

The merged update opens saved rosters directly from device storage while refreshing the schedule separately. Use Refresh roster online to download newer event data; resolve pending commands/drafts before replacing that package.

Phone result and release preparation — 20 October 2026

On 20 October 2026, the founder reported that the instructed Galaxy S20+ standalone installation and field/offline-recovery walkthrough worked as intended. This is a successful owner-reported physical-phone check. Android version, the installed APK checksum and per-locale/accessibility results were not supplied; broader device, tablet, accessibility and historical-upgrade coverage remain separate. See the recorded phone result and application PR #136.

The official Android download bundle is now published on the beta.1 GitHub prerelease. Extract the ZIP and open 1.0.0-beta.1/Rafik-Squire-1.0.0-beta.1-android.apk. It includes SHA256SUMS and non-secret build.json. On 20 October, the downloaded APK's computed SHA-256 matched both bundled records and the existing package receipt: 1654e44fd6f324d2403984a6a880b3dffabf81f3615c9ac8a71c5992a417fb5e. Its source is 5d1ce761505b07272c6d5b43414cd1d754b41517; the source archive tag remains 4ac70c8. No rebuild, tag move or repeat phone test was needed.

Install or build Rafik Field

For coaches, download and extract the Android bundle linked above. One app connects to separate institutions: enter your institution's HTTPS API URL (ending in /api for Compose) and coach account. No Node, Metro, emulator or Android Studio is needed. GitHub's separate Source code ZIP/tar.gz downloads are not Android installers.

To compile a standalone app, follow the fresh-checkout build procedure. On a machine with the Android SDK, JDK 17 and Node 22.16 or 24, select the reviewed source, run root npm ci, configure your private signing identity, then run npm run mobile:release -- --prepare-only and npm run mobile:release. Output is the signed APK, SHA256SUMS and non-secret build.json under artifacts/mobile/<app-version>/. Selecting the published tag builds that source, not later fixes.

Independent distributions use their own signing key and maintain their own updates; Rafik's private release key is not shared. Differently signed APKs cannot update an official installation in place. Contributors use npm run mobile:android once and npm run mobile:start for ordinary JavaScript work. See build-path selection.

Install on Android

  1. Download the Android bundle on the phone.
  2. In the file manager, extract the ZIP (Samsung: My Files → Downloads → select ZIP → Extract).
  3. Open the extracted folder and tap the .apk. Allow Install unknown apps for the file manager if prompted, then install Rafik Field. Institution-managed devices may need administrator approval.
  4. Open Rafik Field, enter the institution HTTPS API URL and sign in as a coach. A reachable institution server is required for sign-in and event downloads; downloaded field work can then be recorded offline.