Which GWT Layout Panel is perfect for building Mobile Friendly Website? - gwt

Ok, A Mobile Friendly Website should be very short and focus on the task, so it wont need to show the headers as in Desktop Website.
Here is What I want to design.
When user open mydomain.com in Mobile devices like Smartphone or Tablet. They Will see
Email:
Pass:
Login
Registration
Explanation
About
When they CLick Login they will go to a page that lists all the products, the Page Should has "Home" link the Back button
Home Back
Product 1 , some other info
Product 2 , some other info
Product 3 , some other info
......
When user clicks on a product, it will show the details of the products
Home Back
This is Product 1
Detail info of product 1..
If user hits "Back" button then it will go back to the previous page (ie, the list of products page).
Note that: in the home page, we also have "Registration", "Explanation" & "About" Buttons, but we will never show these buttons in any other pages except the home page.
So, my question is:
Is there any Gwt Layout panel that can help me to achieve that Simple Design for Mobile Friendly Website?
The only 1 I can see is the TabLayoutPanel, but the headers are always appear in all pages.
What about "StackLayoutPanel"? How it look like? & is it good for Mobile Website?

It's better not to use any LayoutPanels in mobile apps. Ideally, you should not use any widgets that implement RequiresResize interface.
Such widgets rely on JavaScript to resize them. This is very slow compared to native browser layout mechanism. It also requires much more code. The difference is not significant on desktop, but very important/noticeable on mobile.
A good mobile library should rely entirely on a native browser layout mechanism, like a flexbox model. This is the key reason to consider mgwt for mobile development.

None of the widgets included with GWT are primary thought for mobile, so I recommend that you use another library like m-gwt, gwt-mobile, or touchkit.
Anyway there is a very simple mobile web example application in the GWT trunk which you can use as reference. They use DeckLayoutPanel since you can add multiple views and let it to animate between them. You can try this live demo from a mobile device (you can append formfactor=mobile/tablet/desktop to switch view implementations). The demo is very old, without using modern CSS3, but helpful.
So, if your application is very simple use DeckLayoutPanel, but if it's going to getting bigger, it's better to consider a mobile specific library.

Related

Facebook Tab on pages

Whats the best way to develop a tab on facebook in a facebook page with content inside it? Would it just be html within that tab?
Easiest way is to install a 3rd party iframe App on your Facebook Page. You can find these Apps by searching for "iframe" in Facebook's search. Once you have one of these Apps installed, you can customize the HTML/CSS/JS of the iframe, which will then be reflected on you Page Tab. Alternatively, you could create your own Facebook App and install it as an iframe in your Facebook Page. This will achieve the same thing, and may give you more control, but you will have to host the html/css/js files yourself and it will be more work.
I recently have the same need.
To just place a facebook tab containing just a static html with text and image.
Here are the steps. It can be quite a nightmare to review the documentation of Facebook since it is always in change.
In the home page, click in the settings button. There is a link "Create application". You have to be sure to be in the Facebook development section
In the Create Application home page. In the upper menu there is the button "Applications". Here will be listed all your applications. If this is the first time, again the button "Create a new app"
3.Enter the information requested. Name of the application, an identifier (I prefer the same display name without spaces) and choose a category.
As a security step, a captcha is shown. Just fill with the characters in the screen.
Since your tab is an html. You have to host this file in your own server in order to have a path. The first tricky thing here is to convert this file into a php, asp, or similar extension. since Facebook uses GET or POST protocol to send information. You have to ensure that your file understands this requests. So, your server must accept the corresponding programming language. Even if your tab doesn't have any real code.
The configuration of your app is shown in screen. In the left menu, the option "configuration" displays the options to activate your tab.
click "Add plattform" button and select Facebook tab
fill the information required with the corresponding URLs. Note: Facebook always requires secured URLs so make sure that your server or hosting service has the SSL certificate validated.
Upload the image of your tab to be shown in the home of your profile in your tab section.
ok, so far we are good. Now. This was a long search. There is no longer the "Add to my webpage" link anywhere. So use this link to access to that hidden link. here Basically you enter the facebook app id and the URL of the hosted file.
Then you select the facebook page where you want to link this tab. And that's it!
note: the alternative to the link is this: (https://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&next=YOUR_URL )
Hope this helps. It was a waste of time when I have to search for the details so I want to share this.

Facebook Dev: What is this?

Okay so for this page:
http://www.facebook.com/ESPN?sk=app_224097940938597
Which appears on the left hand bar between ESPN Fanwhich and ESPN Live Chat.
That isn't a canvas but it isn't a static page that I can gather. I found this tutorial: http://www.kimwoodbridge.com/how-to-add-a-custom-tab-to-a-facebook-fan-page/
But that is creating static content.
What I'm wondering is how I can create a dynamic page within a tab?
To create a "dynamic" page within a tab is pretty easy. Install the Developer's App and create a new application. There are tons of posts all over google about creating new Facebook apps, so you should be able to find those pretty easily.
After you create a new application, you set up the Tab information for it under "Facebook Integration."
The way tabs work is they create an iFrame in the Facebook canvas that loads a page from your webserver. You can do whatever you want within that iframe to make a dynamic page. Also, since it's an iframe, you can have links that go all over the place and build a whole mini-site which works inside the Facebook canvas.
Basically, you do the same thing you would normally do to create a dynamic page/site, and set up a Facebook application that points to it. There are a few caveats to building Facebook applications, but they're hard to enumerate without specific scenarios. The biggest one (and it's well documented) is that the size of a tab is 520px wide, so whatever you build has to fit within that width. The length can be whatever you want, Facebook has APIs in place that let you automatically resize the iframe as needed.
Good luck, and welcome to Facebook programming. Prepare to rip your hair out, because everything changes every 4-6 weeks :x

