iOS App — Foundational Locator¶
What it is¶
Foundational Locator is a native iOS "locator workspace" app for apartment/property locators. It lets a locator browse buildings, filter the universe down to what's relevant, run AI-assisted natural-language search, track fit against a client's criteria, and manage a save/shortlist pipeline through to close.
Tech stack¶
| Layer | Technology |
|---|---|
| Language | Swift 6 |
| UI | SwiftUI |
| Local persistence | SwiftData |
| Maps | MapKit |
| Networking | URLSession |
| Credential storage | Security / Keychain |
| Target OS | iOS 26 |
Note
The app deliberately has no third-party dependencies — it is built entirely on Apple frameworks.
Architecture¶
- Data is fetched from a hosted "Resource API" and cached locally in SwiftData for
offline and responsive browsing. SwiftData is explicitly a device cache and
workflow store, not an independent source of truth — the warehouse behind the
Resource API remains authoritative. See
../data-model/warehouse-schema.mdfor the underlying schema. - A dedicated memory+disk cache holds building photo bytes so images persist across app launches without re-downloading.
- The app talks to a
/resourcegateway with two calls:resource=buildings— paginated discovery.resource=building— full detail for a single building.
These expose the same underlying warehouse fields the (retired) Chrome extension used to show — see Chrome Extension — Relive Overlay for that history. - Property coordinates are resolved via the on-device MapKit geocoder and persisted in SwiftData so the map view works offline on subsequent launches. - Sync is merge-based: an interrupted sync never wipes existing locator notes, client assignments, or save-pipeline state. - Auth is a Resource API key entered in Settings, used when the deployment requires one.
For how the Resource API's backend fits into the rest of the platform, see Architecture Overview.
Core flows¶
- Explore properties in a list or an Apple Maps view; filter by market, commission, confidence, contactability, amenities, and monthly rent.
- Natural-language search via Apple Intelligence — a free-text query is turned into structured filters automatically.
- Inspect commission basis, confidence, sources, rent, and management/leasing contacts for a building.
- Browse photos, amenities, specials, floorplans, and unit-availability rows.
- Call, email, open the property's site, share, take notes, or assign a property to a client.
- Shortlist a property via a full right-swipe or a card bookmark. Shortlisted cards mute visually and live in a dedicated Shortlist tab, backed by a five-stage SwiftData save pipeline.
- Store per-client criteria and rank properties by explainable fit (market, budget, bedrooms, neighborhood, amenities, locator terms, contact readiness).
Visual conventions¶
Market illustrations (Chicago/Atlanta/Denver) are original decorative artwork used only for market identity — they are not real photos.
Every property card, map pin, and detail view uses only real photos sourced from the Resource API. A missing or failed photo shows a neutral placeholder rather than a stock image.
Build & test¶
xcodebuild -project ios/FoundationalLocator.xcodeproj \
-scheme FoundationalLocator \
-sdk iphonesimulator \
-configuration Debug \
CODE_SIGNING_ALLOWED=NO build
xcodebuild test -project ios/FoundationalLocator.xcodeproj \
-scheme FoundationalLocator \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro'
For interactive development, open FoundationalLocator.xcodeproj directly in Xcode 26.
Note
See Deployment for how the Resource API backend this app depends on is deployed and operated, and History & Migrations for background on prior clients that consumed the same underlying data.