Other ABMaterial - How does it work?

Star-Dust

Expert
Licensed User
Longtime User
I've been using B4J recently. I did very few things by translating some B4A sources that I have been using for some time.

Today I was trying to understand something about ABMaterial, I saw that different people use it. But by downloading the example I could not understand much.
The framework is very advanced, those who have seen it grow now understand all the tools well.
For those approaching for the first time perhaps it would take a simpler example.

Or maybe I'm slower to understand .

Can someone direct me?
A simple tutorial?

Thank you

P.S :. Surely you avoid learning Html, JavaScript, PHP and CSS ... but always something you have to learn ... hoping it's easier
 

alwaysbusy

Expert
Licensed User
Longtime User
@Harris made a nice getting started series explaining some basics:

https://www.b4x.com/android/forum/threads/abmaterial-abmaterial-for-dummies-lessons.88346/

those who have seen it grow now understand all the tools well
Indeed, but try to ignore the latest features like b4JS at first. You no not need to have any html/javascript/css knowledge to use ABM. Once you get on your way with the lib, then you can dive into the newer features.

Most important, get a good understanding of the Grid system. It may be strange at first, but once you 'get it', it's quite simple to make responsive webapps.

Good luck!
 
Last edited:
Upvote 0

Star-Dust

Expert
Licensed User
Longtime User
Thanks I'll try.
 
Upvote 0

jcohedman

Member
Licensed User
Longtime User
until I understood...
 
Upvote 0

Cableguy

Expert
Licensed User
Longtime User
Hi @star Dust

Indeed ABMaterial may seem cumbersome at first.
I started with ABM a long time ago and was as puzzled by it as you are.
The simplest way to think of BAM (others will correct me if needed) is like this:
You have a launcher (main) that is responsible for the first settings etch like a normal b4j app (which ABM is)
Then you have a class to help every other class with the most common stud, like creating and defining header paragraphs, labels, etc.(ABMShared)
All other classes are kinda optional.
You can create a fully functional web pp with only these two classes (modules).
Still, you can set up several pages as stand alone (kinda) modules and have/add listeners that will redirect traffic to a particular page, like ABMRoot does.
As no man is an island, not is an ABM class, and this is whre it gets tricky.
ABMShared is probably the most important class in ABM Since almost every page or modules will eventually make calls to it...
Once you understand the role of this modules, every other module will be a lot easier to understand.
 
Upvote 0

Star-Dust

Expert
Licensed User
Longtime User
I do not understand much. There are some classes called the main app.
But do I have to write these classes?
How and why?
Still too complicated for me. I'm sorry

I think I'll try to learn how to use websocket
 
Upvote 0

Star-Dust

Expert
Licensed User
Longtime User
For the future it would be useful for someone to write a small manual step by step.
Maybe with some very simple code examples that slowly become more and more complex. I am sure this would help to approach abmaterial.

At the moment the tutorials almost discourage and frighten the new, something that complicates and does not simplify appears.

But I only express my opinion.
 
Upvote 0

alwaysbusy

Expert
Licensed User
Longtime User
very simple code examples that slowly become more and more complex
That is what Harris did, so I guess this is as simple as it can get

The fact is, you need at least all the code in the 'template' project to get started. From there you add pages, build a grid, add components etc...
 
Upvote 0

Star-Dust

Expert
Licensed User
Longtime User
The code is already complex, includes several classes.
It is not explained what they do and why they were created.

I mean step by step. Crear is an empty project. Perhaps only with a one web page.
A page with very few functions. And slowly the other pages and functions are added.

If this SAMPLE is already the simple app with 7 classes .... of which one of 500 lines of code and 2 classes of 300 lines of code .. If it were complicated would be more obviously.
You have to study a thousand lines of code to understand .. The example does not seem simple to me.

But I am sure that ABMaterial helps and simplifies, as many have guaranteed me ... I think that the tutorials, however, do not help the new one.

Having said that I found a good soul that in private has offered to explain the rudiments. And I thank him.
 
Upvote 0

moster67

