RE: what's the difference between com.vaadin.ui.Grid and com.vaadin.client.

In a normal server-side Vaadin application, you can only use the com.vaadin.ui.Grid.

The com.vaadin.client.widgets.Grid is the client-side implementation, which is used for rendering the Grid in the browser. You can also use it in client-side code if you make your own widgets or pure client-side applications.