-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace iOS-GPX-Framework
with CoreGPX
#65
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for this! Really appreciate your attention to detail in updating the docs as well. I've left a few comments for you to address, largely because I think at this point you understand how this component fits into the larger codebase better than I do.
apps/ios/GuideDogs/Code/Data/Authored Activities/AuthoredActivityContent.swift
Outdated
Show resolved
Hide resolved
apps/ios/GuideDogs/Code/App/Framework Extensions/Geo Extensions/GPXExtensions.swift
Outdated
Show resolved
Hide resolved
Just overwrote with the full changes including tests. There are a copy of these tests running here: https://github.com/2kai2kai2/soundscape/actions/runs/6632231863/job/18017464213 It looks like the tests did not pass due to the |
Once the tests are passing, your expertise would be helpful in getting Fastlane working again (#58). Probably for a separate pull request. |
Basic tests setup. Currently has just one demo test.
Tests for the main location-related sensor manager class
Needs audio beacon tests
- Also include code coverage
It's currently in the wrong place.
Successfully builds and passes tests (though no tests use the GPX system) This is a major step towards resolving issue soundscape-community#64 - Removed `cocoapods` and `cocoapods-patch` - Replaced the outdated cocoapods dependency `iOS-GPX-Framework` (Objective-C) with `CoreGPX` (Swift, Swift Package Manager) - Rewrote GPX Extensions in Swift from Objective-C (note: if there are GPX bugs, look here first)
Test issue seems to be due to the lack of installed TTS voices which are used in testing. Nevertheless, it has been partially resolved by the inclusion of updated service URLs in main. I believe this pull request is ready to merge. |
Thanks! Amazing work. Do you have any idea what's going on with the TTS voices in the simulator? I noticed this even before your PR -- I also don't seem to have any iOS voices installed in my simulator, and the Settings app is crashing immediately after launch. Is this a bug with the new iOS 17 simulator? |
Resolves #64
Changes
Essentially, this eliminates the need for
cocoapods
andcocoapods-patch
We do the following:
iOS-GPX-Framework
(Obj-C, cocoapods) withCoreGPX
(Swift, Swift Package Manager)apps/ios/patches/iOS-GPX-Framework+0.0.2.diff
with implementation (Swift) inapps/ios/GuideDogs/Code/App/Framework Extensions/Geo Extensions/GPXExtensions.swift
(the previous version used a patch on the Obj-C extension, which also made it a more complex dependency system)cocoapods
and thePods-soundscape
buildIn the new implementation of our custom GPX extensions, I've implemented them as views rather than intercepting and adding custom parsing for GPX elements. This system may be slightly less efficient due to accessing the extension's GPX tree, but this should not be a major issue since our main use case (loading
AuthoredActivityContent
) can discard the GPX object after loading. Additionally, it has the advantage of simplifying and reducing the surface area with the dependency.Testing
This pull request excludes the automated testing which can be seen here: https://github.com/2kai2kai2/soundscapeSaid testing (more so the build systems) does not seem to be stable with the previous legacy dependencies.
I intend to open a second, separate pull request for the full testing system after this, but can combine them if that is preferred.EDIT: XCTest is now included in this pull request.