A week ago I gave myself two options, one, ignore the code smells and work to release v1.00, two, accept what I have been trying to tell myself and hit the DELETE key, I opted for option two.
After the big Content manager rework of 2016 I was left with a code base at odds with itself. When I looked at it more rationally, the Content manager was easily the module that was both the most complete and the one I was the most happy with. For the rest,the order was Form builder, Web site manager and Image library. The Image library and Web site manager were a pain to add modular tool support to and then I looked and thought why am I bothering, the Web site manager is a preview from when the app was a closed source project and the Image library only had one functional tool, upload……DELETE, after that I aimed my trigger finger at the Form builder, DELETE.
The modules haven’t gone; they will be back very soon, the problem is they were stopping progress elsewhere, you can rewrite an app forever to make it a perfect design, I need to ship and iterate.
Listed below are the titles for the pivotal tickets that need to be completed before I can ship v1.00.
- Initial work on styling sub tools
- Add to colour history
- Nesting support exposed correctly
- Suggested size for content items
- Raw HTML content tools
- Simple nav bar tools
- Updated tool help tabs
- Clean up database
- Apply UX guidelines to Content manager
Nope, you haven’t missed it, v0.99 hasn’t been released, in my quest to support modular tools I’ve discovered how many issues the current tools code was concealing, there is the inevitable duplication along with code that is too complicated for its purpose and far too much similar code that can all be cut.
I’m 85% of the way through the refactor/clean-up, when I am done I will have a much leaner code base and all the tools will be modular, to add a new tool you will simply need to include the tools folder and a small script to insert the tool into the database.
It is proving to be much more work than originally planned, I was only going to do one module initially and pick the others up over time, after pulling back the covers and peaking at the horror I realised that was a not a workable solution, I need to fix it properly.
The Content manager, Web site manager and Form builder are complete and tested, I’m working on the Image Library tools, after that I need to go back and do some additional simplification/refactoring and then re-test again, I’m hoping to release v0.99 soon, I’m not going to give a date until I am back onto normal development.
One of my initial goals for Dlayer was that tools be modular, it should be easy to plug a new tool into a designer, sometime during the last couple of years that got slightly lost. A tool is made up of four classes and a few view files, there is a Model, a Form, a Ribbon class the Tool class itself, these are currently stored by type in the library.
I’m going to fix this before I go any further, it will add a slight delay to the next version but it shouldn’t affect things too much because essentially I am just moving classes around and updating references, I’m not sure what to do with the view files yet but I will work that out shortly.
It is really hard when you work on a solo project, you need to step back occasionally to review and check out your design, it might be very difficult and time consuming to change things later. I was sitting watching TV with the Mrs and then all of a sudden a question popped into my head, “Dean, why are all classes for a single tool all over the library?”
I just finished releasing v0.99-alpha-3, it is now up on https://demo.dlayer.com and the full change log is on the Dlayer GitHub releases page.
I’m currently working on re-implementing the styling sub tools for the content items, initially just the background colour for a container, we will see how time goes, as always, there is a lot to do before v0.99.
I’ve just released Dlayer v0.99-alpha-3 on GitHub, this one is quite a big update, it adds the Text tool, Heading tool, Jumbotron tool, import form and import image tools, the ability to move rows, content items and columns and features the updated image picker.
I’ve done lots of refactoring in the background and still have quite a bit of old Content manager code to get sort out/get rid off but I am getting closer, the release of v0.99 won’t be far behind, there are only four stories I need to complete, 2 optional stories and whatever I choose to finish from the icebox.
It isn’t yet up at https://demo.dlayer.com, I will release it tomorrow evening.