A new job, a girlfriend. Suffice to say that in 2017 my mind was elsewhere 😉 I put Plume on the back-burner, working on it one evening every week. You can see commits done on my github page.
Since the day I decided to write a brand new Plume, I wished to create a QML version of Plume, meaning a Plume usable on a touch-enabled device (tablet, smartphone, tablet-PC). This wish could be more easily accomplished if I stayed with C++. Yet, coupled with PyQt, coding with Python was too enticing.
So I succeeded to write a hybrid Plume : the “core” of Plume in C++, wrapping this part in Python (with SIP) and writing the UI part in Python / PyQt. It was hard, it was a pain to find documentation and examples, but it worked.
This way, I could use the same C++ core to write later Plume for tablets.
In Python, the code was quick to write. The skeleton of the new version of Plume was done in a few weeks. I was quite content of the result. Yet, already, I felt a few setbacks :
– I had to debug errors from Python code AND from C++ / Qt, whereas in the old Plume, I had only the C++ / Qt errors to deal with.
– No compilation, so no code checking like in C++. Inconsistencies were revealed after running Plume or the tests, if they were found and not passed over.
I could live with these, and I did… until I tried to deploy it.
To sum up, my goals were :
– .deb and .rpm for linux systems
– setup.exe (and portable version) for Windows
– maybe a package for OSX
This version of Plume was an hybrid C++ / Python / PyQt software. It’s more complex than your typical “Hello World” example.
Packaging is a job in itself. There are a few ways to create executables from python. I stayed up whole nights trying tools like pyqtdeploy and other PyInstaller until I was sick.
Finally, I’m coming back to full C++ / Qt. I already know how to deploy a Qt software, so it’s a relief.
My foray into Python was interesting, I learned the value of auto-testing and documenting the code.
The “core” being already written, I don’t have to scrap all my work. I only have to (re)write the UI. I’m setting 31th of january as the date for the first preview release.
See you soon !