# Telepin movement scope

The target is the iAnyGo-style GPS movement workflow with **one iPhone connected by USB or Wi-Fi**. Version 0.5.0 adds explicit USB pairing for a subsequent Wi-Fi session on iOS 17.4+. The Apple Silicon Mac port still requires a native Mac build and device verification. The comparison uses the vendor's [movement guide](https://www.tenorshare.com/guide/how-to-change-your-location-on-iphone.html) and [GPX guide](https://www.tenorshare.com/guide/ianygo-tips-before-spoofing-location.html). This is an independent implementation, not a copy of its code or assets.

## Included movement controls

- Fixed-location selection using map, address search, or coordinates.
- Two-point and multi-stop routes with editable, draggable, ordered stops and a visible path.
- Straight-line travel or road/path routing for walking, cycling, and driving.
- Movement speed, live speed changes, pause, resume, and stop.
- Repeat passes with either restart at the first stop or alternating forward/backward travel. **Two backtrack passes make one round trip.** Restart explicitly jumps back to the beginning between passes.
- Jump movement through a list of stops with a configurable wait between jumps. This is a movement timer, not a game-specific cooldown or a guarantee about another app.
- Joystick direction controls and keyboard movement, with an explicit starting location and optional continuous movement.
- GPX import/export and a local saved-route library.
- Restore real GPS, disconnect, and recovery after an interrupted session.

## Operating behavior

Selecting or editing a route only changes the plan. Starting playback sends the first point to the phone immediately, then follows the selected movement settings. Setting the joystick start also sends the chosen starting point; a paused joystick stays there until movement resumes.

**Pause and Stop hold the last sent location. Restore real GPS removes the override.** Route completion also holds the final location until restoration or disconnection. The app attempts restoration before closing. A failed or uncertain command retains the reset warning.

Movement waits for each location command to finish before sending another. It does not queue catch-up jumps after a slow phone or computer sleep. Computer sleep pauses playback. A device error stops automatic movement and requires attention; no automatic resume occurs after reopening the app.

Road routing needs internet and the public Valhalla/FOSSGIS service. It accepts up to 24 stops; the editor accepts up to 100 manually added stops for straight routes. Route geometry and GPX imports are limited to 20,000 points; GPX files must be UTF-8 XML no larger than 2 MiB. Separate GPX routes and track segments are offered separately rather than joined across gaps. Playback uses your selected speed; GPX elevation and timestamps are not replayed. The saved-route library holds up to 50 routes.

The routing service receives route stops and travel mode only when you request a road route. Requests are identified, rate-limited, and cached locally in memory. Availability is not guaranteed. Before distributing a public app using this demo service, follow its [usage policy](https://valhalla.github.io/valhalla/start/introduction/), including contacting the maintainers; no such external message has been sent by this project.

## Scope limits and verification

Wi-Fi setup is an explicit action while the iPhone is trusted over USB, unlocked, and in Developer Mode. Wireless discovery uses existing local pairing records; connecting verifies the saved phone identity. No USB fallback occurs when Wi-Fi is selected. Recovery can explicitly use USB for the same phone and always restores GPS before continuing. There is no automatic route restart after a connection failure.

This release does not add Android, multiple phones, cloud accounts/sync, Bluetooth accessories, game integrations, or a promise to retain simulation after the desktop connection closes. Those are separate from the desktop/iPhone movement scope requested here.

Automated movement tests use simulated device transports. Desktop UI and installer checks do not establish phone compatibility. **Real route playback, update smoothness, and reset behavior on the reported iOS 26.7 still require a connected-device test.** The latitude/longitude transport does not independently prove reported speed, heading, altitude, or another app's displayed location.
