Skip to content

Latest commit

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

HELM Mobile — iOS Field Sales Route Companion

SwiftUI iOS companion app for the HELM field sales route planner web app.

Requirements

  • macOS with Xcode 16+
  • iOS 17+ target device or simulator
  • XcodeGen (brew install xcodegen)

Setup

  1. Generate the Xcode project:

    xcodegen generate
  2. Configure environment variables — Add these to Supporting/Info.plist (or use Xcode build settings):

    SUPABASE_URL = https://your-project.supabase.co
    SUPABASE_ANON_KEY = your_anon_key_here
    HELM_API_BASE_URL = https://your-helm-app.vercel.app
    
  3. Open in Xcode:

    open HELM.xcodeproj
  4. Set your development team in the project settings and run on your device.

Architecture

Sources/HELM/
├── HELMApp.swift — App entry, auth gate, tab view
├── Models/
│ └── Models.swift — SavedRoute, RouteStop, ContactSummary
├── Services/
│ ├── SupabaseService.swift — Singleton client + RouteRepository
│ ├── AuthState.swift — Observable auth state
│ └── OfflineStore.swift — SwiftData cache + mutation queue
└── Views/
├── LoginView.swift
├── RouteList/
│ └── RouteListView.swift
├── RouteDetail/
│ ├── RouteDetailView.swift — Map + stop list + Realtime subscription
│ └── RouteMapView.swift — MapKit map with numbered pins
├── StopDetail/
│ └── StopDetailView.swift — Status, notes, outcome, time window, navigation
└── Settings/
└── SettingsView.swift

Key Features

FeatureImplementation
AuthSupabase Auth (shared session with web app)
Route listFetched from Supabase, pull-to-refresh
Route mapMapKit with numbered pins + polyline
Real-time syncSupabase Realtime subscription on route_stops
Visit loggingStatus (pending/visited/skipped), notes, outcome
NavigationTap to open Apple Maps / Google Maps / Waze
OfflineSwiftData cache + pending mutation queue, syncs on reconnect
Bigin syncVia 15-min cron on web app — no iOS-specific Bigin code needed

Navigation Deep Links

  • Apple Maps: maps://maps.apple.com/?daddr=<lat>,<lng>
  • Google Maps: comgooglemaps://?daddr=<lat>,<lng>&directionsmode=driving
  • Waze: waze://?ll=<lat>,<lng>&navigate=yes

Set preferred app in Settings tab.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages