Various questions about FlexJS

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Various questions about FlexJS

After24
Hello,

As Adobe announced EOL for the flash runtime, I’m currently investigating about alternative solutions for web application development. So far Angular 2/TypeScript and FlexJS caught my attention.

I just went trough a few examples provided in the sdk and also read key articles of the FlexJS wiki.
Although the beads concept is new, a lot of things looks familiar for a Flex developer.

I have several questions regarding FlexJS :

- How modularity is managed in FlexJS, is there an equivalent of the Flex module ?

- Our previous app architecture rely heavily on dependency injection and managed commands using the Parsley framework. Is there a way to achieve DI in FlexJS ?

- The compilation process of the HelloWord sample application takes an average of 7 s on my computer (4 GHz core i7 Imac). Do you know if the compilation duration increase a lot with application size ?

- What is the level of consistency of the views rendering across browsers ?

- Has anyone got metrics regarding performance on mobile ? Does it seem realistic to have a unique code base for an application using the js output for the web and the the swf on mobile using AIR ?

- Our applications use TLF heavily (drop/down of components inside text using InlineGraphicElement), I read that Harbs has port the TLF framework to FlexJS but I’m not sure that all TLF capabilities are available, is it the case ?  

I would be very interested in reading others experience with FlexJS.
 
Thank you.

Vincent.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Various questions about FlexJS

Harbs

> On Aug 10, 2017, at 1:21 AM, After24 <[hidden email]> wrote:
>
> Hello,
>
> As Adobe announced EOL for the flash runtime, I’m currently investigating
> about alternative solutions for web application development. So far Angular
> 2/TypeScript and FlexJS caught my attention.
>
> I just went trough a few examples provided in the sdk and also read key
> articles of the FlexJS wiki.
> Although the beads concept is new, a lot of things looks familiar for a Flex
> developer.
>
> I have several questions regarding FlexJS :
>
> - How modularity is managed in FlexJS, is there an equivalent of the Flex
> module ?

Currently modules are not supported very well (if at all).

> - Our previous app architecture rely heavily on dependency injection and
> managed commands using the Parsley framework. Is there a way to achieve DI
> in FlexJS ?

I’m not familiar with Parsley. Maybe someone who is can better comment. We use PureMVC and that simply worked with no modifications.

> - The compilation process of the HelloWord sample application takes an
> average of 7 s on my computer (4 GHz core i7 Imac). Do you know if the
> compilation duration increase a lot with application size ?

It depends how much you compile. I have a very large app (hundreds of thousands of lines) and a debug build for JS compiles in between 10 and 20 seconds. A release build which runs the GCC minifier takes about a minute and a half.

> - What is the level of consistency of the views rendering across browsers ?

In my experience very good.

> - Has anyone got metrics regarding performance on mobile ? Does it seem
> realistic to have a unique code base for an application using the js output
> for the web and the the swf on mobile using AIR ?

I don’t have metrics on that, but FlexJS has a strong focus on performance. Having dual output including AIR is definitely possible, but there are still some visual differences between the platforms. We have more work to do in that area.

> - Our applications use TLF heavily (drop/down of components inside text
> using InlineGraphicElement), I read that Harbs has port the TLF framework to
> FlexJS but I’m not sure that all TLF capabilities are available, is it the
> case ?  

TLF works (surprisingly well), but the text engine included alongside it is VERY limited. I have developed my own text engine to replace FTE. We might consider licensing our engine depending on various factors. If that’s something that you might be interested in, you can contact me privately.

If you are only using TLF for displaying images inline with text, there are probably other options in FlexJS. I would not use TLF for that in FlexJS (on the JS side). It’s serious overkill.

> I would be very interested in reading others experience with FlexJS.
>
> Thank you.
>
> Vincent.
>
>
>
>
> --
> View this message in context: http://apache-flex-users.2333346.n4.nabble.com/Various-questions-about-FlexJS-tp15683.html
> Sent from the Apache Flex Users mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Various questions about FlexJS

piotrz
In reply to this post by After24
Hi Vincent,

In case of module there is some kind of mimic of that, but is far away from Flex module. Maybe it would be enough for you [1]. Take a look into FlexJS Tour and how is being used SubAppLoader.

Parsley: You need to check one thing - Does core sources of Parsley which you are using has dependency to Flash? -If not you can use it in your app - rebuild this sources by FlexJS and have swc for your project. Example of prepared Maven build of PureMVC you can find on my github - look into pom. [2]

If it has dependency maybe there is very little work to get rid of that and have pure AS.

PureMVC is working cause there is no Flash dependency in sources.

[1] https://github.com/apache/flex-tourjs/blob/develop/TourJS/src/main/flex/TourJSMainView.mxml
[2] https://github.com/piotrzarzycki21/puremvc-as3-multicore-framework/blob/master/pom.xml

Piotr
Apache Flex PMC
piotrzarzycki21@gmail.com
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Various questions about FlexJS

After24
Hello harbs and Piotrz,

=> The main goals of using modules in our workflow are in order of priority :

