The new paint backend slowly approaches the first beta version.
Why does it take so long? Well, migrating to the new backend involves quite a few milestones and steps that are necessary from the previous codebase.
The App was initially written in Objective-C, the default programming language for iOS/MacOS devices a few years ago. Since the advent of Swift, the new language, its necessary to get the App to the newest technology.
Rewriting the codebase will let PaintMyMinis to be always up-to-date and ready for the future and new iOS versions. Versioning of iOS is pretty fast so a lot of code gets old in a breeze and deprecated very early. Refactoring a lot of code to the new Apple language Swift takes time and while rewriting there should also be optimisation in place. Furthermore, refactoring on one side results in the need to rewrite another part too.
So it takes time to write clean Swift code for the new version.
New server side backend
The first paint backend was developed and based primarily on PMMFE-files and an internal database system. Since its much more maintainable and expandable storing all paints in a server side external database, this feature is a must to support future development. Taking care of a server side database which is easily maintainable with a solid and easy to use framework takes time to develop. Furthermore a server side API to fetch and recieve individual/unique paint, brand, range ids etc. is needed too.
A client side code to process the API response from the server needs to be in place too. An internal code that provides a gateway to handle the internal and external database communication to store and load paints. This is the most crucial part since this needs to be rock solid.
On top of this, a long requested feature should be in the next release to make you happy: a streamlined request management for missing paints. Furthermore, an user management is needed for requesting paints. This will open a very bright future to PMM and this is my personal highlight of the next release. I’m really looking forward to this.
Remodelling/updating the internal PMM database
There is also a remodelling the internal database structure (CoreData) needed to support the new server side paint backend. Unfortunately, remodelling CoreData database structure results in neccesarry adjustments of the PMMFE-file format and I need to take care of backward compatibility too.
I need to think ahead a lot of steps to be sure the new backend and internal code structure supports and will support all features and ideas I have and especially you gave me. So maintaining a well structured codebase is the key here. Refactoring and rewriting a lot of code slows everything considerably down. I’m working very hard to get nearer to the next release to provide all the nice features and ideas in next releases.
Please bear with me while I make PaintMyMinis even better and provide a bright future for it.