Migrate Existing GWT Project to GWT Mobile Application and PhoneGap - gwt

I have an existing gwt project. I want to run it on various mobile platform. So I choose GWT Mobile and PhoneGap would be the ideal to start with. But the project is quite big, code-wise. Is there some tool available to migrate the code to new gwt-mobile(m-gwt) and gwt-phonegap? Or I have to write the code from scratch?
Regards,
Sandip

As far as I know there are no tools to migrate the code from gwt to mgwt. The code changes should be some 20 % percentage of your project, if you followed MVP pattern suggested by GWT. If you would have followed MVP, then you can reuse all the layers except View layer and in any case I don't think you can just replace GWT components with mgwt components. As the mobiles have a different form factor and usage patterns, you will need to design your views suited to mobile. Just scaling down the website to mobile form factor will not provide a good user experience. So the page designs needs to be changed and you will need to code for that using mgwt and where ever you want to access the native layers of the mobile, you can use gwt phonegap.

Related

Vaadin Touchkit or mgwt

I am evaluating possibilities to create mobile hybrid Apps with GWT and Apache Cordova / PhoneGap. I already build a small prototype with mgwt and liked it, but I would like to research a few other possibilities before starting the project. Therefore I took a look at Vaadin and its AddOn Touchkit.
I have the following questions:
Is it possible to use the Vaadin Touchkit Addon in a Client-Side Application which does not need a permanent server connection?
In the mobile chapter of the documentation an example is shown that is a Server-Side Application, as far as I understand it and therefore would need a server connection for each UI event. Please correct me if I'm wrong, I have no experience with Vaadin.
Is there any difference between a "normal" GWT App and a Client-Side Vaadin App?
Does it has any advantages to use Vaadin Touchkit instead of mgwt?
In general is Vaadin Touchkit comparable to mgwt and if yes which are the main differences?
You can build a Vaadin TouchKit applications that work offline. The "Parking Demo" shows this: http://demo.vaadin.com/parking/ (Source code here : https://github.com/vaadin/parking-demo) By default, default the application is online, but for the data entry the app uses offline (client-side-only) approach.
If you are building a client-side Vaadin app you would still use the TouchKit widgets. Until version 3 TouchKit widgets have followed the iOS native widgets, but v4 introduces new styles that are more device agnostic and better suitable also for Android devices.
The most prominent difference (and advantage, if you wish) of Vaadin TouchKit is however the default server-side programming approach. It is very quick to build mobile optimized web applications - especially if you already have an existing Java web application and business logic in place. For client-side apps the visible difference is the look-and-feel of the Touchkit and mgwt widgets.
Generally this is also where it boils down to: If you are quite ok
to have parts of the application running online (data on server) and
need the offline-mode is only needed for some parts of application,
Vaadin TouchKit is very quick and efficient way to build decent looking apps. On the other hand, mgwt
gives you direct start on the client-side-only applications and is
maybe better optimized for that.
You had already found out that both suffer from the sandboxing of HTML5 applications. While camera and location APIs are available a solution like phonegap is still needed to really integrate with the device and match native applications.

Deploy GWT app into Google Play

