Last week Jim McKeeth introduced DataSnap clients for Android with a very nice video, linked at the bottom of this page. He showed how to build a client using the same technologies available for all other platforms Delphi supports.

To build my demo I created a DataSnap server, based on HTTP and exposing the classic ReverseString method and a dataset (using a TDataset Provider). This server application runs on a Windows server and could be turned into a service. Next I build a client for Android. I created a client data module and the proxy classes for the server methods using the simple DataSnap client wizard. Next I created a form, plugged in a TListView control, and used the Live Bindings Designer to configure it.

As you can see below, the server's data is already visible at design time, which makes it very easy to create the UI of the application, as you don't have to deploy and run it to get a feeling of the output. This ability of seeing data at design time on mobile is pretty unique to Delphi:

For this demo, I enabled grouping. First I have to sort the database by country (the grouping is based on the change of a value), and next I added the item text and header text for the groups (ItemHeader.Text) from the database data by dragging them visually:

Needless to say, this runs fine on my Nexus 4 phone, as long as it is on the same WiFi network of the server, so that the two can "see" each other. Here is the output on the phone, after reversing the "Sample" string and opening the dataset with the Populate button:

Finally, here is Jim's video from YouTube, with all of the steps for a similar application: