Velocity iPhone App
Dedicated iPhone source tree for the Velocity edge-phone surface.
Goals:
- preserve the visual language of the iPad Velocity app
- match the production feature scope of
android-edge-phone - use live backend data only
- register
iphone_edgesurface heartbeats against/api/mobile-edge/session
Contents:
VelocityIPhoneApp.swiftapp entryEdgeRootView.swifttab shellCore/shared config, networking, state, and stylingFeatures/Alerts, Lead Summary, Communications, Notes, Transcriptions, Settings
Configuration:
- Open
velocity-iphone.xcodeprojin Xcode. - If you want explicit per-build config values, copy
Config.xcconfig.exampleto a localConfig.xcconfigand attach it to the target build configurations. - Fill in either:
API_BEARER_TOKEN- or
API_EMAILandAPI_PASSWORD
- Keep
BASE_URLpointed at the live Velocity backend unless you intentionally override it.
Notes:
- This source tree is intended to supersede the earlier lightweight
velocity-edge-phonescaffold. - The backend routes already exist in
backend/api/routes_mobile_edge.py; this app consumes them directly.
Xcode test flow:
- Open
iOS/velocity-iphone/velocity-iphone.xcodeproj. - Select the
velocity-iphonescheme and an iPhone simulator such asiPhone 16 Pro. - In
Signing & Capabilities, choose your Apple development team and let Xcode resolve the bundle signing settings. - In
Build Settings, confirmInfo.plist Filepoints tovelocity-iphone/Info.plist. - If you are using live credentials through build settings, set
BASE_URL, plus eitherAPI_BEARER_TOKENorAPI_EMAILandAPI_PASSWORD. - Press
Cmd+Bto confirm the app builds. - Press
Cmd+Rto launch the simulator. - Verify the bottom-tab shell renders Alerts, Lead Summary, Communications, Notes, Transcriptions, and Settings.
- In Settings, confirm the app reports the expected auth mode and live backend base URL.
- Trigger a manual refresh or wait for auto-refresh, then verify Alerts and Lead Summary populate from the live backend.
- Create a note and confirm it appears without mock fallback behavior.
- Open Transcriptions and verify empty states are truthful when no live transcript exists.
- Review backend logs or database state to confirm
/api/mobile-edge/sessionheartbeats are updating the activeiphone_edgesession window.