WHAT I'm WORKING ON
Performance improvements and package restructuring
After completing the first major version of my concurrency course, I started to fully focus on the future of RocketSim. We are planning to make RocketSim's features more accessible by command line tools, AI tools, shortcuts, and more.
Up until now, it was only RocketSim's User Interface that interacted with RocketSim actions. The project is currently not set up for more flexibility.
On top of that, we're actively migrating to Swift 6 and strict concurrency. Altogether, it's been time to take a step back and redesign the current structure of packages.
Over time, it's easy to add more and more responsibilities to existing packages. We have a so-called RocketSimCore package, which is an easy destination for anything. In my experience, packages with more responsibilities are less performant and have a lower test coverage.
I can explain the latter differently—by moving code into specific packages, we create new isolation and an opportunity for better test coverage and performance improvements.
One example for RocketSim is the logic for monitoring new Simulator builds. This is all contained with RocketSimCore right now, but it makes more sense to create a RocketSimRecentBuildMonitoring package. Within that isolation, I've already applied several performance improvements after writing a bunch of tests.
Extra benefit?
The new package allows for rewriting to Swift Testing and creates a focused environment for the Swift Concurrency migration.