Google I/O 2011: High-performance GWT: best practices for writing smaller, faster apps
Why Stack Overflow recommends it
Stack Overflow users link it when answering GWT questions about code splitting, Activities and Places, cell widgets and compiler-level performance tips.
Recommended by 6 people across 6 different months, 2012 to 2013.
What it is
A Google I/O 2011 talk by David Chandler on making GWT apps smaller and faster. It covers what the GWT compiler optimizes, common performance pitfalls such as RPC type explosion, lightweight cell widgets, and code splitting with Activities and Places.
What people said
Recommends broc.seib · 2012-04 · Stack Overflow · on “GWT: library for encoding/decoding arbitrary data in URL fragments”
GWT has a built-in framework called "Activities and Places" that employs these url fragments. It makes bookmarking and history managment possible. [LINK] Also, watch this I/O video (starts at 18:15) to see how this works. [this video]
Recommends Boris Brudnoy · 2012-07 · Stack Overflow · on “GWT Model View Presenter , Reusing Presenters ? Or Presenter - Presenter Communication”
When I read your question it felt like the answer should be an article, something along the lines of Stateful Presenter Architecture for GWT Apps . This is StackOverflow, however, which is all about conciseness, so let's see: Answers 1. Is it possible to re use instances of presenters without creating a new one on history change? Definitely. Nothing prevents you from switching between a bunch of singleton presenters injected with your views (the switching will happen in your implementation of ActivityMapper [LINK] ). Note the assumption from hereafter that your presenters are Activities [LINK] . 2. Is there a way in MVP pattern to pass controls between presenters with values persisting ? Sin
Recommends guillaumBrisard · 2012-09 · Stack Overflow · on “Fragments, GWT.runAsync and AsyncProvider”
Code Splitting and MVP are 2 differents things, it means that you don't need MVP for code splitting, but it's a very good thing to do with MVP. Broadly speaking, a UI with GWT, it's lot of components (View/Presenter) put together, each component can be code with MVP or not. And when a component call an other component, you must use GWT.runAsync , if you want to split your code. So for the first question: yes, AsyncProvider works with MVP. For the others questions, I invite you to watch the Google I/O 2011 [this video] at 32:55, it's explained well. Personaly I use and recommend Code Splitting with Places & Activities, see issue 5129 [LINK]
Recommends Oliver Jan Krylow · 2012-10 · Stack Overflow · on “Does GWT's UiBinder really improves app performance?”
It seems intuitively right to me, that UiBinder-Code can lead to longer start-up times. here is why: Imagine you are trying to define 20 Buttons in your view. In your declarative layout you would declare each button explicitly, while in your imperative layout you would most likely use a for-loop. It seems likely that this would lead to smaller JS size for the imperative layout. Also consider that in real world applications, this difference might be negligible, as views usually are the smallest part of a project. The documentation of UiBinder [LINK] seems to suggest, that it is more about runtime performance, so if you are interested in decreasing load time I suggest you take a look at Code S
Recommends Peter L · 2013-06 · Stack Overflow · on “In GWT, why shouldn't a method return an interface?”
This and other performance tips were presented at Google IO 2011 - High-performance GWT [this video] . At about the 7 min point the speak addresses 'RPC Type Explosion': For some reason I thought the GWT compiler would optimize it away again but it appears I was mistaken.
Recommends Zied Hamdi · 2013-12 · Stack Overflow · on “Making a GWT app multipage”
Right Patrick, In addition, there is no way to use the code splitting method for js libraries that are not in your project (not GWT). So splitting pages is right to avoid js libraries you use for your admin code but you don't use in your front office, that's ok if you include the js in the page and you don't inject it through GWT. Otherwise it's your responsibility to split the code (have a common package that is available to all, but individual loads per 'page') In theory, they say, the good split point is an activity (but I'm not convinced, since I have many activities in my pages, and loading each script alone could be bad for performance, so it's a per case analysis), you can see all wha
Cites IAmYourFaja · 2012-10 · Stack Overflow · on “GWT Designer and Cell Widgets for Performance”
After watching this Google I/O video on GWT performance [this video] it is obvious that the GWT team wants developers to embrace the so-called "Cell Widgets" over normal (clunkier, slower) widgets. I'm new to GWT and am using GWT Designer to help acclimate me better and learn the API. In the GWT Designer palette, there is a section for Cell Widgets, however the selection to choose from is greatly restricted. For instance, if I want to end up with an HTML password field, my only option is PasswordTextBox from the normal (non-Cell) widget pane. There is no Cell-equivalent such as CellPasswordTextBox . Is this because of some short-coming of GWT Designer? You'd think that if Google was promoting thi
Cites rodrigo-silveira · 2013-07 · Stack Overflow · on “What happens with the old view or DOM elements in the browser after a view transition?”
They get cached in memory and copied into the DOM when needed. When you navigate away, they simply get deleted, but the cache is still there. I just watched this on YouTube the other day. I think it was IO 10 or so... Let me go find you a link to it... I think this is the one: [this video] If memory serves me right, they talked about view caching during Q&A