As ABMaterial has grown to a production ready framework for WebApps using B4J, I recently started a poll on the B4X forum to find out what could be the next steps in its evolution.
I came up with 3 things to do. They would require about the same develop time, but it could be useful to see what the actual users of ABMaterial would like me to work on next.
The possible choices were:
This is the component you have seen some demos of and will be more for game developers. It still needs a lot of attention before it can be released.
A full blown Abstract Visual Designer like the one in B4J. This is NOT a code generator but the real deal. Code generators may look nice at first sight, but have a huge disadvantage: they go one way. ABMAbstractDesigner would work like the B4X ones: you create a layout, develop, change the layout, continue to develop and so on without losing what you have written in code. I’ll use the grid designer I’ve shown as a proof of concept in another post + the possibility to put ABMComponents on them. I’ve done some tests this weekend and it would work very similar as the other B4X tools.
4. Other (please specify)
The poll is now nearly ended and besides some interesting messages with excellent pointers, it was quite obvious from the beginning that the ABMaterialAbstractDesigner (will need a working title for this project, lets call it ABMAD for now…) would be the next part I’ll be working on. (Almost 75% in the poll at the time of writing). This was also my preferred choice as one user did not really have the patience to wait for me and started to write some kind of code generator. However, his limited knowledge of the ABMaterial framework has the potential of starting to reflect bad on ABMaterial itself so it is time for me to jump in.
Making ABMAD will happen in a couple of logical steps:
- Making the ABMaterial components ready for a designer. This will ask for some (minor) changes to them so they can be serialized and expose their properties to the designer.
- Making a grid builder. This is the biggest step new users have to overcome nowadays.
- Making a properties view for the components.
- Drag/Drop facilities to add components to specific cells
- Let the ABMaterial library communicate with the Designer output in a similar way as B4X does now.
This will not happen overnight, but the benefits for ABMaterial programmers will be substantial. This will NOT be a simple code generator. ABMAD will work bidirectional. And you’ll be able to make layouts in ABMAD and mix them with manually written code like you can do in B4X/ABMaterial now.
Note: To avoid future misunderstandings, the license of ABMaterial 2.0 will include the following statement:
4. YOU AGREE NOT TO DISTRIBUTE, FOR A FEE, AN APPLICATION USING THE LIBRARY THAT, AS ITS PRIMARY PURPOSE, IS DESIGNED TO BE AN AID IN THE DEVELOPMENT OF SOFTWARE FOR YOUR APPLICATION’S END USER. SUCH APPLICATION INCLUDES, BUT IS NOT LIMITED TO, A DEVELOPMENT IDE OR A B4J SOURCE CODE GENERATOR.
Let me explain. The philosophy of ABMaterial (and myself) is giving anyone the chance to easily build great WebApps without having to spend any money. One of the reasons I picked B4J was because it is free. Those who can spare something, donate to stimulate my continuation on the project and in so help giving other not so fortunate people an equal chance to grow. Any derived development tool or generator that uses ABMaterial must follow this philosophy so the tool must be available with 100% of its features for free (not even a ‘limited’ free version is acceptable).
This has no impact on whatever WebApp you make with ABMaterial, but is solely a protection against some ‘money-grubber’ who sees the potential of the ABMaterial framework and thinks of making some easy money using my engine by simply writing a layer above it. Just to be clear, ‘FEE’ here means ANY form of payment or compensation, donations included.
So now that this is out of the way, I think it’s time to step up to the drawing board and start to make some decisions on how ABMAD will look like.
Fun times ahead!