Apple iOS, iPadOS & macOS Clients For Meshtastic
Find a file
Blake McAnally 58da532d32 Extract the generated protobufs into its own Swift package
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.
2024-06-28 11:11:01 -05:00
.github Update feature.yml 2023-08-15 18:57:37 -07:00
de.lproj translation strings for log headers, add device log setting to save 2024-06-23 08:23:05 -07:00
en.lproj translation strings for log headers, add device log setting to save 2024-06-23 08:23:05 -07:00
fr.lproj translation strings for log headers, add device log setting to save 2024-06-23 08:23:05 -07:00
he.lproj translation strings for log headers, add device log setting to save 2024-06-23 08:23:05 -07:00
Meshtastic Extract the generated protobufs into its own Swift package 2024-06-28 11:11:01 -05:00
Meshtastic.xcodeproj Extract the generated protobufs into its own Swift package 2024-06-28 11:11:01 -05:00
Meshtastic.xcworkspace Extract the generated protobufs into its own Swift package 2024-06-28 11:11:01 -05:00
MeshtasticProtobufs Extract the generated protobufs into its own Swift package 2024-06-28 11:11:01 -05:00
pl.lproj translation strings for log headers, add device log setting to save 2024-06-23 08:23:05 -07:00
protobufs@4da558d0f7 Add device logging config, update protobufs 2024-06-23 07:36:03 -07:00
pt-PT.lproj translation strings for log headers, add device log setting to save 2024-06-23 08:23:05 -07:00
pt.lproj Update Localizable.strings fine combed 2024-05-08 02:54:32 +01:00
scripts Extract the generated protobufs into its own Swift package 2024-06-28 11:11:01 -05:00
se.lproj translation strings for log headers, add device log setting to save 2024-06-23 08:23:05 -07:00
Settings.bundle Simplify settings 2024-05-01 10:13:15 -07:00
Widgets Factor out more CoreData entity creation into convenience initializers 2024-06-06 23:04:18 -05:00
zh-Hans.lproj translation strings for log headers, add device log setting to save 2024-06-23 08:23:05 -07:00
zh-Hant-TW.lproj translation strings for log headers, add device log setting to save 2024-06-23 08:23:05 -07:00
zh-TW.lproj Update Localizable.strings 2024-05-09 23:07:48 +08:00
.gitignore chore: add protobufs to git index 2024-02-21 00:44:00 -07:00
.gitmodules Add back submodule 2024-05-01 19:55:39 -07:00
.swiftlint.yml Extract the generated protobufs into its own Swift package 2024-06-28 11:11:01 -05:00
LICENSE Create LICENSE 2022-01-24 04:53:59 -08:00
meshtastic-1080x1080.png Update readme 2022-11-19 11:12:40 -08:00
README.md Extract the generated protobufs into its own Swift package 2024-06-28 11:11:01 -05:00

Meshtastic Apple Clients

Meshtastic App Store Launch Image

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
  3. Build and run the Meshtastic target.
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:
    scripts/gen_protos.sh
    
  • build, test, commit changes

License

This project is licensed under the GPL v3. See the LICENSE file for details.