My app right now is very complex, and is very unoptimized for older devices. I have a complex UI with interactive elements, and an engine that runs stuff in the background, all on the same thread. As my app gets bigger an bigger, my old iPad keeps running it slower and slower. I thought threading it would help, but I read some tutorials and implented them. I put all of the engine stuff on the userInteractive thread, and kept all the UI stuff on the main thread. The speed did not improve, and the only change was the engine was running slower because it was on the less important thread.
I've worked a bit with threading in Java, and from my undestanding, you can create your own threads, which all run at the same speed. I cant seem to find anything like this in Swift, only the DispatchQueue.global.
Is there a way in Swift to have a complex engine (maybe an Engine class with all the necessary methods in it) on one thread, and a UI thread (possibly on main), so that they can improve the speed of the app, while still being able to communicate with one another (i.e. the engine can call methods that update the UI and vice versa)?