B4J Question [ABMaterial] Size of applications

Drago Bratko

Active Member
Licensed User
Longtime User
What size of a projects have you develop with ABMaterial ?

I'm considering to rewrite one web application (developed in Silverlight ... http://demo.soft-erp.org/), and naturally ABMaterial gets as one of the options.

As application is big, I would appreciate, if you who have built some business app's with framework in similar size, share some data (or links) of it. What were difficulties ? What were strengths ? Any feedback and experience would be of much help ... thanks.
 

Harris

Expert
Licensed User
Longtime User
I did not check out your app. I stopped when it said -"Download SilverLight"... A browser app should not require any dependencies - like "Flash Player" - remember that?


Here is one of my apps built with ABM.

www.tripinspect.com

Pay particular attention (time it) the first time it loads - and for every page you explore thereafter.
The public section has many images that displays and informs how it works.

The second time you refer to the link, it should respond much quicker - since the images are now cached in your browser.

The app is huge. It does and supports many things (as you will discover if you read each page). All without issue.

The private section is only accessible to members - and where the fun exists...
It is integrated with mobile devices to collect, store and report data. It is always quick.
A modified version of this app runs at a client site on their server - 24 / 7 - without issue.

(Also - the demo app that comes with ABM is also huge).

Difficulties:

Learning the framework. All newbies have expressed this concern. That's why I created the Dummies tutorial - to get you started!
I just wish I had this resource when I began - but one must start somewhere - and I was eager to learn something never available until ABM graced / blessed my dev efforts.

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

However, once you get past this point / hump (which really isn't that difficult when someone holds your hand), you will be impressed with how easy it really is!

Strengths:

1) Show me something you CAN'T do in ABM - AND - do it with ease! Actually - it is B4J doing the work - ABM just presents it to your users - for the most part.
2) No (foul) languages to learn! I beat myself up trying to learn HTML(5), JS, CSS, Ajax, etc, etc, etc... Then trying to cobble all this together to make a web app - well no thank you sir...
3) Don't like writing (and maintaining) reams of code? Neither do I. ABM does it for you... with generators.
4) It simply works! I don't waste more than 5 minutes trying to figure out why something I built doesn't work - or is flaky. It is always something I did - and RARELY the framework.
5) Responsive... - on all devices.
6) Doesn't cost a small fortune - how's free for ya? Just tip your waiter now and again for his great service.
7) The author is very supportive (and a great person). He hates when you have an issue (much to his detriment! - as I think).
7) The B4X community. Again - show me another product where a "love fest" exists such as here. Other companies can learn something from this (99.9 percent happy people!).
8) I could go on and on, but you get the point...

I encourage you to come aboard. Your skill set would be most welcome here.

Thanks
 
Last edited:
Upvote 0

Harris

Expert
Licensed User
Longtime User
Note:

The above is only my humble opinion. I know nothing - except what I have learned and experienced.
Wait for others to chime in. See what else exists in this space. I have searched and experimented - yet - as I have found - this is the best of the best.
Let us know what you find is easier (or comparable) - we all would like to know.

Good Luck with your search.
 
Upvote 0

Drago Bratko

Active Member
Licensed User
Longtime User
Thank you Harris for your time and feedback. I appreciate it.

I did not check out your app. I stopped when it said -"Download SilverLight"... A browser app should not require any dependencies - like "Flash Player" - remember that?
Nothing is black or white. :)
Silverlight is (was) great framework and technology for building web app's which can behave as desktop app.
I'm aware of your point, and that's one of the reason why we now look for solution without client dependencies.

Here is one of my apps built with ABM.
Thank you ... looks good and quite complex. How much time you would need now (with knowhow which you have) to build it now ?
If I may ask, so you have B4J for a modified version of this app runs at a client site on their server, then you used B4J+ABMaterial for backend web app and you have used B4A for mobile app ?
 
Upvote 0

Harris

Expert
Licensed User
Longtime User
Nothing is black or white
Mostly gray... This is where we get stuck and confused...

Silverlight is (was) great framework and technology for building web app's which can behave as desktop app.

Desktop - You can accomplish the same with B4J only.
If you want a modern web app (look and feel of modern web app) - this is where ABM comes out to play...

How much time you would need now (with knowhow which you have) to build it now ?
Much, much less... The app you saw (tripinspect) evolved along with ABM. It progressed with many revisions - ABM versions - as the technology and authors feedback (from us) and my knowledge progressed. Once I mastered and was confident with it - I thought it was imperative to create the Dummies Tut (help others out with what I know / learned - in simply terms).

