LINUX.ORG.RU

Про qml базово.

 ,


1

2

1. Можно ли держать qml (содержащие в себе полностью приложение) на своем собственном сервере? Приложение его выкачивает для своей работы. Приложение хотелось бы разместить в apple\google store.

Можно, но с айфоном не сработает, чтобы динамически загрузить виджет нужно запускать виртуальную машину, а у эпла политика - никаких виртуальных машин на мобилках. Туда нужно кумээлкомпилером найтив собирать.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)

1. Можно ли держать qml (содержащие в себе полностью приложение) на своем собственном сервере? Приложение его выкачивает для своей работы.

Технически — да.

Приложение хотелось бы разместить в apple\google store.

По условиям пользования сторами — нет. Можно только в веб-вью грузить сторонний контент, а html-рендерилка QML пока очень сырая.

ChALkeR ★★★★★
()
Ответ на: комментарий от ChALkeR

У эппл ограничения прописаны в лицензии примерно таким образом: можно грузить и выполнять скрипты внутри webkit\webkit framework.

Ну а разве qt не состоит из двух частей: 1-я часть это движек webkit, который в частности используют эппл и гугл «QtWebKit is based on the Open Source WebKit engine.» 2-я часть - native c++ для виджетов и среда их выполнения между 1-й и 2-й находиться QtWebKit Bridge, который и осуществляет взаимодействие между собой двух частей.

microbash
() автор топика

Лицензия:

3.3.2. An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple's built-in WebKit framework.

microbash
() автор топика
Ответ на: комментарий от ya-betmen

Можно, но с айфоном не сработает, чтобы динамически загрузить виджет нужно запускать виртуальную машину, а у эпла политика - никаких виртуальных машин на мобилках. Туда нужно кумээлкомпилером найтив собирать.

На самом деле нет.

CrossFire ★★★★★
()
Ответ на: комментарий от microbash

Хотелось бы мнения именно экспериментаторов. Неужели никто не пробовал до сих пор? Странно.

Вопрос только в том, что такое приложение, скорее всего, не пропустят в стор, а экспериментировать на своем компе можно сколько угодно, например вот есть статья по теме: https://habrahabr.ru/post/268187/

CrossFire ★★★★★
()
Ответ на: комментарий от CrossFire

Учитывая с какой скорость приложение будет работать без джита то таки да. Хотя если там калькулятор то ок, можно.

ya-betmen ★★★★★
()
Ответ на: комментарий от ya-betmen

Учитывая с какой скорость приложение будет работать без джита то таки да. Хотя если там калькулятор то ок, можно.

В iOS начиная с 8 версии jit разрешен, а более ранние сегодня уже не поддерживаются.

CrossFire ★★★★★
()
Ответ на: комментарий от ya-betmen

Не гуглится что-то, на сайте культей написано что низзя.

Да, действительно, пишут что все еще нельзя. С другой стороны производительность там вполне приличная даже для более-менее сложных приложений, я думал оно таки использует jit.

CrossFire ★★★★★
()
Ответ на: комментарий от microbash

http://doc.qt.io/QtQuickCompiler/

Lastly, some platform versions such as iOS (version 7 and earlier) or Windows RT do not permit the dynamic generation of machine code. As a fallback QML provides an interpreter to allow for the full use of QML, but it comes at the expense of a longer execution time.

Упс, мой косяк, искал глазами 8 и пропустил «7 and earlier».

ya-betmen ★★★★★
()
Ответ на: комментарий от CrossFire

Что именно нельзя?

По вашей ссылке я читаю: In-house application for iOS Easy: Open src/qml/jsruntime/qv4global_p.h, search for references to the Q_OS_IOS macro, and remove the one that explicitly disables JIT support by undefining V4_ENABLE_JIT. Just make sure to comply with all legal requirements when doing so (Apple Enterprise Developer account, proper Qt license,...).

Если выключить jit тогда возьмут мое приложение? Это главное условие размещения приложения с qml в сторе?

microbash
() автор топика
Ответ на: комментарий от ya-betmen

Упс, мой косяк, искал глазами 8 и пропустил «7 and earlier».

Они его разрешили по факту только в нативном веб-вью.

CrossFire ★★★★★
()
Ответ на: комментарий от microbash

Если выключить jit тогда возьмут мое приложение? Это главное условие размещения приложения с qml в сторе?

Оно и так по-умолчанию отключено, и просто приложения берут, но обычно контент сразу в бандле лежит, как посмотрит ревью на загружаемый — это вопрос, о чем я сказал в первом же посте.

CrossFire ★★★★★
()
Ответ на: комментарий от CrossFire

Не совсем, как я понял, они его разрешили в системном вебките и вроде как для айосей культи будут/хотят использовать его. Но ссыль не могу найти, какая то старая новость была. Но могу ошибаться.

ya-betmen ★★★★★
()
Последнее исправление: ya-betmen (всего исправлений: 1)
Ответ на: комментарий от microbash

Эппл не разрешает никакие сторонние веб-движки, даже если это тот же самый вебкит. Но конечно, проконсультируйся с грамотным юристом.

fluorite ★★★★★
()

WKWebView is the centerpiece of the modern WebKit API introduced in iOS 8 & OS X Yosemite.

Различия со старым UIWebView in UIKit and WebView in AppKit: http://nshipster.com/wkwebkit/

Пусть скрипт выполняется штатно в своем движке, но он умеет послать сообщение в натив часть, там можно это обработать, и снова выполнить нужную функцию скрипта в движке.

microbash
() автор топика

iOS 8 lets 3rd party apps use the Nitro JS engine.

microbash
() автор топика
Ответ на: комментарий от microbash

QtWebKit is based on the Open Source WebKit engine

QtWebKit не использует эппловский WebKit, встроенный в систему. Для этого нужен модуль Qt WebView

annulen ★★★★★
()

с google.store нет ограничений на обновление приложения через выкачивание qml?

microbash
() автор топика
Ответ на: комментарий от microbash

Сейчас скачал текущие версии лицензий:

Apple_Developer_Program_License_Agreement_20160921.pdf 3.3.2 ...The only exceptions to the foregoing are scripts and code downloaded and run by Apple's built-in WebKit framework or JavascriptCore,...

Apple_Developer_Enterprise_Program_License_Agreement_20160921.pdf 3.3.2 ...The only exception to the foregoing is scripts and code downloaded and run by Apple's built-in WebKit framework or JavascriptCore.

Раньше вроде разрешения на яваскрипткор не было (но не уверен).

Теперь читаю на википедии: https://en.wikipedia.org/wiki/QtScript

The current (as of Qt 4.7) implementation uses JavaScriptCore and will not be further developed. The module is deprecated as of Qt 5.5.[3]

Т.е. с версией менее 5.5 формально лицензия выполняется?

microbash
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.