Expert
Licensed User
Longtime User
I have also just started learning ABM.

However I decided to start a bit more simple by using Erel's webapp examples which you can try online here. You can read about them and download said sample apps here.
In this way, you can get a good base what the jServer (Getty) can do and how you can interact with it using B4J. After this, you should have more basic knowledge to start with ABM. Please note that @alwaysbusy included some more simple samples in the download.
 
Upvote 0

Star-Dust

Expert
Licensed User
Longtime User
Thank's
 
Upvote 0

Star-Dust

Expert
Licensed User
Longtime User
I've done a bit of webApp experience. When I created my IRC server, I first tried to make some attempts with the WebSocket and even create a server.
Surely very interesting, in the past with VB6 I sweated to create a server and a webApp, in Java I interfaced with Html, JavaScript and more ..

Returning to ABMaterial: Let's see if I understand it right.
A part of objects resides in the library.
Another part is to import pre-set classes and modules to manage the socket, the main app, the individual pages contained and eccc.

These classes and modules must be taken as they are in the code, because they have a construct that is basically the same for all the Apps. But they are released in source code because they have to be customized, in content, graphics or other variants that can be added.

If I understand something else (if I understand correctly) I will inform you.
 
Upvote 0

alwaysbusy

Expert
Licensed User
Longtime User
Ah, ok I thought you already understood the structure of an ABM app . The different parts are explained in the demo (or at abmaterial.com - Getting Started). This will explain what the different modules are and how the flow goes. Most of the code in the template (except the pages of course) you can leave untouched in most cases. But they are in B4J instead of the library, just in case you do want to modify them.
 
Upvote 0

Indic Software

Active Member
Licensed User
Alan,

It would be great if you can publish a diagram showing the hierarchy of classes starting from Base Class(es).

Just my 2cents.
 
Upvote 0

Harris

Expert
Licensed User
Longtime User
That is what Harris did, so I guess this is as simple as it can get

The fact is, you need at least all the code in the 'template' project to get started. From there you add pages, build a grid, add components etc...

I guess then my next lesson should "attempt" to explain all the good stuff that came in the empty template project?
I purposely omitted this from the initial lessons because one does not need to (entirely) understand these methods to create a web app... However, it does seem that others really want to know..

Frankly, without a template to start from - no one would be able to create an ABM project (except for ab of course).
It would be like trying to create a spreadsheet - without a spreadsheet app.

Thanks
 
Upvote 0

Star-Dust

Expert
Licensed User
Longtime User
Sorry I did not have time, now I have a closer look and some questions arise.

1. the ABMShared module is necessary because it allows the various classes to communicate some common data among them. But I also saw that it allows some settings on the themes of the page. What exactly is it possible to set up?

2. The menu type ListView that appears on the left who creates it? the ABMApplication or Shared Class? Is it possible to change it in a horizontal menu? Or, if the site is made up of a single page, is it possible to remove this menu and how?

3. What is the difference between ABMPage and ABMPageTemplate? Are they simply two different pages of the webapp?

4. What is ABMChacheControl?

5. the page starts from http://127.0.0.1/template/ (localHost). but if the initial page would like to be http://127.0.0.1/ what should I change?

6. How do I set up the start page, eg esmepio index.html or homapage.html?

7. How do I customize the pages?

These are my first questions. thank you in advance who responds

Update: I saw that some answers to my questions are in the comments of the code ... I have to improve my English I know
 
Last edited:
Upvote 0

Alexander Stolte

Expert
Licensed User
Longtime User
So I bought "ABMaterial" on Saturday, I'm desperate, but I stayed tuned and have the example web pages that are included in the package analyzed and thus I have on Monday already understood how the rabbit is running (German saying) and now it is much easier. The beginning is difficult, but if you stay tuned then it will be rewarded.

as you like to say: learning by doing
 
Upvote 0

Star-Dust

Expert
Licensed User
Longtime User
But You are very intelligent. I am not
 
Upvote 0
Cookies are required to use this site. You must accept them to continue using the site. Learn more…