Wouldn't it be nice if there was a qmlscene for iOS in the appstore...
-
When submitting bugs on desktop platforms, if it's demonstrable from a standalone, minimal qml file with qmlscene or qmlviewer, by far the easiest way to demonstrate the issue is to simply attach the qml file to a Qt Jira issue with some "when I run this with qmlscene I see X but I'd expect to see Y" comment. Typical example QTBUG-42392 .
However, in the case of an iOS only issue... there's no so conveniently readily available common-to-all-Qt-community execution tool, so far as I know.
The obvious solution would be a qmlscene for iOS which can run qml files out of the app's Documents/ area, and have qml files loaded to that area . Now I assume the reason such a generally useable doesn't already exist (AFAIK) trivially installable from the appstore isn't because noone has thought to create one, but because Apple's app-store terms and conditions prohibit creating such a wide-open uncontrolled gateway allowing anyone to do anything it's possible to do in qml on the platform (which is basically just about anything). Or at least that's my assumption based on information from a couple of years ago that "Apple prohibits any kind of file syncing for Apps that run code or interpreters"; maybe not true any more though?
Anyway, all this begs the question: what's the best way to submit a minimal example of an iOS-only issue demonstrable from a bit of QML. Does it suffice to simply say "load this into a QQuickView on iOS and you'll see that..." or would it be preferable to include something more complete (ie also a handful of C++ files, and a .pro file).
(Or is qmlscene actually perfectly buildable on iOS and I'm the only one who hasn't got around to routinely using a personally built and developer-key signed one on iOS???)
-
Hi,
Interesting point, you should bring it on the interest mailing list. You'll find there Qt's developers/maintainers (this forum is more user oriented).
For the bug report example, I'd go with QQuick application, since it can be built and run on all platforms.
AFAIK, you are right about Apple's policy (which IIRC has been a bit relaxed in between but not that much). However I don't think It will be enforced while you are developing your application (I may be wrong about that)
The file transfer part could probably be achieved using e.g. the file sharing API however I don't know if one could easily send files without going through iTunes. Another option would be to embed a little web server and use it to get the files from your dev computer. I haven't tried that.
From a quick look at the sources, qmlscene is built if the scope is not android nor android_app, that you have the quick module and that you are not using a static build. So iOS is at the moment out since the build is currently static only.
-
I've ended up with a simple app https://bitbucket.org/timday/qmltoy ; by default it loads https://bitbucket.org/timday/qmltoy/src/5c6f7af7dfdd9343d6efdf70bdd2b84ec72aaf85/index.qml?at=default which includes a QtQuick.Dialogs' FileDialog which can be used to navigate the hosting QQuickView to an arbitrary QML file from the app's sanbox (yes the FileDialog is sub-optimal for a touch UI but it's good enough for these purposes).
QML files can be loaded into the sandbox Documents folder just fine from iTunes; just a matter of setting the right Info.plist flag before building the app (which is done by the PListBuddy commands in the MAKE-ios script in the repository).
-
I've ended up with a simple app https://bitbucket.org/timday/qmltoy ; by default it loads https://bitbucket.org/timday/qmltoy/src/5c6f7af7dfdd9343d6efdf70bdd2b84ec72aaf85/index.qml?at=default which includes a QtQuick.Dialogs' FileDialog which can be used to navigate the hosting QQuickView to an arbitrary QML file from the app's sanbox (yes the FileDialog is sub-optimal for a touch UI but it's good enough for these purposes).
QML files can be loaded into the sandbox Documents folder just fine from iTunes; just a matter of setting the right Info.plist flag before building the app (which is done by the PListBuddy commands in the MAKE-ios script in the repository).
-
Nice ! Thanks for sharing :)
-
Nice ! Thanks for sharing :)