Re: Tips on libraries

2019-02-26 Thread Ramon Flamia
First of all thanks for the suggestions (Thomas, Pavlo, Frank). 

I understand your point of view Thomas, unfortunately I have some 
constraints, both in terms of budget and delivery times, which I must take 
into consideration; this is why I said that I must be productive and, for 
example, abandoning GIN for Dagger is not so simple: as you said, GWTP is a 
framework and I should try to replace all the different features I have 
available with something equivalent. However, I will take into 
consideration the various ideas that have been mentioned in previous posts, 
thanks again.

As for the part of pure graphical interface, has any of you ever tried to 
integrate a framework using JsInterop (eg Bootstrap 4)? Is it a viable way 
or am I saying nonsense? :-)

Il giorno lunedì 25 febbraio 2019 16:31:00 UTC+1, Thomas Broyer ha scritto:
>
>
>
> On Monday, February 25, 2019 at 3:08:35 PM UTC+1, Ramon Flamia wrote:
>>
>> Thanks Thomas, I imagined this answer :-) 
>>
>> As I wrote in the initial post, my biggest concern is being updated with 
>> the UI, so I'm waiting for someone to show me his experience with other UI 
>> libraries, maybe even with JsInterop. I have seen the showcases of GWT 
>> Material and Domino UI, but I would like to understand how they fit 
>> together with the other technologies I have mentioned.
>>
>> Your suggestions are very useful, but at the moment I do not think I can 
>> follow them. Let's me explain my point of view: one thing that struck me 
>> when reading the various blog or posts related to GWT is that there is this 
>> desire to create code that is already future-proof. But today the release 
>> of GWT 3.0 has not yet been announced, nor do we know good specifications. 
>> Correct me if I'm wrong: is the advice to avoid GWT generators just to be 
>> ready for the future? If so, I see it as a violation of YAGNI.
>>
>
> The main idea is to not lock yourself into choice that will be hard to 
> replace. GWT Places are OK because the generator is optional, and so simple 
> that it can easily be implemented as an annotation processor (and has 
> *already* been rewritten this was). GIN would be OK too, but the 
> replacement is Dagger 2, which is already available, heavily used (on 
> Android, not necessarily GWT) and actively maintained; so why pick GIN now 
> to later have to migrate to Dagger 2, rather than directly choose Dagger?
> What I'm trying to say is to choose wisely: if there's a path forward, or 
> it would relatively easily be replaced/abstracted, then use it; if it's 
> highly structuring and is barely maintained, then carefully balance the 
> gains vs costs/risks; and this of course depends on the expected lifetime 
> of your project.
> Beware that browsers' behaviors change, and that an unmaintained client 
> library/framework might mean a broken app in the future; take that into 
> account into your risk evaluation.
>  
>
>> In particular, if I completely exclude the use of GWTP, I lose some 
>> things:
>>
>>- integration with a dependency injection framework (to this you 
>>already answered me, telling me to replace GIN with Dagger)
>>- MVP architecture and consequently difficulty in carrying out TDD 
>>development
>>- management of the browser history (probably in the link that you 
>>indicated to me, related to gwt-places, I can find something interesting)
>>- years of experience with this library, which makes me very 
>>productive
>>
>> From what I understand, GWTP is a framework, not a library. The cost of 
> changing to anything else is high.
> GWT Places and Activities worked well for me, and is lighter, less 
> "framework-y"; MVP is easy to apply as a pattern, and doesn't necessitate a 
> framework/library. See 
> https://github.com/tbroyer/gwt-maven-archetypes/tree/master/dagger-guice-rf-activities/src/main/resources/archetype-resources/__rootArtifactId__-client/src/main/java
>  
> for a dummy example.
>  
>
>> Also, if I have to avoid GWT generators then it means that the GWT 
>> Editors and JSR-303 part (Validation) must also be replaced, right?
>>
>
> Bean Validation is already deprecated in GWT proper, so use it at your own 
> risk (you may want to try 
> https://gitlab.com/ManfredTremmel/gwt-bean-validators/tree/master/gwt-bean-validators
>  
> though)
> Editors have a migration path: https://github.com/DominoKit/gwt-editors 
> (they might not play well with gwt-bean-validators though)
>
> You can have a look at 
> https://docs.google.com/spreadsheets/d/1b1D9fEqRh5lZ8cqMJtYoc_25rfTRvsuJkTtS2vjgi3o/edit?usp=sharing
>  
> for a glance of what GWT 3 might look like.
>  
>
>> Finally, I had already imagined replacing RPC calls with REST (RestyGwt 
>> maybe?), but I have to do some tests first to check that it is advantageous.
>>
>
> From my own tests, JsInterop work great for modelling JSON requests and 
> responses (you can use com.google.gwt.http for requests, or directly 
> XMLHttpRequest, from com.google.gwt.xhr or 

Re: Tips on libraries

2019-02-25 Thread Thomas Broyer


On Monday, February 25, 2019 at 3:08:35 PM UTC+1, Ramon Flamia wrote:
>
> Thanks Thomas, I imagined this answer :-) 
>
> As I wrote in the initial post, my biggest concern is being updated with 
> the UI, so I'm waiting for someone to show me his experience with other UI 
> libraries, maybe even with JsInterop. I have seen the showcases of GWT 
> Material and Domino UI, but I would like to understand how they fit 
> together with the other technologies I have mentioned.
>
> Your suggestions are very useful, but at the moment I do not think I can 
> follow them. Let's me explain my point of view: one thing that struck me 
> when reading the various blog or posts related to GWT is that there is this 
> desire to create code that is already future-proof. But today the release 
> of GWT 3.0 has not yet been announced, nor do we know good specifications. 
> Correct me if I'm wrong: is the advice to avoid GWT generators just to be 
> ready for the future? If so, I see it as a violation of YAGNI.
>

