Welcome to my third weekly check-in. I got a lot done over the past week, so let's talk about it.
During the first part of the week, I spent a large amount of my time attempting to wrangle the Python interpreter into actually running inside an iOS app. During the build process, Python generates a sysconfig file that contains variables that were used during the build that may be useful to Python later on. Unfortunately, this generation cannot happen on iOS easily, since it requires an arm64 device to actually run on. The solution to this ended up being to generate this sysconfig file in the Simulator, and make some changes to it manually for the Device version. This works well enough, and I haven't run into any issues with it yet, but we'll see.
The second half of this week, I turned towards brainstorming about how to adapt Panda's startup process to the iOS app lifecycle. Up until this point, Panda has been a game engine that runs exclusively on desktops, and as such, it is used to having complete control over the application lifecycle. Things work a bit differently on iOS (and Android!), however, which will require me to make some changes with how Panda handles it. Coming up with a formal design for this will be one of my primary tasks for this coming week.
Along with this, I am going to try and come up with a way to get Panda along with the Python interpreter to run in a separate thread entirely from the main UI thread. This will make it so I will have to make fewer changes to Panda in order for the UI thread to get the time it needs. I plan on publishing a more detailed write-up about how I will accomplish this soon.
That's all I have for this week. See you next time!