you have B4J for a modified version of this app runs at a client site on their server, then you used B4J+ABMaterial for backend web app and you have used B4A for mobile app
The above statement is a bit twisted...
My total solution consists of B4A (Android) for the mobile device app. It uses jRDC to pass data back and forth - to and from the back end server and device (local or cloud hosted).

B4J + ABM are required always (for material web apps). ABM does not operate without B4J. ABM is the GUI (like I said previously - for the most part).

There is only one app that runs at my client site (jar). It includes everything (web / client interface, database processing, automatic app updates to device, user / management communication, etc. There is one exception to this. I shell to a NON-UI app (B4J) to generate and print reports (on a network printer) using the NextReports functionality you will find in the Dummies Tut.

Note: I am available for contract - PM me for discussion - if interested.

I do not wish to carry this thread any further for explanation - since it asked and answered. It could go on forever and ever.
Please post new thread for new topics / issues.

Thanks

Harris.
 
Upvote 0

Drago Bratko

Active Member
Licensed User
Longtime User
Thank you once again for your feedbacks.

This is something what I didn't comment on my previous post ... I use B4A, B4I and B4J form quite some projects now already ... they are great tools. And this forum is great and very valuable addition to them.

You are right, thank you. Will check little bit more what expirience other has with ABMaterial and bigger app's.
And yes, I will definitely post my progress here for benifit of others which may came to my position.
 
Upvote 0

Cableguy

Expert
Licensed User
Longtime User
Despite the great interest ABMaterial has in this forum, and the fact it has changed the way 'we' create web apps, There is only a handful of users that have done real world working web app using it.
One of them, @Harris, has created and maintains a very complex and interesting app.
@Mashiane, is another. She has, due to her own needs, even created custom components, like the one she created ' for me' for listening for key combos.
Although I think that, due to client sensitivity, she doesn't expose much of what she is working on, but according to one of her post in a custom component she created, her web app is well over 60 different 'pages'.
Then there's me... I haven't done any 'real' work with ABM, as I am not a pro dev, but I just love to fiddle with it and have an on going project that I'm working on....
There are other that I know are proficient in ABM but that do not expose much of what they've done...
 
Upvote 0

Drago Bratko

Active Member
Licensed User
Longtime User
Thank you Cableguy for your feedback.

I hope others will also give their experience with it ... as it may be useful not only for me but also for quite some people which may be in same dilemma as I'm now. :)
 
Upvote 0

Mashiane

Expert
Licensed User
Longtime User
Well, welcome to a great ABM community. The current app im working on, https://www.b4x.com/android/forum/threads/abmaterial-project-show.93690/#content

is currently about 89 different pages and all of them are CRUD permission based. I think one of the things I wish I did when I first started to learn about this framework in 2016 was to first learn about how the Bootstrap Grid. For me learning the ABM grid was a deal breaker, I think I postponed it until I learned everything else. It was after I went through an article about how the bootstrap grid worked that the ABM grid made sense to me. Mind you, its the same thing (methodology) just that our minds are wired differently. Now there is a grid builder to do that.

Yes the support here is great and a lot of evolving has happened also, due to influence from the forum and also the greatness and support of AB. The vast number of components in ABM are wonderful and I use them and the custom ones come in handy too.

For example my app has a gantt chart and instead of the list (view) approach I use info boxes, for user profile pictures I needed a file uploader that also acts as an image view. So there is a lot that you can 'plugin' with js and some good css to build what you want. I love that flexibility a lot as it thus makes one create very unique solutions. Moreover now it comes with B4JS (I have not even touched that), it spills pure javascript code from your basic syntax.

In all in all I'm with the sentiments shared above. All the best. And wow, I almost forgot, the 'themes' which enable you to color code your solution in any color you want. So jah... it's great and it has been the best decision of my life to learn and use it too.
 
Upvote 0

Drago Bratko

Active Member
Licensed User
Longtime User
Thanks Mashiane for your feedback.

Your app on provided link looks very attractive.
What I'm still (for now) unable to estimate is how much time one would need (as soon as it master with framework) to build fairly complex page. But as this question is not precisely defined, I guess best answer is that I should try to do it. :) But if you (or anybody else) have feedback on that, that would help ...
 
Upvote 0

Harris

Expert
Licensed User
Longtime User
I guess best answer is that I should try to do it.
Yes, depends what is on your page... Simple page - minutes... Complex page (Google Maps - creating points / zones) - more minutes...
Once you have mastered - faster than ANYTHING else you could work with (foul languages)..
 
Upvote 0

Drago Bratko

Active Member
Licensed User
Longtime User
Mashiane, please use InternetExplorer and install Silverlight plugin in it. Should work like that. Thanks.
Harris, yes, makes sense ... even those figures, if it's count in minutes, looks very promising.
 
Upvote 0

Mashiane

Expert
Licensed User
Longtime User
So that is what the CRM does, being a collection of different systems into one big huge one! Wow. Impressive considering silverlight usage. But it is huge!!!

I have skimmed through the whole thing and here is my two cents.

  • Most of the content there is shown in tabs and in tables with modal sheets for data entry. ABM has ABMTabs and ABMModalSheets - check. There is an ABMWizard too (I still need to play with that)
  • For generating CRUD functionality for the tables you can use the ABMGenerator, it does a pretty good job to generate ABMTable content and your ABMModal sheet page. This is a source code generator. You feed it your table structure and it will generate the source code for you including the modal sheets, backend database link and then you will need to knit the thing together i.e. copy the code to your page and then add your business rules - check
  • Signatures - ABMSignature - check
  • Localization - ABM has a language functionality for one to create dictionary files for languages that then feed into the UX. I think it uses Bing to do the translations or something. (I still need to play with that)
  • Notifications - There is a push notification script I did for someone that displays notifications on the desktop. If however your app will send sms, then you can use an sms gateway. Im sure you know your way around smtp, so adding that will be a breeze to send emails - check.
  • Reporting - there is an ABMReport component that AB did to demo an invoice with printout functionality - Some have used NextReports and JasperReports - check. (I still need to play with that). Im using excel and word in my projects as I just template those and push data to them.
The only thing we don't have yet in ABM is a treeview, I have sent through a request for that.

I would however encourage you to go though the ABM demo just to skim it and see what you can use and some things are in the forum too. The example feedback app also has helped a lot of us into the transition of a simple crud app with tables and modal sheets, searching etc.

All the best.
 
Upvote 0

techknight

Well-Known Member
Licensed User
Longtime User
I love ABM. Got into it earlier in the year and I have not looked back. I use it for our control and configuration systems that run on embedded hardware, and they work fine! The entire system is written in B4J, and the ABM is the UI/User Configuration and Operation side of it.

I highly recommend it for webapp frameworks.
 
Upvote 0

alwaysbusy

Expert
Licensed User
Longtime User
Looking at the feedback app, I think a good number of devs are using ABM for their Web Apps. But, just like me, many are bound to some disclosure stuff. I can tell that we use ABM extensively inhouse (CRM) for about 2 years now. The last year, I'm converting our main/big 'client' product compeletely to ABM. At the same time a rather big school project is in development (which will have many thousands of simultanious users).

Doing a good analyse of the app is important (but that is something you already have with your existing app). You will quickly find you can write some reusable classes which will speed up programming A LOT. I have had cases where I write 10 to 15 pages/per day, because they were very simular in nature (CRUDs).

For us, this is how we split up a page in our webapps in seperate, standalone classes:

B4X:
- Filters (to allow the user to filter the data in the tables)
- Inputs
- Sidebars (they replace combos in our apps)
- Tables

Because each object has its own 'EventHandler' (using their own ParseEvent() method). Everything in it is kind of an object in itself that can be reused in other pages too. So automatically every page has the same look and feel, uses already tested code (if already used in another page) etc. In many cases, I can just write a new page by combining TableX with SidebarsA, B and C, InputY and FilterZ. Just by changing some general parameters (queries, column headers, target labels etc), I add a new page in minutes.

I see if I can find the time to make a demo template for such a system in the next release of ABM.

As a beginner, it is very important to understand the Grid (12 columns) concept. There is a gridbuilder included to assist you in this, but once you get the hang of it, you will write the AddRows yourself without it.

Making a good theme beforehand is also a good timesaver! e.g. I make sure I have themes for centering a label, for aligning it left, etc. I like a system where I don't have to think much on the names. Everything 'normal' in my theme is called the same:

e.g.

.AddLabelTheme("mytheme")
.AddButtonTheme("mytheme")
.AddCardTheme("mytheme")

And then the variations:

.AddLabelTheme("mythemeC") ' centered
.AddLabelTheme("mythemeR") ' right
etc...

I'm aware, for a beginner, ABM is quite overwhelming. The 'for dummies' series from Harris are a goldmine for starters.
 
Last edited:
Upvote 0

Drago Bratko

Active Member
Licensed User
Longtime User
Thank you techknight for your feedback.

alwaysbusy, thank you for your feedback and even more thank you for sharing with us this great achievement in form of a ABMaterial.

What I see now as a best way is to start first next project which will came (and will be smaller size). And then based on experience gather on this first project I can see what to do next. CRM itself is too big to start with it, and as I don't have yet strict deadline, I can take time.
 
Upvote 0
Top