LCL vs MUIClass

MarcusF · 122

MarcusF

  • Newbie
  • *
    • Posts: 38
    • Karma: +10/-0
on: July 22, 2022, 05:50:51 PM
Having written the same application in both LCL and MUIClass, I just wanted to put a couple of lines out there for anyone else looking to get started in AROS app development in FPC.

LCL is the easiest to get going with, as you're just using the regular FPC/Lazarus process. You put things on a form, create your handlers, etc.

Easy peasy.

Unfortunately there are a number of bugs. ALB42 created the LCL implementation and told me that some of the bugginess comes from the fact he had to use a custom layout to let you place components in the LCL way, aligning things and so on.

It works fine for simple applications. AWeather is borderline as it contains multiple panels and formatting. It mostly works but due to the multiple panels there are graphic issues that are not solvable by an app developer.

MUIClass is a more raw implementation of MUI/Zune for FPC, also created by ALB42.
You work without the LCL middle layer, making the application smaller and much faster (Usable on m68k)

You have MUCH less control over the GUI compared to LCL as you have to follow the MUI way of things. Practically it means your GUI will be place based on parent ownership and not window-based positions.

The application will look much more Amiga like.

MUIClass so far doesn't really have bugs like LCL has, it has worked out quite nicely for AWeather.

When I ran into an issue not knowing how to implement an image, I emailed ALB and he had an example made up over night for me.

Because you can't use the LCL you also don't get the wonderful GUI design capabilities of Lazarus. Luckily ALB also created MUIIDE, a tool for designing GUI's in AROS, you can then export it as source code and start filling in all your practical code.

Without MUIIDE you'd be stuck in the dark ages of blindly creating IDEs and testing.

It has some quirks but they're not that bad. For example when working with pages, when you make a change it will reset the page to the first one, so if you're working on the second page you'll do a lot of clicking the tab, lol.

I'll write up a full tutorial at some point, but I wanted to put a little starter-information out there and let people know about the options

I know people use the Docker image for compiling or the premade VM, I used FPCUpDeluxe to install the cross compilers and it's working well.
Installing MUIClass is easy, just download the lib and include in your path (Tutorial coming at some point) https://github.com/alb42/MUIClass



magorium

  • Moderator
  • Senior Member
  • *****
    • Posts: 459
    • Karma: +54/-0
  • Convicted non contributor
Reply #1 on: July 22, 2022, 09:44:34 PM
Thank you for your extensive analysis on the subject.

Ofc. I know all this and usually inform people about this situation when the times comes. I do try to point to them that there are many options to walk the road.

For instance in addition to what you already wrote, are you also aware of the presence of fpGUI widget backend ? And in then early beginning there was also a intuition backend ?

It would be nice if the status of MUI-LCL would have been better but MUI is really fighting LCL logic (or the other way around) which makes it difficult to implement the LCL widgets.

Things do improve when using custom drawn components. You can see that in some of ALB42's projects, such as EdiSyn where there is a custom drawn use of a tabbar/notebook.

Thank you for writing this all down in a way that only you seem to be capable of doing.... like you do with your blog-posts.


MarcusF

  • Newbie
  • *
    • Posts: 38
    • Karma: +10/-0
Reply #2 on: July 22, 2022, 10:26:13 PM
This was just a short post, I will make a blog post about it. And thank you for the kind words!

I only know things because I ask smart people like yourself and ALB a lot of stupid questions :D

But I am happy to share what I learn which is why I made the blog.

It is too bad that MUI and LCL do not work nicely together. Being able to code the "usual Lazarus way" would be fantastic but I understand it's not really doable.

I didn't know fpGUI could target AROS, I have never used it, I might give that a try and see how well I like it.

I would love to help out making the FPC AROS world a little better but I am not a systems programmer, I can make applications but not write drivers or fix MUI/LCL bugs :(

I'm happy to finance fixes and improvements though, not just the one already posted.

Your help has been fantastic so far magorium, I really appreciate it :)



magorium

  • Moderator
  • Senior Member
  • *****
    • Posts: 459
    • Karma: +54/-0
  • Convicted non contributor
Reply #3 on: July 23, 2022, 07:42:45 AM
I would love to help out making the FPC AROS world a little better but I am not a systems programmer, I can make applications but not write drivers or fix MUI/LCL bugs :(
I think you underestimate the "powers" you have there  :)

Every experience you have/share on the subject ... every comment you make, question you ask, every encountered bug will help us to know/understand how to improve.

Even if you only mention the name AROS icw FPC (as you did on the FPC forums) will help spread the word(s) and has a chance of making other people take an interest (yes, I am still fantasising it actually can :P )

There simply is not enough manpower to check/test, write/evangelise everything ourselves.

PS and fwiw: I am a simple software developer myself and not a systems programmer .... wrt my work on FPC I'm just pretending I am capable  ::)
« Last Edit: July 23, 2022, 07:48:40 AM by magorium »