1 - reduce compilation duration
2 - obtaining a clear separation of code
3 - reduce application loading time for users


1 is very important in our case, if we compile all module at the same time, it takes more that one minute to the compiler to build the project in debug mode.
Does the flexJS compiler rebuild the entire project every time it is executed ?

=> I don’t think that we could get some of the features of our apps without TLF. Here is a quick video showing 2 examples of our use of TLF.

==> Regarding DI, I’m very used to Parsley, it’s a fantastic iOc framework but I could switch to pureMVC. Piotrz, are you referring to specific flash APIs when you say « Does core sources of Parsley which you are using has dependency to Flash ? ». I believe it’s pure AS3, DI can be performed in AS3 or using metadata Tags  when used with Flex, this is the way I use it because it makes the source code very clean.

==> A post on the dev list refers to AMF. Having AMF working in FlexJS would be a huge time saving for us.

==> I can’t find any documentation about component skinning in FlexJS, is there any existing content related to this topic on the wiki or elsewhere ?

Thank you.

Vincent.



Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Various questions about FlexJS

piotrz
Vincent,

I didn't refer to any specific Flash API. In general if in your code there is some reference to any kind of Api from Flex or in general Flash - compiler will not compile it for you to JS. It's the matter of exploration in case of Parsley and later try to build sources with FlexJS compiler.

AMF: We have some movement around AMF, but not sure where it is right now. Carlos created even branch for the work and adoption of Prashant code. You can ask in that thread [1].

As for the skinning probably Harbs has more experience in case of Basic components, but I assume that everything is happen in CSS. We have also in FlexJS MDL [2][3] module which has initially quite good look.

 [1] http://apache-flex-development.2333347.n4.nabble.com/FlexJS-AMF-support-td36013.html
[2] https://getmdl.io/components/index.html
[3] https://github.com/apache/flex-asjs/tree/develop/examples/flexjs/MDLExample

Piotr
Apache Flex PMC
piotrzarzycki21@gmail.com
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Various questions about FlexJS

Alex Harui-2
In reply to this post by After24
Hi Vincent,

The only reason there aren't modules in FlexJS is because nobody "had to
have them" yet.  If you need them, we can probably produce a rough
equivalent of modules, but they will not unload.  Unloadable modules will
be a lot of work.

Note that FlexJS output should be much smaller than regular Flex, and
startup time has been better than regular Flex at least for the smaller
apps so your concern #3 may not be as much of a factor.


Regarding skinning, just like modules, we don't have a component set that
offers the same kind of skinning as regular Flex because nobody "had to
have it" yet.  Instead, there are different component sets that offer the
use of Material Design Lite or Jquery which have their own mechanism for
visual customization and you might find that MDL gives you a more current
look for your app.  Many Flex apps have been around for many years and
could use a upgrade in the UI.

There is discussion about a new default look for FlexJS as well, and it
will likely have some sort of customization options.

How many modules do you currently have?

Thanks,
-Alex

On 8/10/17, 3:59 AM, "After24" <[hidden email]> wrote:

>Hello harbs and Piotrz,
>
>=> The main goals of using modules in our workflow are in order of
>priority
>:
>
>1 - reduce compilation duration
>2 - obtaining a clear separation of code
>3 - reduce application loading time for users
>
>
>1 is very important in our case, if we compile all module at the same
>time,
>it takes more that one minute to the compiler to build the project in
>debug
>mode.
>Does the flexJS compiler rebuild the entire project every time it is
>executed ?
>
>=> I don’t think that we could get some of the features of our apps
>without
>TLF. Here is a  quick video
><https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdrive.go
>ogle.com%2Ffile%2Fd%2F0B1gVUr1M4Mm2c05YUDF3cnVSUWc%2Fview&data=02%7C01%7C%
>7C35d01eed6f084ec363a208d4dfdf0e88%7Cfa7b1b5a7b34438794aed2c178decee1%7C0%
>7C0%7C636379596495369796&sdata=PvxVC3iwvHML3XU%2BHsfMFPBIw8%2BedIaUFRxcvMK
>Mgj0%3D&reserved=0>
>showing 2 examples of our use of TLF.
>
>==> Regarding DI, I’m very used to Parsley, it’s a fantastic iOc framework
>but I could switch to pureMVC. Piotrz, are you referring to specific flash
>APIs when you say « Does core sources of Parsley which you are using has
>dependency to Flash ? ». I believe it’s pure AS3, DI can be performed in
>AS3
>or using metadata Tags  when used with Flex, this is the way I use it
>because it makes the source code very clean.
>
>==> A post on the dev list refers to AMF. Having AMF working in FlexJS
>would
>be a huge time saving for us.
>
>==> I can’t find any documentation about component skinning in FlexJS, is
>there any existing content related to this topic on the wiki or elsewhere
>?
>
>Thank you.
>
>Vincent.
>
>
>
>
>
>
>
>--
>View this message in context:
>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapache-fle
>x-users.2333346.n4.nabble.com%2FVarious-questions-about-FlexJS-tp15683p156
>89.html&data=02%7C01%7C%7C35d01eed6f084ec363a208d4dfdf0e88%7Cfa7b1b5a7b344
>38794aed2c178decee1%7C0%7C0%7C636379596495369796&sdata=H%2BqvJ2MQGNbLeEteY
>nKTLOzoHiZY18ZHhKAKOCijmoU%3D&reserved=0
>Sent from the Apache Flex Users mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Various questions about FlexJS

After24
Hi Alex,

Our biggest application is composed of 20 modules and 8 runtime shared librairies.
Aside from a clear separation of functionalities inside the application, the use of modules and RSLs results in a significant decrease of the compiltaion duration when working on a single module of the app.

Does the flexJS compiler analyse wich part of the code has changed since the last compilation to provide a sort of "incremental compilation" like in regular Flex ?

Vincent.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Various questions about FlexJS

Harbs
FWIW, I’ve found that debug release compilation times using FlexJS is significantly faster than Flex app compilation.

> On Aug 10, 2017, at 6:53 PM, After24 <[hidden email]> wrote:
>
> Hi Alex,
>
> Our biggest application is composed of 20 modules and 8 runtime shared
> librairies.
> Aside from a clear separation of functionalities inside the application, the
> use of modules and RSLs results in a significant decrease of the compiltaion
> duration when working on a single module of the app.
>
> Does the flexJS compiler analyse wich part of the code has changed since the
> last compilation to provide a sort of "incremental compilation" like in
> regular Flex ?
>
> Vincent.
>
>
>
>
> --
> View this message in context: http://apache-flex-users.2333346.n4.nabble.com/Various-questions-about-FlexJS-tp15683p15699.html
> Sent from the Apache Flex Users mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Various questions about FlexJS

Harbs
In reply to this post by After24
If your goal is faster compile times, you can break your app into libraries and compile swcs for each part. The code from the swcs does not need to be recompiled and it’s not even recopied unless you clean first.

Most of my apps use at least one custom swc besides the SDW ones.

> On Aug 10, 2017, at 6:53 PM, After24 <[hidden email]> wrote:
>
> Hi Alex,
>
> Our biggest application is composed of 20 modules and 8 runtime shared
> librairies.
> Aside from a clear separation of functionalities inside the application, the
> use of modules and RSLs results in a significant decrease of the compiltaion
> duration when working on a single module of the app.
>
> Does the flexJS compiler analyse wich part of the code has changed since the
> last compilation to provide a sort of "incremental compilation" like in
> regular Flex ?
>
> Vincent.
>
>
>
>
> --
> View this message in context: http://apache-flex-users.2333346.n4.nabble.com/Various-questions-about-FlexJS-tp15683p15699.html
> Sent from the Apache Flex Users mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Various questions about FlexJS

Alex Harui-2
In reply to this post by After24
Hi Vincent,

FlexJS doesn't have every capability of the regular Flex SDK right now.
There just hasn't been enough people-hours to replicate everything.  We
prioritize things that people actually need, so if you want to use FlexJS
and need modules and can live with modules that don't unload, I will try
to put together some basic module support when I get done with my current
task.

Similarly, I see mention of incremental compilation in the compiler
source, but I've never had to learn more about it.  We haven't had the
need or resources to try to speed up the compiler more than it currently
performs, but if we find that there is an issue on a large app then we'll
take a look at it.

FlexJS isn't being developed by a corporation with a good-sized team of
people working on it.  Think of this as more of a potluck/party.  Folks
bring what they can.  Some bring more than others and we figure things out
together.  That means there isn't a lot of polished code with solid
documentation.  The benefit to you is that you can have more control over
your destiny.  If you contribute enough you will be granted committer
rights and can fix your own bugs if needed.  No corporation is going to
change its mind about whether FlexJS will have a next release.  I'm sure
we'd all be excited to have you be the next, bigger migration project.

HTH,
-Alex

On 8/10/17, 8:53 AM, "After24" <[hidden email]> wrote:

>Hi Alex,
>
>Our biggest application is composed of 20 modules and 8 runtime shared
>librairies.
>Aside from a clear separation of functionalities inside the application,
>the
>use of modules and RSLs results in a significant decrease of the
>compiltaion
>duration when working on a single module of the app.
>
>Does the flexJS compiler analyse wich part of the code has changed since
>the
>last compilation to provide a sort of "incremental compilation" like in
>regular Flex ?
>
>Vincent.
>
>
>
>
>--
>View this message in context:
>https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fapache-fle
>x-users.2333346.n4.nabble.com%2FVarious-questions-about-FlexJS-tp15683p156
>99.html&data=02%7C01%7C%7C714e36465c8a450d428508d4e008216b%7Cfa7b1b5a7b344
>38794aed2c178decee1%7C0%7C0%7C636379772901798612&sdata=%2BFGSq5VwNZz44PRel
>3oT5pgPJESkFay9T9bssDVeQOQ%3D&reserved=0
>Sent from the Apache Flex Users mailing list archive at Nabble.com.

Loading...