Commit graph

83 commits

Author SHA1 Message Date
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
Garth Vander Houwen
847892d45d Log categories 2024-06-03 02:17:55 -07:00
Blake McAnally
4c7cd0d923 Adopt OSLog for logging and replace the majority of calls to print() 2024-06-01 11:30:29 -05:00
Blake McAnally
4d547e48db This change fixes several lint errors throughout the project, and moves the SwiftLint build phase to before compilation.
After this change, a developer can now clone the project and run without the build failing due to lint errors! 😃

* I ran `swiftlint --fix` to resolve many auto-correctable issues (mostly whitespace)
* Excluded the `Meshtastic/Protobufs` directory from lint, since that code is automatically generated.
* Converted some single letter method parameters to lowercase.
* Converted several instances `force_cast` to instead use `guard` or `if let` to unwrap optional values. During this change, some of the SwiftUI views became "too complex to be solved in a reasonable time", so I broke up the views into distinct sub-expressions.

I was able to build and run the app on an iOS simulator.
2024-05-31 21:48:50 -05:00
Garth Vander Houwen
da75837bdc Set Timezone properly on load
break device name if it is too long
2024-05-04 13:02:47 -07:00
Garth Vander Houwen
52c5adb7ec Merge changes 2024-05-01 19:39:32 -07:00
Garth Vander Houwen
5869a27369 Mute all channel message notifications 2024-04-26 18:06:23 -07:00
Garth Vander Houwen
d780f103ad Set provide location default to 30 seconds
Don't delete routes unless doing a factory reset
Close route recorder modal when finished
2024-04-21 20:36:29 -07:00
Garth Vander Houwen
110c9dad4a Multiline timezone field
handle nil in firmware web methods
2024-04-09 13:04:09 -07:00
Garth Vander Houwen
8156777fea Timezone 2024-04-08 11:41:54 -07:00
Garth Vander Houwen
e4284d9741 Zero hops, defaults for node info broadcast 2024-03-17 09:07:11 -07:00
Garth Vander Houwen
8d6aa9e88b stop device role save crash 2024-03-15 14:29:50 -07:00
Garth Vander Houwen
7ecba4cabe Disable debug log and serial output if managed mode is on 2024-03-09 20:56:40 -08:00
Garth Vander Houwen
ed1214891b Add new protobufs, update all the config layouts 2024-02-21 23:35:28 -08:00
Garth Vander Houwen
a5d4f62ca4 Clean up descriptive text to be the same font and color on all the config views 2024-02-21 20:41:27 -08:00
Austin Payne
0daf9185e7 refactor: add SaveConfigButton view for settings 2024-02-21 00:07:17 -07:00
Austin Payne
c3cede2d76 refactor: add ConfigHeader view for settings 2024-02-21 00:07:17 -07:00
Garth Vander Houwen
52af088d8c Bump version, fix mqtt port bug, make connected node details smaller on all the settings views, clean up text on position config view 2024-02-19 21:39:53 -08:00
Garth Vander Houwen
48ef2e656c Add node info broadcast interval 2024-02-12 22:09:22 -08:00
Garth Vander Houwen
bc3fc5e50c Add 48 as a GPIO pin 2024-01-22 13:21:17 -08:00
Garth Vander Houwen
61768bee9b Consistent checks for context 2024-01-14 11:25:00 -08:00
Garth Vander Houwen
1792de5d4a Add extra gpio pins 2024-01-13 20:48:30 -08:00
Garth Vander Houwen
a60228d119 Put GPS setting in the right place 2023-12-21 11:31:40 -08:00
Garth Vander Houwen
690ef05b1d Remove meshtastic username 2023-12-21 09:49:08 -08:00
Garth Vander Houwen
026f2e463c Add field for gpsEnGpio 2023-12-20 20:15:05 -08:00
Garth Vander Houwen
c8a8c5a617 Add delay for factory reset 2023-11-20 19:20:54 -08:00
Garth Vander Houwen
99fbc6c9a6 Remove 30 day filter from mesh map 2023-11-20 16:08:46 -08:00
Garth Vander Houwen
b6cfd07000 Question everything 2023-09-02 17:37:35 -07:00
Garth Vander Houwen
a990d7f2bd Lint 2023-08-26 23:17:30 -07:00
Garth Vander Houwen
ddad4d49ce Remove ESP32 range test restriction
Clean up buttons
Remove min app version field
2023-08-14 14:41:26 -07:00
Garth Vander Houwen
8382ad962a Signal strength indicator updates 2023-05-16 05:54:12 -07:00
Garth Vander Houwen
ba3ef4af3e Managed Device
Delete by tile server
2023-05-13 20:50:20 -07:00
Garth Vander Houwen
0c915863d5 Fix crashes 2023-05-13 15:46:18 -07:00
Garth Vander Houwen
3b76207247 Improved localization helper for strings 2023-05-05 09:27:24 -07:00
Garth Vander Houwen
6f05bbe7f3 Assorted updates 2023-05-01 10:39:49 -07:00
Garth Vander Houwen
1ea7897c1e tapity tap tap 2023-04-09 23:04:11 -07:00
Garth Vander Houwen
b455fb25c6 Bump GPIO Pickers to 45 2023-04-03 17:48:58 -07:00
Garth Vander Houwen
3e88cb73d9 Hook up re-broadcast mode 2023-04-01 15:01:11 -07:00
Garth Vander Houwen
9059ceba55 Fix real time loading of all remote admin view 2023-03-19 18:37:23 -07:00
Garth Vander Houwen
416960388f Fix admin channel bug 2023-03-15 09:27:33 -07:00
Garth Vander Houwen
93006b258d Swift Lint 2023-03-14 12:44:10 -07:00
Garth Vander Houwen
b336307a22 ACK!
Admin message status content if you have an admin channel
2023-03-13 19:17:43 -07:00
Garth Vander Houwen
fdade220de SwiftLint Whitespace fixes 2023-03-06 10:33:18 -08:00
Garth Vander Houwen
0c2ff5fda4 * Device Config Updates (Rebroadcast modes, nodeinfobroadcastsecs)
* Display Config Data updates (heading bold)
2023-03-05 23:01:09 -08:00
Garth Vander Houwen
4006de8696 Prevent some crashes 2023-03-05 14:40:07 -08:00
Garth Vander Houwen
dba7889666 Cleanup Client tracking mode some 2023-02-22 20:31:08 -08:00
Garth Vander Houwen
af90966900 Fix getNodeInfo method that was the source of nil nodes 2023-02-06 18:45:03 -08:00
Garth Vander Houwen
3e779217d5 Pass admin channel index properly to most admin messages 2023-02-03 07:29:12 -08:00
Garth Vander Houwen
1bcb759054 Fix remote shutdown and reboot 2023-02-02 22:03:27 -08:00
Garth Vander Houwen
9112e5cde2 Properly disable forms when there is not an associated config 2023-01-31 22:59:43 -08:00