When I first saw the demo of jQuery mobile I was super impressed. Every buttons and gesture feels like a native app. Elements such as the header and footer gives it a strong sense of iOS feel. One couldn’t tell the difference if they didn’t see the address bar. However, after coding HTML 5 mobile apps for assignment 2 and final assignment, the flaws of jQuery mobile starts to surface.
1. Bad documentation
Even thought jQuery mobile is developed on top of jQuery, they have very bad documentation. Most of their documentation is demo of the features they have with little details on how to implement it.
2. Page transition
For a page transition to work, jQuery mobile will load the contents inside the DOM of the targeted webpage into a container. In other words, dynamic scripts will not be ready as only the contents inside the DOM will be retrieved. When transverse to other pages, jQuery mobile styling will be lost and we will need to reapply the styling on to the new content. When we thought we have solved the problem, another problem arises. It doesn’t reflect the new styling and only the solution is to fix it by clearing the whole page. This fix brought up yet another problem of a white screen flash when users navigate the pages. We have yet to find a solution but we will continue looking. It’s the tradeoffs that we have to pay for using the effects.
3. Persistent footer
In creating a user-friendly environment, we added the footer that acts as the navigation bar. The footer will automatically update its location and stick itself to the bottom of the screen. The footer works our well when tested on the computers. However, it’s a disaster when we tested it on the mobile phone. A typical user will swipe their fingers and expect an immediate feedback. But since the footer is not part of the OS, it will update the position on the go. And since we have to clear the page every time we load, there is a jitter lag of the footer as it reclaims its lost position.
4. Platforms
Building an HTML 5 mobile apps open it access to a wide range of phones. This may sound like a good thing but the different browsers on different platforms perform differently. What works on a platform may not work on the other browser. A style that works perfectly on Chrome didn’t render properly on Firefox and even worst on IE. As a developer, we have to pick the best elements that work out well on the popular browsers.
In short, the technology is just not mature enough to be widely adopted. There are still a lot of stuffs to iron out.
HTML 5 mobile app is the future but not now.