How to take a screenshot of a website

I am building a web browser for iPhone in Xcode and the "home page" of my app is a speed dial page which provide 6 slots for users to add their favorite website. Each slot will then display a screenshot of the website. So what I want to do here is to grab the screenshot from the link input by users, for example, "http://www.google.com". Is it possible to do this with cocoa touch?
In case anyone want to have a similar function like this, I did find a way to do it but not sure whether it's the best way of doing it. Or maybe now there are libraries or plugins out there that provide this function already.
My solution
After users have entered a website url, you need to create a temporary UIWebView and load the url (do not make it visible to the users). After the UIWebView finished loading, you make the UIWebView visible and then take a screenshot, after that, make the UIWebView invisible again immediately (or simply destroy it). In this case, you will get the screenshot of that website and users won't notice what just happened.

MVC Facebook application - dual template

Maybe this is a stupid question and I did not understand exactly how Facebook applications work but here it goes
I want to implement a small e-shop as a Facebook application and for the products to have like button. The application will be instaled on a business page.
The problem is that the link for the like post on the wall will be to the actual eshop not to the facebook application on the business page.(or is it possible to make it to the application (eg. when you click the browser goes to the business page, selects the eshop tab, opens the product)?)
So actually I need to make a eshop site with 2 templates one for outside view and one for IFrame facebook view.
Is it possible to detect (from code-behind not in javascript) If the request is from the iframe or directly from outside?
Or the solution is more simple.. create a small version of the shop for browsing products only to be viewed in facebook and a full shop for outside view and the only relation between them is that when you click the like post from the first one you go to the second one?
I think I have found a solution...
I have created 2 domains that point to the eshop
shop.domainname & facebook.shop.domainname.
And in code behind I can check the Request.Url.Host if it starts with facebook.
For the facebook app the canvas url will be with facebook.shop.domainname and the links from the like button will be for the shop.domainname.
In this way I should be able to use 2 templates for the site and detect witch one I shoul use....

titanium webview - go to default browser when clicking links

in titanium, i'm using the webview to display a wordpress blog page, that is already formatted for mobile browser. instead of writing my own interface, this works as a good work around. the apps sole focus isn't the browser.
but my issue lies, when the user clicks a link outside of the initial displayed domain. i only want the main domain to be displayed in the apps browser. if any other link is clicked, that takes the user outside of that domain, i want to have it open in the phones default browser.
can anyone point me in a direction for this. i tried adding a listener to try and catch link clicks, however, i've been unsuccessful.
thanks
in this blog posting I show how to find links in a webpage and change the link behavior. Using the same method, you can intercept the links and redirect to opening the URL in the devices default browser
One solution would be to catch the onclick() Event by Javascript inside the WebView (your blog code) and handle this by a custom handler. Maybe you can inject the javascript event handler code into the running WebView through Titanium.
Another solution is to make your blogposts readable for app technology and create a new data interface. This is the way I would do. For that I would use some kind of JSON data format and a simple REST Interface to get the data.
I don't think bove solutions are that simple. If you want an app with "great feeling", you'll have to handle the events by your own. Maybe Phonegap would be a better solution four your problem. But there you will still need a kind of REST/JSON interface for your blog data. The idea behind an app is, that the main code is in your app and you get the content from a remote source. This way you'll get an advantage compared to a simple browser optimized site.