Skip to main content

Best practice discussion: When to favor a webview over a native UI in titanium?



I'm currently working on a cross-platform mobile app and have gone through the process of creating the UI of my application using the given Titanium api.





Compared to when you are building a mobile web application this is a time consuming task, because you don't have the possibility to work on the rendered UI like you can on a rendered webpage using firebug.





Especially form creation is bothersome, so I decided to build my forms using html and render them in a Webview, which worked out pretty sweet for several reasons:









  • WebViews are automatically scrollable, so the soft keyboard won't cover the input fields in your HTML form









  • You can control which keyboard type is displayed with a WebView form by setting attributes on the <input> tag.









  • You can use JavaScript libraries to add form validation, field highlighting, and so forth to an HTML form.









Although this works like a charm and the titanium documentation encourages you to use webviews for building forms, I have mixed feelings about having mixed native UIs with webviews.





My questions to you:









  • What do you think of mixing native UIs with Webviews?









  • Do you have other use cases that favor a Webview?









  • What could be general criteria for using one or the other?









Thank you in advance :)


Comments

  1. What do you think of mixing native UIs with Webviews?

    The real question would be : Do you care about the user experience ? If yes, then go exclusively Titanium/Native. Sometimes, you need to use the Webviews to get around some problems (I had one year ago) : I remember I couldn't open online PDF files with Titanium : As Android platforms didn't open the PDF "natively" (Now you can), you had to pass the pdf's path to a Webview. That was the only time I was forced to pop up a WebView.

    Do you have other use cases that favor a Webview?

    If you are you talking about frameworks that base the rendering on Webviews then :
    If you have a client who owns a full static website and tell you to turn it into a mobile application It could be useful. Or, If you aim many platforms (more than Titanium does), you can use frameworks such as PhoneGap that will allow you creating WP7/iPhone/Android/BlackBerry apps.

    What could be general criteria for using one or the other?

    Which platform are you aiming ? As I said, Titanium won't allow you exporting your app for the WP7 platform.
    Then, if you need better performances, then go for Titanium/Native apps.
    On the other hand, if you want to reuse your code, think PhoneGap.

    ReplyDelete

Post a Comment

Popular posts from this blog

Wildcards in a hosts file

I want to setup my local development machine so that any requests for *.local are redirected to localhost . The idea is that as I develop multiple sites, I can just add vhosts to Apache called site1.local , site2.local etc, and have them all resolve to localhost , while Apache serves a different site accordingly.