Commit graph

46 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
2795c4cf69 Only allow 6 characters for call sign 2024-06-27 07:40:31 -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
a3a5c4084b Try and fix a nil context crash, created shareed ble manager 2024-05-04 08:20:53 -07:00
Garth Vander Houwen
aa08f2ff33 Drop the last character for string length validation, bump version 2024-04-04 09:39:03 -07: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
Garth Vander Houwen
61768bee9b Consistent checks for context 2024-01-14 11:25:00 -08:00
Garth Vander Houwen
70e1bdb835 More map cleanup 2023-11-09 17:43:38 -08:00
Garth Vander Houwen
60b805faf8 Update lorconfig to include override frequency 2023-10-25 18:54:52 -07:00
Garth Vander Houwen
b661a5776a Update licensed user form 2023-10-23 17:50:13 -07:00
Garth Vander Houwen
966acb4d7e Clean up licensed user form 2023-10-23 17:29:27 -07:00
Garth Vander Houwen
aedf8e3638 UI updates to licensed user flow 2023-10-20 17:26:04 -07:00
Garth Vander Houwen
b6cfd07000 Question everything 2023-09-02 17:37:35 -07:00
Garth Vander Houwen
60a1687839 Initial offline maps setup 2023-05-05 17:13:35 -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
a245d66981 Nil handling 2023-03-04 08:52:40 -08:00
Garth Vander Houwen
4ec1f7b200 * Map Updates
* Clean up call sign on licensed user view
* Narrow formatting for weather temp
2023-02-15 14:52:49 -08:00
Garth Vander Houwen
f29c704833 Cleanup ham mode view 2023-02-10 09:38:01 -08:00
Garth Vander Houwen
2082230929 📻 ham params 2023-02-09 22:59:39 -08:00
Garth Vander Houwen
85c0582649 HAMS 2023-02-08 09:42:07 -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
2dac7c22cf Weather enums, translate new device roles, add isLicensed to user 2023-02-04 20:44:24 -08:00
Garth Vander Houwen
921f95cc63 Assorted updates 2023-01-31 10:50:17 -08:00
Garth Vander Houwen
79bc59adc9 One working admin channel settings message 2023-01-19 22:04:18 -08:00
Garth Vander Houwen
76e7eef10c Localize config save confirm 2022-12-30 11:08:59 -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
e49eb363d3 Config view updates 2022-09-23 21:41:07 -07:00
Garth Vander Houwen
d7819b7404 Set wantAck to true for all admin messages, hook up waypoint to position in messages 2022-08-12 08:58:10 -07:00
Garth Vander Houwen
56da04827a New protos and assorted bug fixes 2022-08-11 23:34:09 -07:00
Garth Vander Houwen
045fb598d5 Finish wifi config 2022-08-02 09:44:59 -07:00
Garth Vander Houwen
d794992854 Bump version on connect page 2022-07-11 15:43:25 -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
Garth Vander Houwen
b0c3ff10ab Clean up the unknownApp portNum handling, hook up module config for range test 2022-07-02 10:06:50 -07:00
Garth Vander Houwen
b1250db164 Add DFU stubs, fix all the connected node indictors to be 4 bytes max 2022-07-01 19:44:25 -07:00
Garth Vander Houwen
10bf86cf95 remove analog sensors from telemetry, add Card KB as an option for canned messages presets 2022-07-01 18:30:40 -07:00
Garth Vander Houwen
ce35f49b7c More complete module configuration previews, less prone to crashing settings page 2022-07-01 10:57:54 -07:00
Garth Vander Houwen
6b10e9aabe Assorted updates 2022-06-28 06:56:50 -07:00
Garth Vander Houwen
616df3d624 Validate field sizes 2022-06-27 08:41:56 -07:00
Garth Vander Houwen
2add04d326 Add User Settings edit screen with long name and short name 2022-06-27 08:30:49 -07:00