SwiftUI client applications for iOS, iPadOS and macOS.
This project always uses the latest release version of XCode.
- Clone the repo.
git clone git@github.com:meshtastic/Meshtastic-Apple.git
- Open the local directory.
cd Meshtastic-Apple - Set up git hooks to automatically lint the project when you commit changes.
./scripts/setup-hooks.sh
- Open
Meshtastic.xcworkspaceopen Meshtastic.xcworkspace
- Build and run the
Meshtastictarget.
The last two major operating system versions are supported on iOS, iPadOS and macOS.
- Use SwiftUI
- Use SFSymbols for icons
- Use Core Data for persistence
- run
./scripts/gen_protos.sh- Build, test, and commit the changes.
The app supports deep links using the meshtastic:/// URL scheme, for use with shortcuts, intents, and web pages.
| URL | Description |
|---|---|
meshtastic:///messages |
Messages tab |
meshtastic:///messages?channelId={channelId}&messageId={messageId} |
Channel messages (messageId is optional) |
meshtastic:///messages?userNum={userNum}&messageId={messageId} |
Direct messages (messageId is optional) |
| URL | Description |
|---|---|
meshtastic:///connect |
Connect tab |
| URL | Description |
|---|---|
meshtastic:///nodes |
Nodes tab |
meshtastic:///nodes?nodenum={nodenum} |
Selected node |
| URL | Description |
|---|---|
meshtastic:///map |
Map tab |
meshtastic:///map?nodenum={nodenum} |
Node on map |
meshtastic:///map?waypointId={waypointId} |
Waypoint on map |
Each settings item has an associated deep link. No parameters are supported for settings URLs.
| URL | Description |
|---|---|
meshtastic:///settings/about |
About Meshtastic |
meshtastic:///settings/appSettings |
App Settings |
meshtastic:///settings/routes |
Routes |
meshtastic:///settings/routeRecorder |
Route Recorder |
| Radio Config | |
meshtastic:///settings/lora |
LoRa Config |
meshtastic:///settings/channels |
Channels |
meshtastic:///settings/security |
Security Config |
meshtastic:///settings/shareQRCode |
Share QR Code |
| Device Config | |
meshtastic:///settings/user |
User Config |
meshtastic:///settings/bluetooth |
Bluetooth Config |
meshtastic:///settings/device |
Device Config |
meshtastic:///settings/display |
Display Config |
meshtastic:///settings/network |
Network Config |
meshtastic:///settings/position |
Position Config |
meshtastic:///settings/power |
Power Config |
| Module Config | |
meshtastic:///settings/ambientLighting |
Ambient Lighting |
meshtastic:///settings/cannedMessages |
Canned Messages |
meshtastic:///settings/detectionSensor |
Detection Sensor |
meshtastic:///settings/externalNotification |
External Notification |
meshtastic:///settings/mqtt |
MQTT |
meshtastic:///settings/paxCounter |
Pax Counter |
meshtastic:///settings/rangeTest |
Range Test |
meshtastic:///settings/ringtone |
Ringtone |
meshtastic:///settings/serial |
Serial |
meshtastic:///settings/storeAndForward |
Store & Forward |
meshtastic:///settings/telemetry |
Telemetry |
| TAK | |
meshtastic:///settings/tak |
TAK Config |
| Logging | |
meshtastic:///settings/debugLogs |
Debug Logs |
| Developers | |
meshtastic:///settings/appFiles |
App Files |
meshtastic:///settings/firmwareUpdates |
Firmware Updates |
For more information on how a new release of Meshtastic is managed, please refer to RELEASING.md
This project is licensed under the GPL v3. See the LICENSE file for details.