mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
This change modifies the process for generating and integrating the Meshtastic protobufs into the client application. * The generated Swift code is now in a local SPM package `MeshtasticProtobufs` * An Xcode Workspace file `Meshtastic.xcworkspace` was created to more easily manage the new build targets. * The code generation script for the protos was modified to generate the Swift code into the new location. * The README.md was updated to reflect these changes. NOTE: After merging this PR, do not open the project file `Meshtastic.xcodeproj`. You must use the workspace `Meshtastic.xcworkspace` Extracting out the generated protobuf code into its own library enables several opportunities for the project. This is just a first step, but with some more modularization, a standalone Apple Watch app or other targets starts to become a little bit more achievable to implement. After extracting the protobufs into a Swift package, I validate these changes by building and running the Meshtastic app to an iPhone 15 Pro Max, and tried changing some settings on a local node. I then messaged back and forth using two local nodes connected to two different iOS devices.
48 lines
890 B
Markdown
48 lines
890 B
Markdown
# Meshtastic Apple Clients
|
|
|
|
<a href="https://apple.co/3Auysep">
|
|
<img alt="Meshtastic App Store Launch Image" src="meshtastic-1080x1080.png" />
|
|
</a>
|
|
|
|
## Overview
|
|
|
|
SwiftUI client applications for iOS, iPadOS and macOS.
|
|
|
|
## Getting Started
|
|
|
|
This project is currently using **Xcode 15.4**.
|
|
|
|
1. Clone the repo.
|
|
2. Open `Meshtastic.xcworkspace`
|
|
2. Build and run the `Meshtastic` target.
|
|
|
|
```sh
|
|
git clone git@github.com:meshtastic/Meshtastic-Apple.git
|
|
cd Meshtastic-Apple
|
|
open Meshtastic.xcworkspace
|
|
```
|
|
|
|
## Technical Standards
|
|
|
|
### Supported Operating Systems
|
|
|
|
* iOS 16+
|
|
* iPadOS 16+
|
|
* macOS 13+
|
|
|
|
### Code Standards
|
|
|
|
- Use SwiftUI
|
|
- Use SFSymbols for icons
|
|
- Use Core Data for persistence
|
|
|
|
## Updating Protobufs:
|
|
- run:
|
|
```bash
|
|
scripts/gen_protos.sh
|
|
```
|
|
- build, test, commit changes
|
|
|
|
## License
|
|
|
|
This project is licensed under the GPL v3. See the [LICENSE](LICENSE) file for details.
|