IOS-Mapper WiFi is an iPhone application for Wi-Fi survey workflows with offline storage, map visualization, analytics, and optional integration with an ESP32 external scanner.
This project is designed to be free to use for research, education, testing, and production-like field diagnostics.
This mobile app depends on the companion firmware project:
- Collects Wi-Fi observations and geolocation context.
- Stores data locally in Core Data (offline-first workflow).
- Displays current and historical data on map overlays.
- Compares historical area snapshots.
- Shows signal/security/channel analytics.
- Imports scan data from an external ESP32 scanner via HTTP API.
The app supports two scan modes:
iPhone associated network
- Uses public iOS APIs.
- Can read only the currently associated network.
External scanner
- Uses ESP32 scanner HTTP endpoints.
- Supports full nearby network scan ingestion.
When External scanner is selected, IOS-Mapper WiFi:
- Checks scanner availability (
GET /status). - Pushes scan configuration (
POST /configure). - Starts and stops scan sessions (
POST /scan/start,POST /scan/stop). - Polls result payloads (
GET /scan/results). - Saves observations to local history and analytics datasets.
Important: Wi-Fi AP connection is manual in iOS system settings. The app does not auto-join scanner access points.
Sources/App- app composition, localization helpers, app model.Sources/Models- domain and settings models.Sources/Persistence- Core Data stack and repository layer.Sources/Services- scanner, location, export, background services.Sources/ViewModels- presentation logic.Sources/Views- SwiftUI screens and components.Resources- Info.plist, entitlements, localized strings.Tests- unit tests for data and repository behavior.
Additional docs:
- Xcode 26+
- XcodeGen
- iOS device (recommended for real field testing)
- Generate the project:
xcodegen generate
- Open:
WiFiMapper.xcodeproj
- Configure signing team in Xcode.
- Build and run on device.
- Location (
When In Use+Always) - Local Network access
- Access WiFi Information entitlement
- Background location and processing modes
- ATS local-network allowance for scanner HTTP endpoints
- Data is stored locally by default.
- No mandatory cloud dependency.
- Export is explicit and user-triggered.
This project is intended to be freely usable. If you distribute or publish it, include a license file and attribution policy appropriate for your organization.





