Ok, well, I am personally more into C++ side, and have made just a few simple projects in QML, so I might not be the best guy to ask. But for mobile, QML is definitely a great choice - very flexible, very (and here I mean really, REALLY very) easy to learn, and yet quite powerful. About the viewer - again, it's just one of a few options, and there will be major changes here in Qt5. For the time being, let's focus on Qt4. You can use QML viewer to run plain QML/Js projects. So, it's not a necessity, more a convenience helper. You can easily create your own app without the viewer, simply use QtDeclarative module - the widget that displays QML is called QDeclarativeView, IIRC. It also gives you additional benefit of C++ - you can easily code a "mixed" app, where some parts are done by QML, even by some graphic designers with no programming skills, while coders make the C++/ JavaScript backend.