Commit graph

76 commits

Author SHA1 Message Date
Blake McAnally
b011cbde42 Create dedicated data layer types for querying and updating CoreData 2024-07-10 16:03:38 -05:00
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
e4284d9741 Zero hops, defaults for node info broadcast 2024-03-17 09:07:11 -07:00
Garth Vander Houwen
50add85292 Tighten up node list
Add m to dBm on lora config
New reverse geocoded nearby mqtt topics
2024-03-13 05:52:31 -07:00
Garth Vander Houwen
08de61ee71 Node list updates 2024-03-09 23:37:00 -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
c23e18316d Store and Forward updates 2024-02-12 16:35:29 -08:00
Garth Vander Houwen
416d5e5f41 Frequency Slot 2024-02-11 19:38:51 -08:00
Garth Vander Houwen
a0693fe6c0 Bump version, update lora channel text 2024-01-25 18:39:41 -08:00
Garth Vander Houwen
680a82f152 Update protos, at ignoreMQTT lora config setting 2024-01-20 17:34:57 -08:00
Garth Vander Houwen
61768bee9b Consistent checks for context 2024-01-14 11:25:00 -08:00
Garth Vander Houwen
abe0dbb93d Hook txEnabled up to the save button 2023-12-28 15:37:08 -08:00
Garth Vander Houwen
f12eed755d Config cleanup 2023-11-26 12:54:45 -08:00
Garth Vander Houwen
5b3d05651d Make battery gauge take a node 2023-11-08 22:01:24 -08:00
Garth Vander Houwen
60b805faf8 Update lorconfig to include override frequency 2023-10-25 18:54:52 -07: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
3b76207247 Improved localization helper for strings 2023-05-05 09:27:24 -07:00
Garth Vander Houwen
9faead1d6a Handle default hop limit 2023-04-22 22:55:58 -07:00
Garth Vander Houwen
d4abfd7729 Remove location manager updates 2023-04-18 00:09:13 -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
94723c07c2 Update protos 2023-03-14 19:16:04 -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
b73d7d0c66 Enum for hardware 2023-03-13 09:50:24 -07:00
Garth Vander Houwen
65dde905f7 Add descriptive text for LoRa Config depending on state
Fix rx boosted gain toggle
Make a big hardware model enum
2023-03-11 09:26:52 -08:00
Garth Vander Houwen
ac7b04c344 Fix a couple of things found by SwiftLint 2023-03-08 21:32:21 -08:00
Garth Vander Houwen
377381cf16 Rx boosted gain is the truth 2023-03-08 21:14:46 -08:00
Garth Vander Houwen
fdade220de SwiftLint Whitespace fixes 2023-03-06 10:33:18 -08:00
Garth Vander Houwen
c3cbe9fb57 Fix channelNum formatter, remove hops enum in favor of a range 2023-03-05 23:39:06 -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
795f63819a Lora config restricted pickers for bandwidth coding rate and spread factor 2023-03-05 16:01:39 -08:00
Garth Vander Houwen
27d8032cf2 Cleanup of lora config form 2023-03-05 15:13:23 -08:00
Garth Vander Houwen
4006de8696 Prevent some crashes 2023-03-05 14:40:07 -08:00
Garth Vander Houwen
a10daa9842 Finish up lora config updates 2023-03-05 05:42:25 -08:00
Garth Vander Houwen
895467ea00 New lora config headers 2023-03-05 05:01:10 -08:00
Garth Vander Houwen
c943b87a52 Add channelNum to lora config 2023-03-05 04:47:17 -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
5165548e05 Admin messages, improved role picker 2023-01-31 22:08:03 -08:00
Garth Vander Houwen
921f95cc63 Assorted updates 2023-01-31 10:50:17 -08:00
Garth Vander Houwen
0108080c87 update protos clean up config warnings 2023-01-29 08:28:44 -08:00