5.5 Google Web Toolkit with mgwt
GWT and mgwt are open source and free of charge,
also for commercial projects. Extensive support is
also freely available, at least for GWT, so that the cri-
terion License and Costs is fulfilled well (1). Since
development is mainly sponsored by Google, GWT
depends on Google’s steady contribution to the frame-
work. There have been some concerns about Google’s
long-term strategy with respect to GWT (“Comments
on Google Web Toolkit Steering”, 2012), but so far, it
received continuous updates at least twice a year and
its popularity, also within Google itself, should en-
sure its viability for the near future. mgwt, however,
relies on a single free-lance developer and has no ad-
vanced project structure. So far, it has been updated
regularly. Overall, Long-term Feasibility, especially
of mgwt, has to be seen as uncertain (4).
While GWT’s documentation is comprehensive
and easily comprehensible, mgwt lacks a thorough
documentation. Information is scattered among var-
ious resources, namely mgwt’s wiki, blog, API docu-
mentation, and a showcase. mgwt lacks a tutorial that
allows developers to learn how to develop with it. The
Google Web Toolkit Community (2012) is large and
offers support in a forum and on external sites. The
community forum of mgwt (mgwt User Group, 2013)
is also rather active, with approximately 70 topics per
month over the last half year, and mgwt’s developer
answers questions on a daily basis. The active sup-
port partially offsets the mediocre documentation, so
that Documentation and Support are satisfactory (3).
The initial steps with mgwt are rather hard, be-
cause a newly created project already contains more
than ten classes and still needs additional ones to work
properly. In this situation, the lack of a complete tu-
torial becomes especially noticeable. However, after
mastering the initial hurdles, further familiarization is
easy thanks to mgwt’s clear structure and its easy-to-
understand API. Typical Web developers need to learn
Java, while, of course, GWT provides an advantage
for Java developers. In summary, Learning Success is
hindered at first but fast later (3).
Developing Web apps, even complex ones, with
GWT is comparatively easy. Programming in Java
enables developers to use first-class development en-
vironments such as Eclipse, which offer code com-
pletion and compile-time type checking. Hence,
tool support is considerably better than it is for
JavaScript programming, partly due to Java’s static
typing. Java’s object-oriented nature offers sophisti-
cated means for structuring the source code of an ap-
plication. GWT imposes no restrictions on the archi-
tecture of applications, making it suitable for smaller
and larger projects alike. At the same time, the frame-
work provides a large set of often-needed features
such as AJAX handling and internationalization. The
API of mgwt is also directly accessible. Hence, im-
plementing the UI programmatically is not as cum-
bersome as it is in other approaches. The develop-
ment life cycle of GWT is slightly more complex, be-
cause an additional compilation of Java to JavaScript
takes place. However, Google offers free plug-ins for
Eclipse that handle these steps. Furthermore, exten-
sive debugging facilities are available. In contrast,
setting up new mgwt projects is complicated and re-
quires several shell commands. All in all, the Devel-
opment Effort is acceptable for all kinds of projects
(2), especially for developers with experience in Java.
As the existence of mgwt itself demonstrates,
GWT is extensible by everyone, mainly through
object-oriented means. Google and third-parties pro-
vide plug-ins for a wide range of functionality such
as maps and geo-location. Extensibility is good, al-
though there is no formalized plug-in mechanism (2).
Java source code of GWT- and mgwt-based apps
lends itself well to a modular organization with sepa-
ration of concerns. Although some boilerplate code is
necessary, overall Maintainability is good (2).
The user interface is primarily influenced by
mgwt, which provides mobile-optimized widgets and
behavioral elements. The set of widgets provided by
mgwt is limited and smaller than that of jQuery Mo-
bile: It includes only standard buttons, one default list
widget, and fewer form elements, most with a default
appearance only. There are no advanced widgets such
as map views. The behavior of widgets is noticeably
optimized for mobile usage, for example with pull-
to-refresh functionality for lists. Additionally, typical
animations for page transition are available. All in all,
mgwt provides good functionality with respect to mo-
bile User Interface Elements (2), since the limited set
of widgets is well-optimized.
mgwt has a particular focus on native appearance
of Web apps. Therefore, it supplies CSS themes
for different mobile platforms and devices, including
iPhone, iPad, Android, and Blackberry. The widgets
adapt to the respective platform and mimic the ap-
pearance of native UI elements as precise as possible.
As developers may further change the appearance us-
ing CSS, mgwt achieves a Native Look & Feel (1).
The compiler of GWT tries to reduce the number
of files to download and their size by removing un-
used code and optimizing the generated JavaScript.
Hence, a mobile Web app with GWT and mgwt can be
as small as 200 KiB. Additional support for HTML5’s
application cache ensures a fast Load Time (1). In ad-
dition to a native appearance, mgwt also tries to match
WEBIST2013-9thInternationalConferenceonWebInformationSystemsandTechnologies
218