GWT Support for Mobile App Development

Posted by Bhaskar Janakiraman - Monday, July 23, 2012 at 4:20:00 PM

If you’re interested in using GWT to build mobile apps and mobile web apps from a single codebase, then you’ll want to take a good look at mgwt. The following is a guest blog post from Daniel Kurka, the creator of the mgwt library.


Going mobile with mgwt and gwt-phonegap

mgwt is a library for developing mobile apps and mobile websites with GWT using a single codebase. mgwt provides native-looking widgets and effects for most of the popular mobile platforms. It also comes with a ton of other useful features for building mobile apps. We’ve detailed some of them later on in the post.

gwt-phonegap enables GWT apps to use Phonegap. With Phonegap, HTML5 applications can access the same device features that native apps can use via Javascript APIs, such as the camera, file system or contacts.

With mgwt and gwt-phonegap, you can deploy your GWT applications to any app store that Phonegap supports (such as the Google Play Store or the Apple App Store), or let your users access them as a mobile-enhanced web applications. Both projects are licensed under the Apache 2.0 License, and are available from Maven Central.

Some of the key features in mgwt and gwt-phonegap:

  • mobile widgets that are compatible with UiBinder and the Editor Framework
  • a DOM API for touch and animation events that corresponds to HTML5 and CSS3, and gesture recognizers built on top these APIs that detect the most common gestures on mobile devices
  • themes for iPhone, iPad, Android phones, Android tablets, and BlackBerry
  • auto-generated HTML5 offline manifest to support development of offline applications
  • in GWT’s development mode, gwt-phonegap emulates the Phonegap API, so that developers can debug and test Phonegap applications from within their IDE
  • support for GWT RPC in a Phonegap environment

One of the most impressive things about mgwt is how closely the widgets and effects resemble their native counterparts on each specific platform.

For example, this is how some of the widgets look on iOS and Android:























mgwt is built for performance and uses many GWT core concepts to be as efficient as possible. As mobile app developers know, performance and efficiency are critcal.

Both mgwt and gwt-phonegap are built by Daniel Kurka, who is one of the GWT Steering Committee members.

Want to learn more? Check out the mgwt homepage and the blog. There’s also a 90-minute talk on mgwt presented at the Dutch Google Developer Group (GDG), and a post on Daniel’s blog with a more detailed description of mgwt’s features.

Links


mgwt homepage: http://www.m-gwt.com
blog: http://blog.daniel-kurka.de
mgwt talk: http://www.youtube.com/watch?v=0V0CdhMFiao&feature=plcp
mgwt features: http://blog.daniel-kurka.de/2012/07/mgwt-going-mobile-with-gwt-phonegap.html
Daniel Kurka: http://www.daniel-kurka.de

6 comments:

GL Blog said...

Good idea and project.

Dragging/Scrolling a list with selectable buttons on iPhone behaves poorly because the button you drag on highlights for split moment - looks bad.

How do you handle supporting different screen sizes for images/graphics without a lot of custom runtime logic?

Rob Ferguson said...

Hi,

A GWTP port of the mgwt Showcase:

-> http://gwt-cx.com/mgwt-basic-project/index.html

Cheers
Rob

mazimadu said...

I am a newcomer to GWT, so forgive me if this question seems a bit silly.

Shouldn't Google have an implementation for GWT for android? Why use phonegap if one exist? If not, disregard this question.

Novie Rebutazo said...

This a good news to everybody, especially to those who have smart phones. Thank you so much for posting this well-explained post.

Harry Spencer said...

GWT provides a good support for all mobile application development service platforms. It is also useful in preparing themes for iphone, android, blackberry and all other phones.

maithilish said...

Please check GWT 2 Advanced Tutorial at https://sites.google.com/site/gwt2tutorial. It is a step-by-step guide to develop a complete GWT web app with full project code.