Time is running. And if you wondered due to lack of updates recently: Copper is still alive. But, development cooled down. There are numerous reasons for that:
- EAGLE got bought by Autodesk. This seems to work out very well for EAGLE, in terms of updates and also pricing. However, in the beginning it cooled down my development as I did not know if it makes sense to invest time.
- Maintaining two complex applications (iOS and macOS) is quite a lot of work
- Apples APIs don’t make it easy to have shared codebases for macOS and iOS (see below)
- iOS works so much better than macOS in terms of app and sales performance
So, when I decided to port Copper to iOS, Apple did not offer anything to do that. So I had to remove all macOS specific code from the codebase, and had to write a new renderer based on Core Animation from scratch for iOS. That took quite a lot of time. But the new rendering engine is so much faster than on macOS. I also fixed a lot of bugs in file parsing, model interpretation and many other parts of the application. I think the iOS version really worked out fine. And sales are more than 10 times stronger than macOS. As iOS is cheaper, revenue on macOS is still ok, though.
After I had fixed most bugs on iOS, I started to port the iOS rendering engine to macOS. That’s been so much work. You notice, that iOS is a modern operating system, while macOS has to carry so much old stuff around to stay compatible with older software. Code that runs blazingly fast on iOS is slow on macOS – although the same API is used. But it looks like that on iOS everything is hardware accelerated, while on macOS is not.
Then, while I have been working on that project rumors came up, that Apple is working on Project Marcipan that allows developers to easily port iOS apps to macOS. That is exactly what I wanted to do. I did not want to port UI, but rendering code, etc. So, I stopped doing that myself. Why should I invest hundreds of hours in something that Apple allows me to do with the click of a button later this year.
But, on WWDC 2018 Apple announced, that the project is postponed to 2019 :-(. So, what to do now? Restart investing that time to do the port myself? Or proceed adding features and keeping the old engine to later port it to iOS. I would need to maintain two separate rendering engines for one or two years.
I decided to do the backport myself. Enough time lost waiting. So, there will be one or two minor bugfix releases for iOS. In the meantime, I will work on back porting the shiny new rendering engine to the macOS application allowing me to just maintain one code base for everything rendering and the “model” (i.e. document data). UI will be kept separated, but the applications will share more than 80% of code.
There is no ETA yet for macOS update. It will take some time, but it will be worth it I hope.