Commit graph

56 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
d5f5d70364 Start work to fix the broken node map view
Tidy up suggested mqtt topics
2024-03-14 18:58:05 -07:00
Garth Vander Houwen
d84f2ad91a Add power telemetry config. 2024-03-14 00:04:35 -07:00
Garth Vander Houwen
ed1214891b Add new protobufs, update all the config layouts 2024-02-21 23:35:28 -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
61768bee9b Consistent checks for context 2024-01-14 11:25:00 -08:00
Garth Vander Houwen
126cdfbdb3 Settings rework - new async location handler 2023-12-06 12:32:17 -08:00
Garth Vander Houwen
b6cfd07000 Question everything 2023-09-02 17:37:35 -07:00
Garth Vander Houwen
3b76207247 Improved localization helper for strings 2023-05-05 09:27:24 -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
93006b258d Swift Lint 2023-03-14 12:44:10 -07:00
Garth Vander Houwen
e0f1e243a6 fix dumb disabled logic on telemetry config 2023-03-13 19:27:36 -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
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
f7b45797a8 Handle a few crashes 2023-02-03 10:15:11 -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
f89f5eddd0 Add a couple more modules to the admin config 2023-01-31 23:52:19 -08:00
Garth Vander Houwen
cd0fdec368 localize save config string 2023-01-09 18:34:43 -08:00
Garth Vander Houwen
59be21e38c More localization 2022-12-30 13:18:02 -08:00
Garth Vander Houwen
76e7eef10c Localize config save confirm 2022-12-30 11:08:59 -08:00
Garth Vander Houwen
eedbef57fb * More strings
* Add duty cycle error
* Don't log local telemetry in the mesh log
2022-12-13 17:47:23 -08:00
Garth Vander Houwen
5da522b911 More strings 2022-12-13 08:47:14 -08:00
Garth Vander Houwen
fc0e1daa7d More strings 2022-12-12 22:33:06 -08:00
Garth Vander Houwen
0892214bcd Start of localization 2022-12-12 20:35:38 -08:00
Garth Vander Houwen
c7a9883808 Go back to settings view after saving from a config view
Allow setting of a fixed ble pin
Fix bug that did not show devices to connect to after some failed connections
2022-12-09 18:19:00 -08:00
Garth Vander Houwen
861d824183 Navigation Stack view cleanup 2022-11-29 22:28:52 -08:00
Garth Vander Houwen
02629572ea Remove initial load bools 2022-11-12 08:48:01 -08:00
Garth Vander Houwen
2d24d68203 Update list of sensors, add all enum values for HarewareModel 2022-11-11 09:07:14 -08:00
Garth Vander Houwen
e095e053a5 Fix all the module confirmation dialogs 2022-10-04 18:19:02 -07:00
Garth Vander Houwen
840e5ed2e3 Merge branch 'main' 2022-09-27 22:23:36 -07:00
Garth Vander Houwen
27a90c4dc4 Fix assorted nulls 2022-09-27 22:18:50 -07:00
Garth Vander Houwen
c586a5cbd2 Dismiss keyboards 2022-09-15 12:34:10 -07:00
Garth Vander Houwen
98e7afb0a2 More defaults cleanup 2022-09-10 22:31:01 -07:00
Garth Vander Houwen
9c1de1cf58 fix enums with default of zero 2022-09-10 18:27:44 -07:00
Garth Vander Houwen
56da04827a New protos and assorted bug fixes 2022-08-11 23:34:09 -07:00
Garth Vander Houwen
4759da2c37 Add some text explaining sensor I2C detection 2022-08-01 07:25:39 -07:00
Garth Vander Houwen
661f349e9c Telemetry cleanup 2022-08-01 07:11:03 -07:00
Garth Vander Houwen
1ecd094ef9 Fix a couple of lingering config view crashing if a device disconnects while on the view, hook up QR code deep link 2022-07-14 07:14:43 -07:00
Garth Vander Houwen
f21a85d8e1 Check for nil nodes and config 2022-07-11 16:18:16 -07:00
Garth Vander Houwen
9e8288b273 Clean up methods to save admin messages 2022-07-09 06:42:30 -07:00
Garth Vander Houwen
ddfcea4ace Handle empty positions, allow nrf52 saving for telemetry 2022-07-07 00:29:52 -07:00
Garth Vander Houwen
3553ee7076 Hook up admin messages to config updates 2022-07-02 19:50:08 -07:00