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

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?