The main idea is to not lock yourself into choice that will be hard to 
replace. GWT Places are OK because the generator is optional, and so simple 
that it can easily be implemented as an annotation processor (and has 
*already* been rewritten this was). GIN would be OK too, but the 
replacement is Dagger 2, which is already available, heavily used (on 
Android, not necessarily GWT) and actively maintained; so why pick GIN now 
to later have to migrate to Dagger 2, rather than directly choose Dagger?
What I'm trying to say is to choose wisely: if there's a path forward, or 
it would relatively easily be replaced/abstracted, then use it; if it's 
highly structuring and is barely maintained, then carefully balance the 
gains vs costs/risks; and this of course depends on the expected lifetime 
of your project.
Beware that browsers' behaviors change, and that an unmaintained client 
library/framework might mean a broken app in the future; take that into 
account into your risk evaluation.
 

> In particular, if I completely exclude the use of GWTP, I lose some things:
>
>- integration with a dependency injection framework (to this you 
>already answered me, telling me to replace GIN with Dagger)
>- MVP architecture and consequently difficulty in carrying out TDD 
>development
>- management of the browser history (probably in the link that you 
>indicated to me, related to gwt-places, I can find something interesting)
>- years of experience with this library, which makes me very productive
>
> From what I understand, GWTP is a framework, not a library. The cost of 
changing to anything else is high.
GWT Places and Activities worked well for me, and is lighter, less 
"framework-y"; MVP is easy to apply as a pattern, and doesn't necessitate a 
framework/library. 
See 
https://github.com/tbroyer/gwt-maven-archetypes/tree/master/dagger-guice-rf-activities/src/main/resources/archetype-resources/__rootArtifactId__-client/src/main/java
 
for a dummy example.
 

> Also, if I have to avoid GWT generators then it means that the GWT Editors 
> and JSR-303 part (Validation) must also be replaced, right?
>

Bean Validation is already deprecated in GWT proper, so use it at your own 
risk (you may want to 
try 
https://gitlab.com/ManfredTremmel/gwt-bean-validators/tree/master/gwt-bean-validators
 
though)
Editors have a migration path: https://github.com/DominoKit/gwt-editors 
(they might not play well with gwt-bean-validators though)

You can have a look at 
https://docs.google.com/spreadsheets/d/1b1D9fEqRh5lZ8cqMJtYoc_25rfTRvsuJkTtS2vjgi3o/edit?usp=sharing
 
for a glance of what GWT 3 might look like.
 

> Finally, I had already imagined replacing RPC calls with REST (RestyGwt 
> maybe?), but I have to do some tests first to check that it is advantageous.
>

