1

Please could you clarify my comprehension of the packages having similar component ? For exemple let's take a Button.

(update: Looking at sources, I guess that Royale is a set of several projects. The list is in apache-royale-0.9.6-bin-js\royale-asjs\frameworks\projects folder. Some projects are about same componant like Button that is in basic project, Jewel project, MDL project, HTML project, HTML5 project etc...)

I have the choice of :

1) mx.controls.Button => Ok I read that's for emulated component. I beleve not the most efficient but easy to use it for Flex to Apache Royale code migration

2) org.apache.royale.html.Button => I'm not very familiar with HTLM but I beleve it's the HTML Button tag (<BUTTON>)

3) org.apache.royale.html5.Button => well, what difference with 2) ?

4) org.apache.royale.jewel.Button => it's the Button component of Jewel. Has some specifics properties, near of a "Flex Button", can show "mouse hand" pointer when hovering it, etc... I beleve I must use this one.(update: well not sure, I have difficult to skin it, basic's Button seems easy to skin, I'm not sure but I think I must override IBeadView: ClassReference("org.apache.royale.jewel.beads.views.ButtonView") to set my own skin)

5) org.apache.royale.mdl.Button => what is this ?Looking at source code, it's Material Design Lite components

6) spark.components.Button => I beleve like 1) but for spark components and not mx ?

7) what's difference between <js:HGroup> (basic package) an <j:HGroup> (jewel package) ? Is it same thing or has more advanced options and/or beads usables for <j:HGroup> ?

Best regards

Fred
  • 399
  • 3
  • 12

1 Answers1

1

Royale is a framework that does not attempt to impose a single set of components or close the paths to different codes. Unlike Apache Flex, where we only had the MX and SPARK components, in Royale we have several, and we hope others will create other sets based on Royale foundations, to target different needs.

1) MX Button. Correct, the goal is to migrate from Flex. MXRoyale is a library that uses Basic one below. The objective is to find the minimum recoding when moving from Flex to Royale. At the moment the main problem is at the level of look and feel the appearance is very basic (at least for the moment), in fact is based on Basic ;), that is the a set that creates a set with the minimum needs (this is PAYG - Pay As You Go that is a core concept in Royale).

2) HTML Button. Correct, it is simply a class that ultimately creates an HTML button, really nothing of more value here, since you can have a JS Button directly in Royale, but since we have an HTML library, is must have represented all HTML tags.

3) HTML5 Button. In principle use the HTML5 specification, nothing more, but the same as 2).

4) Jewel Button: Jewel is a set of components with predefined themes and styles and that creates a structure for them so that it is easy to create other themes and switch between them. Jewel is maybe the most developed set in Royale right now to work as close as Flex did, but as well targeting modern concepts not present in Flex like responsivity, mobile devices,... can be a good option if you migrate from Flex but wants to redo the visual parts to match modern apps with components like Drawers, badges, TopAppBars or Snackbars...

5) MDL Button, is a port of Material Design Lite. It's about proving that Royale can wrap other JS libraries so that we can use them with AS3 and MXML easily. If you look for MDL is ok, but if you want to change look and feel at some time, you'll be tied to MDL. For that reason other options like Jewel could be better, since make switch themes more easy.

6) SPARK Button, right, as you said.

7) Basic/Jewel HGroup. The main differences between the layouts of Basic and those of Jewel, is that in Basic they are more based on JS. Jewel tries to use more the advantages of CSS, so it delegates many things to CSS styles when possible.

Carlos Rovira
  • 507
  • 2
  • 11
  • Hi Carlos, tanks for your reply, the more I learn about Apache Royable the more I like use it because of all the possibilities it allow. It could be a good idea to put your answer somewhere in the concepts of Apache Royale website. – Fred Sep 27 '19 at 10:51
  • Thanks Fred, We are discussing about creating some kind of "Royale Cookbook" as part of the Royale docs, but I think it will delay a bit since we are working in some part of the docs that seems more core. More hands will make us go faster, so people like you could contribute adding this kind of content as you learn it. Thanks :) – Carlos Rovira Sep 27 '19 at 18:15
  • Hi, Carlos, yes if I could help while learning this would be great. I will email you to explain you my current goal with Apache Royale – Fred Sep 28 '19 at 15:56
  • Hi Carlos, What's the goal of the "express" library ? – Fred Oct 16 '19 at 20:12
  • Hi Fred. Express is Basic with steroids. It tries to preconfigure beads so users don't need to do it themselves most of the time. This could make a more weight app in some cases. For example Button may have Disabled bead directly so you have the enable/disable functionality at hand from start. – Carlos Rovira Oct 18 '19 at 09:08
  • I actually think that "not imposing a single set of components" is not such a good virtue. For backward compatibility ok. But for the future it would be nice to have the community focus on one set of components and stick with it. Having a multitude of component sets will only disperse the development effort and documentation and make it harder for beginners who don't know what to choose for what need. New component sets will keep missing stuff like Jewel not having a progress bar for example... – Migs Nov 17 '19 at 18:04
  • As any other library in Royale things implemented are by necessity or priority, some due to the people that started it, that need some components and not others. Or users requested it and depending on availability devs created it. As well some companies use to contract devs to contribute the components they need and still does not exit. – Carlos Rovira Nov 18 '19 at 19:18