I want to deploy my GWT app into Google Play (and maybe App Store in the future). I don't need to use native functions in my app. Just user, password, and I will show one report.
I found mgwt project(http://code.google.com/p/mgwt/). Is mgwt + gwt phonegap the best approach?
Google blog: http://googlewebtoolkit.blogspot.com.es/2012/07/gwt-support-for-mobile-app-development.html
I actually build mgwt and gwt-phonegap and so its kinda hard for me to say that it is the best way, because I am somewhat biased.
But what I can say is that I know many many developers who have built their applications with mgwt and gwt-phonegap and have put it into the play store and the app store as well. The framework works very nicely. Since I am on the GWT Steering Committee I sure hope that I know how to build GWT frameworks, so mgwt should be doing most of the things just right.
If you are looking for other mgwt developers take a look at our mailing list: https://groups.google.com/group/mgwt and feel free to take a look around at http://www.m-gwt.com

frameworks choosing strategy for multi platform webapp

Issue
What is your strategy for building a desktop-like webapp that needs to be deployed to desktop web browsers and on mobile devices(Android, IPhone, etc)?
A course of action could be to firstly select the best framework for building the part that runs on computers(i.e. not mobile devices). Being a desktop-like app, a good candidate framework is GWT+ExtGWT since it provides:
Java-based development which is much scalable/solid than developing in Javascript via ExtJS for example
Good debugging
Good testability
Next, you'd want to deploy this app on mobile devices too. So how do you go from here? Write a separate implementation(separate from GWT) for Android, another one for iOS(in objective-c), another one for Windows Mobile, and so on?
Related
Related to above, I saw the presentation of PhoneGap which claims you develop in Javascript+HTML and it generates code for all mobile platforms: Android, iOS, etc.
However, PhoneGap is not an option since I don't think it integrates well with GWT and more important, it doesn't generate a native app which can take advantage of features like backgrounding, services, etc(see http://www.youtube.com/watch?v=xHXn3Kg2IQE for why native Android apps are much better than browser-based ones). There may be other frameworks like PhoneGap out there that I'm not aware of though but at this point I only see:
one implementation with GWT
one implementation for Android
one implementation for IPhone
and so on ...
If you are already planning on developing for multiple platforms, it is a good idea to at least consider cross platform frameworks like PhoneGap or Appcelerator. Beyond the fact that you are developing for multiple platforms there are a couple of other important questions to consider.
Do you want a web version as well?
Do you need intensive graphics support?
Do you have loads of money to target multiple platforms?
Do you have loads of time to target multiple platforms?
You also point out two more great questions to consider in debugging and testability. In terms of unit testing, any native platform is very difficult to unit test. Debugging is pretty easy for most native platforms.
Regarding PhoneGap, it is important to know a few things about it.
You can write PhoneGap plugins. A plugin is essentially native code for any given platform that can do pretty much anything you would want to do in native code -- background services, opengl, etc -- and make it accessible to JavaScript in the web view.
There are several open source projects that you might be very interested in such as GWT-PhoneGap, QUnit for JavaScript unit testing, and Weinre for Firebug like debugging.
Hope that helps!

GWT as offline app, to be deployed onto an iPad

I often use GWT for web UIs. I have heard of it being used a fair bit in conjunction with Gears for offline solutions (probably nowadays HTML5 "offline storage" is all the rage) and I'd like to experiment with building a GUI in GWT and use it on my iPad. Tips/tutorials on how to deploy it onto the device to act as much as possible like a resident "App"? This is just a curiosity/experiment to fill a week-end... (I can "free" the iPad for the experiment if need be yet I am sure a lot can be done without doing so...)
phonegap(now Apache cordova) makes available the ios/android native features like camera,device file management,contacts,geolocation etc to our app.
GWT and mgwt :::
Using mgwt,gwt( both are opensource) and GwtPhonegap we can develop cross platform mobile applications which can behave exactly like native apps. in performance perspective these apps are bit slow when compared with native apps but the convenience is that the app can be installed in multiple platforms.
GwtPhonegap
GwtPhonegap acts like a bridge(provides abstraction) between device native functionalities and to our app. We can get good look and feel using css.
We have support for gwt-html5-database for which to perform cache storage.gwt-html5
Try using gwt in conjunction with phone gap. It will expose many of the native Apis to make them available for use in gwt.
https://code.google.com/p/gwt-phonegap/wiki/GettingStarted
Additionally I've had very good experiences using the m-gwt as a UI framework. MGWT makes creating native looking UIs using CSS+JS very easy.
http://www.m-gwt.com/

iPhone web application developed using ASP.Net

We are developing an ASP.Net web application and need that application to work properly on iPhone
Are there any memory constraints for an ASP.Net web application to work properly on iPhone
are there any issues with usage of ASP.net controls like gridview/ tab view etc.
would there be any issues with 3rd party controls like Ajax RADSchduler from Telerik
any other other constraints for a web application to work on iPhone.
Thnx
Amit
If we are talking about a standard asp.net website, memory constraints aren't really the issue. Asp.net just generates (ugly) html with some javascript. Nothing really special about that. Memory in this setup is important server-side. Offcours asp.net tends to generate lots of bloat when viewstate is enabled (without it, too). And this IS an issue when it comes to bandwidth, especially for mobile applications.
When using the Asp.net Ajax Toolkit, it should work crossbrowser. Apple Safari version 2.0 or later versions are supported.
Checkout the docs for the 3rd party controls, which browsers are supported. If Safari is supported, it should work.
But i would suggest using asp.NET MVC instead of standard asp.net controls, because it allows full control over html and javascript. This will ensure minimum use of bandwith and maximum javascript performance. Or any other language/framework with full control like php/codeigniter or python/django. And maybe a javascript library like mootools, jquery or prototype.
I think having a real iPhone to test on would be most optimal.
As for integrating third-party components you should be able to ask the vendor about their support. These Telerisk and Infrastigistic components look great, but you need to ask yourself do you need that amount of power and options, if you follow the mantra of the iPhone and Apple in general you'll want to keep it as simple as possible.
One approach is to develop a different view for the iPhone, keeping the display basic and optimized to the dimensions of the screen and the touch system rather than cursor.
Since Safari is based on Webkit you can get some basic compatibility testing on your local PC.