Using the same model classes in Android, GWT and JPA

These days, it is rather common to have a mobile-enabled web service or application, where you essentially enable your users to access the service both via a browser-enable desktop application, as well as from their mobiles whilst on the go.


It’s usually the case that the main business logic, as well as the business Model, are shared between the browser components and your mobile app: however, it is not obvious how to re-use code (or even use the same source code) when you are essentially using two completely separate SDKs, and even different JREs!


In fact, if you are using Google Web Toolkit on the front-end, there’s not even a JRE involved: as your classes will be compiled in JavaScript.


This short video shows how you can actually use the very same source files in all three layers, so that when you make changes (fix bugs, add functionality) the improvements are immediately reflected everywhere – and even better, you avoid subtle bugs that may be caused by inadvertently the code going “out-of-sync” in one of the layer.


The example is based on my Android Receipts application, which can also be freely downloaded in Android Market.

Please let me know what you think, and whether you are finding the videos useful – or you prefer the written word!


Update    Someone commented on the low resolution of the video (480p) as making it difficult to follow: I understand, and, in fact, the original video was at a higher res (720×576, 25 fps): unfortunately, uploading to YouTube the resolution gets dropped during the transcoding.
Disappointing, I know, but hardly something I can do anything about.


I would suggest instead to see also Part II of this tutorial, which further elaborates on the topic, and provides some code samples.

Advertisements

One thought on “Using the same model classes in Android, GWT and JPA

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s