>From my own tests, JsInterop work great for modelling JSON requests and 
responses (you can use com.google.gwt.http for requests, or directly 
XMLHttpRequest, from com.google.gwt.xhr or JsInterop/Elemental2, or fetch 
through JsInterop/Elemental2). Depending on your browser support needs, 
URLSearchParams could be used for application/x-www-form-urlencoded 
requests (https://caniuse.com/#feat=urlsearchparams), and you could always 
use polyfills for wider browser support.
 

> So, if the answer at *"Is there one or more framework that offers the 
> same features as GWTP and whose learning curve is fast enough?"* is *"No"*, 
> then I'll continue to use GWTP + GIN: I need to be as productive as I am 
> now and I think that modularizing code and using best-practices in class 
> design is the best way to get a feature-proof code (if and when GWT 3.0 is 
> released then I'll see what do...). Otherwise, please tell me how I can 
> replace all the features I've talked about.
>

Use what works best for you, but not (only) because you're already 
proficient with it, also weight in the costs/risks of later change (and 
yes, architecture plays a big role in 

Re: Tips on libraries

2019-02-25 Thread Frank Hossfeld
I forgot to mention: There are project generators for mvp4g2: 
http://www.mvp4g.org/gwt-boot-starter-mvp4g2/GwtBootStarterMvp4g2.html and 
Nalu: https://github.com/nalukit/gwt-boot-starter-nalu. So, you can easily 
get an impression how they work.

Both frameworks work well with Domino-UI.

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.


Re: Tips on libraries

2019-02-25 Thread Frank Hossfeld
I forgot to mention: There are project generators for mvp4g2: 
http://www.mvp4g.org/gwt-boot-starter-mvp4g2/GwtBootStarterMvp4g2.html and 
Nalu: https://github.com/nalukit/gwt-boot-starter-nalu.

Both frameworks work well with Domino-UI.

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.


Re: Tips on libraries

2019-02-25 Thread Frank Hossfeld
Before I start, I would like to say, that I am a contributor of mvp4g and 
the owner of mvp4g2 and Nalu. All these libs could be a replacement for 
GWTP.

As Thomas already mentioned, I would avoid using libs based on GWT 
generators. So mvp4g will be no choice today. Mvp4g2 and Nalu both use 
annotation processors. Mvp4g2 has been successfully tested with J2CL and 
Nalu will also work with J2Cl cause it has no dependency to GWT. If you 
have already build something on mvp4g, I think mvp4g2 should be your 
choice. Otherwise I would give Nalu a try. Mvp4g2 and Nalu do not provide 
any widgets nor something for the communication with the server. 

To communicate with the server I prefer using REST.

In the past I like GXT very much. Currently, I am unsure about the future 
of GXT. My current choice would be Domino-UI, in case I am looking for a 
widget lib. Domino-UI is also ready to go with J2CL and the support of the 
Domino-UI team is awesome.

You will find more informations about mvp4g2 here: 
https://github.com/mvp4g/mvp4g2, about Nalu here: 
https://github.com/NaluKit/nalu and Domino-UI here: 
https://github.com/DominoKit/domino-ui.

May be also interesting: vue-gwt (https://github.com/VueGWT/vue-gwt) 

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.


Re: Tips on libraries

2019-02-25 Thread Frank Hossfeld
Before I'll start, I would like to say, that I am a contributor of mvp4g 
and the owner of mvp4g2 and Nalu. All these libs could be a replacement for 
GWTP.

As Thomas already mentioned, I would avoid using libs based on GWT 
generators. So mvp4g will be no choice today. Mvp4g2 and Nalu both use 
anotation processors. Mvp4g2 has been successfully tested with J2CL and 
Nalu will also work with J2Cl cause it has no dependency to GWT. If you 
have already build something on mvp4g, I think mvp4g2 should be your 
chioce. Otherwise I would give Nalu a try. Mvp4g2 and Nalu do not provide 
any widgets nor somnething for the communication with the server. 

To cummincate with the server I prefer using REST.

In the past I like GXT very much. Currently, I am unsure about the future 
of GXT. My current choice would be Domino-UI, in case I am looking for a 
widget lib. Domino-UI is also ready to go with J2CL and the support of the 
Domino-UI team is awesome.

You will ifnd more inforamtions about mvp4g2 here: 
https://github.com/mvp4g/mvp4g2, about Nalu here: 
https://github.com/NaluKit/nalu and Domino-UI here: 
https://github.com/DominoKit/domino-ui.

May be also intresting: vue-gwt (https://github.com/VueGWT/vue-gwt) 

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.


Re: Tips on libraries

2019-02-25 Thread Ramon Flamia
Thanks Thomas, I imagined this answer :-) 

As I wrote in the initial post, my biggest concern is being updated with 
the UI, so I'm waiting for someone to show me his experience with other UI 
libraries, maybe even with JsInterop. I have seen the showcases of GWT 
Material and Domino UI, but I would like to understand how they fit 
together with the other technologies I have mentioned.

Your suggestions are very useful, but at the moment I do not think I can 
follow them. Let's me explain my point of view: one thing that struck me 
when reading the various blog or posts related to GWT is that there is this 
desire to create code that is already future-proof. But today the release 
of GWT 3.0 has not yet been announced, nor do we know good specifications. 
Correct me if I'm wrong: is the advice to avoid GWT generators just to be 
ready for the future? If so, I see it as a violation of YAGNI.

In particular, if I completely exclude the use of GWTP, I lose some things:

   - integration with a dependency injection framework (to this you already 
   answered me, telling me to replace GIN with Dagger)
   - MVP architecture and consequently difficulty in carrying out TDD 
   development
   - management of the browser history (probably in the link that you 
   indicated to me, related to gwt-places, I can find something interesting)
   - years of experience with this library, which makes me very productive

Also, if I have to avoid GWT generators then it means that the GWT Editors 
and JSR-303 part (Validation) must also be replaced, right?
Finally, I had already imagined replacing RPC calls with REST (RestyGwt 
maybe?), but I have to do some tests first to check that it is advantageous.

So, if the answer at *"Is there one or more framework that offers the same 
features as GWTP and whose learning curve is fast enough?"* is *"No"*, then 
I'll continue to use GWTP + GIN: I need to be as productive as I am now and 
I think that modularizing code and using best-practices in class design is 
the best way to get a feature-proof code (if and when GWT 3.0 is released 
then I'll see what do...). Otherwise, please tell me how I can replace all 
the features I've talked about.

Thanks again,
Ramon

Il giorno lunedì 25 febbraio 2019 12:59:15 UTC+1, Thomas Broyer ha scritto:
>
>
> On Monday, February 25, 2019 at 12:33:23 PM UTC+1, Ramon Flamia wrote:
>>
>> Hi everyone,
>> having to start a new GWT project, on average complex, which framework / 
>> technologies you recommend for the following points:
>>
>> - MVP architecture (currently using GWTP)
>> - dependency injection (currently using GIN)
>> - communication with the server (currently using GWT RPC, provided by 
>> GWTP)
>> - UI (currently using GwtBootstrap3)
>>
>> I ask this question because it seems to me that all the libraries I have 
>> mentioned do not foresee new developments; for the GIN and GWTP part this 
>> is not a problem, because these libraries are very stable; instead, the 
>> part of UI is the one that worries me the most, as there is no upgrade to 
>> version 4 of Bootstrap.
>>
>
> Can't give any recommendation wrt UI, as I never used any 3rd-party 
> library and have only worked on maintaining legacy projects for the last 
> years, or GWTP (always used plain old GWT Places and Activities), but GIN ⇒ 
> Dagger 
> 2  (and replace GIN Assisted Injection 
> with either AutoFactory 
>  or AssistedInject 
> ), and I'd try to avoid GWT-RPC.
> Try to avoid anything based on GWT generators these days, and this 
> includes GWTP. People generally use a generator with GWT Places, but it can 
> trivially be replaced with an annotation processor or hand-written code so 
> it's future-proof (work is already done btw: 
> https://github.com/gwtproject/gwt-places)
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.


Re: Tips on libraries

2019-02-25 Thread Pavlo Iatsiuk
Here is an answer about Nalu and GWTP from the main developer of both

https://groups.google.com/d/msg/Google-Web-Toolkit/FdSNvhrn3lE/ecwPrQ7dBAAJ

and dominoUI looks like a good set of components 
- https://dominokit.github.io/domino-ui-demo/index.html?theme=indigo#home
I personally use SmartGWT just because I need powerful table component and 
calendar.

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.


Re: Tips on libraries

2019-02-25 Thread Thomas Broyer

On Monday, February 25, 2019 at 12:33:23 PM UTC+1, Ramon Flamia wrote:
>
> Hi everyone,
> having to start a new GWT project, on average complex, which framework / 
> technologies you recommend for the following points:
>
> - MVP architecture (currently using GWTP)
> - dependency injection (currently using GIN)
> - communication with the server (currently using GWT RPC, provided by GWTP)
> - UI (currently using GwtBootstrap3)
>
> I ask this question because it seems to me that all the libraries I have 
> mentioned do not foresee new developments; for the GIN and GWTP part this 
> is not a problem, because these libraries are very stable; instead, the 
> part of UI is the one that worries me the most, as there is no upgrade to 
> version 4 of Bootstrap.
>

Can't give any recommendation wrt UI, as I never used any 3rd-party library 
and have only worked on maintaining legacy projects for the last years, or 
GWTP (always used plain old GWT Places and Activities), but GIN ⇒ Dagger 2 
 (and replace GIN Assisted Injection with 
either AutoFactory  or 
AssistedInject ), and I'd try to 
avoid GWT-RPC.
Try to avoid anything based on GWT generators these days, and this includes 
GWTP. People generally use a generator with GWT Places, but it can 
trivially be replaced with an annotation processor or hand-written code so 
it's future-proof (work is already done 
btw: https://github.com/gwtproject/gwt-places)

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.


Tips on libraries

2019-02-25 Thread Ramon Flamia
Hi everyone,
having to start a new GWT project, on average complex, which framework / 
technologies you recommend for the following points:

- MVP architecture (currently using GWTP)
- dependency injection (currently using GIN)
- communication with the server (currently using GWT RPC, provided by GWTP)
- UI (currently using GwtBootstrap3)

I ask this question because it seems to me that all the libraries I have 
mentioned do not foresee new developments; for the GIN and GWTP part this 
is not a problem, because these libraries are very stable; instead, the 
part of UI is the one that worries me the most, as there is no upgrade to 
version 4 of Bootstrap.

Thanks in advance for your suggestions.

Ramon

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at https://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/d/optout.