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 :)
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.