My team and I have been engaged in building several cross-platform (BlackBerry, Android, iOS) mobile apps for our organization using RhoMobile + JqueryMobile + KnockoutJS. The development experience is acceptable considering the state of cross-platform mobile application development today. The frustration starts to come when using the application on the mobile devices themselves. Performance issues are the number one pain point for us at this time. I don't want this to be a rant but I would like to know what others have done to alleviate performance problems. Specifically, performance issues on BlackBerry devices. I've tried the solutions recommended in the RhoMobile docs. Perhaps there are other hints the community can offer. I appreciate any feedback you can provide.
I only have experience with Jquery mobile, and while I loved the fast paced development it makes possible, if I had the time, I would always code a native app. Jquery mobile apps work best on iOS devices due to Safari's CSS3 support. Animations like slide etc are quite choppy on Android browser and downright shoddy on Blackberry's browser.
Apart from that, Jquery mobile works by basically never switching pages. Every time you request a new page (via a hyperlink or whatever), it fetches the page via an AJAX request and inserts it into the current page's DOM (you can explicitly request this not to happen, but then you cannot 'slide' to another page). This form of navigation causes problems after a long-ish chain of navigations. Not to mention, you have to be very careful no two elements across your entire application share the same id.
I made this Jquery mobile app as a demo for a school project, so it served the purposes I needed: fast development and it served as a proof of concept.
However, for my own company's product, we are developing mobile apps, and I would never go with anything but native apps for that. It does take a lot longer to develop, so it depends on your requirement.
Addition to your comment:
Nothing that Jquery Mobile does cannot be done by Jquery alone. But, using jquery, if you add the CSS3 animations, use the single-DOM navigation style etc., you'll suffer the same issues. The problem isn't with Jquery mobile. The problem is, few mobile browsers can handle the effects Jq mobile employs. Like I said, iPhone does good. This is partly because of Safari 3's CSS 3 implementation, and mostly because the iOS prioritizes UI threads above background workers.