Some inline comments below

- Coupling the view to a "foo" activitiy (P in MVP)
>

An Activity does not have to be a presenter. Always keep that in mind. An 
activity is simply something that starts/stops once a user visits/leaves a 
place. It can often take the role of a presenter just fine but if for any 
reasons things feel uncomfortable while writing an activity you might want 
to think about it.


 

> - Use of Event-, Activity- and PlacesManager ("AppController" is a 
> deprecated pattern(?))
>

Using EventBus gives nice decoupling while being able to broadcast general 
events in your app. Creating events requires some boilerplate code to write 
so you may want to check out https://github.com/google/gwteventbinder to 
save you some code.

Places are GWT's way to handle navigation and support the browser 
back/forward buttons. I would definitely use it because its always annoying 
if you can not send someone else a link to "a place" in your app. It also 
just feels more natural if you can use back/forward buttons of the browser 
because thats what you do all day when surfing the web.
 

- Use of ClientFactory for reusable Views
>

ClientFactory a form of dependency injection and is more about swapping 
view implementations easily. This is helpful if you want to share presenter 
logic but need different view implementations for desktop/tablet/mobile. It 
also comes in handy for testability of your presenters. During testing your 
view interfaces can be implemented by fake implementations using a 
FakeClientFactory. If you would use your real GWT views in tests then you 
would need to use GWTTestCase which is really slow compared to pure JUnit 
tests or you have to use a library 
like https://github.com/google/gwtmockito which does some magic to avoid 
using GWTTestCase even if you deal with real widgets.

The code you write when using the ClientFactory pattern can also be 
generated by using https://code.google.com/p/google-gin/ .


- Use of RequestFactory and EntityProxy as "M" part for DataBinding (using 
> annotations)
>

GWT's DataBinding features is the Editor Framework which also works with 
plain POJOs / Beans. So you are not required to use RequestFactory in order 
to be able to use DataBinding features. Also GWT's Editor Framework is not 
a "real time" data binding. What it does is it copies data from your model 
into the view (by using annotations and naming conventions), then you can 
edit everything in your view and finally you can call a flush() method 
which copies everything from the view back to the model. So there is no 
live update of label x while typing things in textbox y.
 

A tutorial that uses all of the above mentioned paradigms at once would be 
> much appreciated. 
>

Actually these things are all covered on gwtproject.org, except 
ClientFactory. But I think there is a GWT example project in the SDK that 
uses the ClientFactory pattern.

UiBinder: http://www.gwtproject.org/doc/latest/DevGuideUiBinder.html
Activities & Places for managing 
navigation: 
http://www.gwtproject.org/doc/latest/DevGuideMvpActivitiesAndPlaces.html
MVP using 
UiBinder: http://www.gwtproject.org/articles/mvp-architecture-2.html
RequestFactory: http://www.gwtproject.org/doc/latest/DevGuideRequestFactory.html
Editor 
Framework: http://www.gwtproject.org/doc/latest/DevGuideUiEditors.html



-- J.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to