This week and all last weekend has been … an interesting journey. Having never used any Xcode frameworks before, I elected to test out ZeitSatTrack – A Swift Satellite Tracking Library, implementing it with this term’s satellite tracking application.
Little did I know, ZeitSatTrack is only compatible with Swift 3.0. Upon git cloning, I realized the aforementioned, and promptly sunk multiple days into working through a mountain of compiler errors. While Swift does a decent job of recommending fixes, it is challenging to comprehend what those fixes are doing behind the scenes when you don’t know the language. Furthermore, I have a long way to go to understand which errors are acceptable to ignore, versus those that are more urgent to patch. In this case, I blindly worked through almost all the errors, only to realize later more than a few I could have let sit.
After many, many hours, I was able to retarget the framework for Swift 5, but not after following some erroneous Stack Overflow guidance to revert to Xcode 10.1, to then convert the project to a newer Swift version….and upgrade back to Xcode 13.3.1. (This is the upside and downside to Stack Overflow, where some guidance is gospel and other guidance can be shockingly bad..and telling the two apart is non trivial.)
All this to say, it has taken many days to get ZeitSatTrack working. At the moment, I am able to get the framework to build, and it is producing a list of satellite names, latitude/longitude/altitude etc outputs where queried. However, it is also missing some of its core functionality and some of its functions were commented in the code by its developer, to be incomplete. More to come, in the coming weeks!