Hi Superpelican

When programming Qt, you can mix and match QML, C++, and Javascript freely, using whichever of these that is best for the particular task you have in mind. I don't think SailfishOS changes this in any way.

With your questions in mind, I ran through my major app which is mainly QML, but with some C++ and Javascript thrown in for good luck. It is still largely a Harmattan app, but that is directly comparable to Sailfish in the context of your question.

I used Javascript for Database access via SQLite; as well as lots of inline javascript with my QML files.

I used C++ where I could not find a way (or an elegant way) to do something in QML. I actually have two "plugins". One allows me to control the LED flash (as an emergency flash), the other gives me SMS functionality. Each of these has its own class.

These are both registered in the main.cpp by qmlRegisterType, which Thomas P points out "is another way of doing things".

Harmattan has a qmlapplicationviewer.cpp, which seems to be a direct equivalent of the sailfishapplication.cpp. Interestingly the qmlapplicationviewer is headed with a comment advising not to change it.

My use case is a little different from yours. In my case the main control is from QML, with C++ / javascript providing helper functionality (flash the led, send an SMS, persist settings to DB etc.)

Chris


Zitat von superpelican <superpeli...@zoho.com>:


Are there any big benefits to using the functions/classes defined in sailfishapplication.cpp compared to just creating a "normal" QML application (by just creating a QDeclarativeView object etc.). Does doing it the Sailfish specific way give you a performance optimization advantage? When reading through sailfishapplication.cpp I find things like a #ifdef statement that calls a qDeclarativeView() function which is in a special MDeclarativeCache namespace, is this for example a special, optimized function? I also see that QGLWidget is #included, does doing it the Sailfish specific way give you a openGL accelerated QML UI on Sailfish?

The Sailfish specific way complicates things, especially writing a hybrid C++/QML app. I'm still quite new to programming and Qt/QML especially and I'm already having a hard time figuring out how to let QML/C++ communicate with each other. Luckily there is lots of documentation about it, but there isn't any Sailfish specific documentation about writing a QML/C++ hybrid app.


Thanks in advance,


Superpelican :)


P.S.: Thomas Perl thanks a lot for your help and the handy webpages. ;)




_______________________________________________
SailfishOS.org Devel mailing list

Reply via email to