Skip to content

Improve Tracker Online touch and mobile usability#73

Draft
lookang wants to merge 1 commit into
OpenSourcePhysics:masterfrom
lookang:codex/tracker-student-mobile
Draft

Improve Tracker Online touch and mobile usability#73
lookang wants to merge 1 commit into
OpenSourcePhysics:masterfrom
lookang:codex/tracker-student-mobile

Conversation

@lookang

@lookang lookang commented Jul 22, 2026

Copy link
Copy Markdown

Purpose

This draft proposes a touch-first Tracker Online variant for secondary-school students using phones and tablets. The goal is to preserve Tracker's established analysis engine and file compatibility while making the most common learning workflow usable with fingers, smaller screens, and on-screen keyboards.

A live deployment has been iterated with feedback from iPhone, iPad, and Android users:

This is intentionally a draft. I would welcome guidance from Douglas Brown and the Tracker maintainers on which pieces are suitable for upstream adoption and whether the changes should be split into smaller PRs.

Proposed changes

Minimal Tracker/SwingJS source changes

  • enlarge the Step interaction rectangle from 8 x 8 to 24 x 24 pixels for finger selection;
  • expose narrow Java-to-JavaScript bridge methods for the current project name, Save As, and view selection;
  • use the decoded local file path when resolving cached Library Browser resources;
  • make the ComPADRE startup probe tolerant of slower mobile connections and non-blocking when the remote service is unavailable.

Mobile enhancement layer

  • responsive Project, New track, Measure, Views, and More command groups;
  • contextual sheets rather than relying on narrow multi-level Swing menus;
  • touch handling for point masses, calibration tools, axes, plot/table selection, combo boxes, menus, dialogs, and the Library Browser;
  • larger controls and hit targets while retaining access to the original interface;
  • portrait and compact-landscape layouts;
  • mobile-safe file opening, saving, and on-screen-keyboard behavior.

Documentation and reproducibility

  • full repository landing guide and live links;
  • UPSTREAM_INTEGRATION.md with a file-by-file review and suggested adoption order;
  • mobile test matrix, changelog, compatibility fixture, and repeatable patch scripts;
  • pedagogical article explaining why video analysis is valuable on student-owned devices.

The generated SwingJS launcher is included so the demonstrated build can be reproduced, but an upstream release should regenerate it from any Java changes the maintainers accept.

Suggested review order

  1. Read UPSTREAM_INTEGRATION.md.
  2. Review the three small Java source changes independently.
  3. Review the launcher and tracker-student-mobile.{css,js} enhancement layer.
  4. Decide whether the responsive launcher should remain optional or whether selected touch fixes belong in the standard Tracker Online interface.
  5. Rebuild generated SwingJS artifacts from accepted sources.

I am happy to split this proposal into focused PRs based on maintainer feedback.

Validation performed

  • JavaScript syntax validation with node --check;
  • PowerShell AST parsing for all patch and upgrade scripts;
  • authored-source whitespace and credential scans;
  • public application, pedagogy page, and changelog URLs verified with HTTP 200;
  • live testing of Point Mass marking, calibration-stick dragging, axes, plot/table views, Library Browser interaction, portrait layouts, and compact landscape layouts;
  • no alert or console-error regressions in the latest browser QA pass.

The local machine did not have Ant installed, so a complete Java/Ant build was not rerun. The Java changes are documented separately to make source-level review and rebuilding straightforward.

Product boundary

This repository contains only the open-source Tracker enhancement. A possible independent commercial companion application is explicitly outside this repository; the boundary is recorded in MOBILE_COMPANION_BOUNDARY.md.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant