Qt auch auf Mobilgeräten?

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
Benutzeravatar
Kebap
User
Beiträge: 717
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Hallo,
ich habe eine App in Qt entwickelt und möchte die zukünftig nicht nur auf dem Desktop, sondern auch mobil verfügbar machen, am besten auf Android und IOS usw.
Gibt es da empfehlenswerte Bibliotheken oder Projekte, an denen ich mich orientieren könnte? Es werden sowohl Python als auch C++ sowie Lua Bestandteile genutzt.
Vermutlich werde ich einige weitere dritte Abhängigkeiten der Desktop App aber nicht 1:1 übernehmen können, sondern nach Alternativen suchen oder sie entfernen.
Erstmal steht aber eine Bereinigung der Code-Basis an, um die Darstellung von der internen Logik zu trennen und für Mobilgeräte vorzubereiten. Hier fehlt mir auch noch ein bisschen der rote Faden und Leitplanken, wie und wo man da am besten Grenzen ziehen kann.
Falls jemand von euch bereits Erfahrungen mit ähnlichen Projekten gesammelt hat, interessieren mich natürlich auch eure Empfehlungen und Ratschläge! :mrgreen:
Vielen Dank schon im Voraus!
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Qt auf Mobilgeraeten macht man am besten mit QML. Oder sogar nur. Und ganz ehrlich: nicht mit Python. Das ist einfach ein-zwei Umdrehungen zu viel Komplexitaet. Es ist schon nativ aufregend genug, eine App zu bauen, die von Apple in den Appstores genutzt werden kann. Dann ein nicht-standard Toolkit wie Qt zu benutzen ist noch mal komplexer. Und da jetzt noch Python einzurueheren - da hast du viel zu tun.

Und eines darfst du nicht vergessen: in dem Moment, wo du auf eine mobile Plattform mit Qt gehst, bist du lizenztechnisch zur kommerziellen Version gezwungen. Das liegt daran, dass man nicht dynamisch laden darf. Und die LGPL statisches linken untersagt.
Benutzeravatar
__blackjack__
User
Beiträge: 13533
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Schon bei Python aber erst recht wenn da noch Lua und C++ dazu kommt ist man ja zusätzlich auch noch darauf angewiesen sich damit auseinanderzusetzen das auch für verschiedenen Prozessoren extra zu paketieren und testen. Oder es läuft am Ende halt nicht generell auf Android sondern nur auf bestimmten Geräten für die man den ”nativ” kompilierten Teil und die Interpreter anbietet/paketiert hat.

Code: Alles auswählen

- (void)countSheep {
    unsigned int sheep = 0;
    while ( ! [self isAsleep]) { ++sheep; }
}
Benutzeravatar
Kebap
User
Beiträge: 717
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

QML muss ich mir anschauen. Bislang nutze ich nur Qt Widgets. Das wird wohl eine größere Umstellung oder neu schreiben nach sich ziehen. Aber danke für die Empfehlung!

Vermutlich sollte ich Python dann erstmal zurückstellen und ein weniger komplexes Teil fertig stellen. Hoffentlich wird es dann so allgemein nicht zu off-topic für dieses Forum?

Ich habe noch keinen Überblick, welche Anforderungen oder Einschränkungen die Appstores von Apple und Google haben. Hoffentlich ändern sie sich nicht auch noch dauernd.

Wenn Qt nicht Standard ist, wie empfehlenswert ist ein anderes Toolkit? Ich müsste mehr intern umstricken, aber das muss ich ja sowieso, und welche Vorteile hätten die dann?

Die Lizensierung fand ich überraschend. Es gibt bspw. KDE Apps auf Android. Benutzen die dann alle eine komerzielle Qt Version. Kann ich mir spontan nicht wirklich vorstellen.
Etwas Recherche zeigt, dass Qt selbst natürlich gerne kommerzielle Lizenzen verkaufen möchte und daher unvollständige und tlw. einseitige Infos auf ihrer Webseite bereitstellt.
Über die Jahre sehe ich einige, die das in Frage stellen und andere Wege fanden, bspw. hier https://stackoverflow.com/a/39438539 und dort https://opensource.stackexchange.com/q/6463
Da meine Anwendung sowieso schon GPL lizensiert ist und Quellcode frei auf Github bereitsteht wundere ich mich etwas über die absoluten Zwang in der Antwort von deets.
Frage mich wie andere Teams und Apps das handhaben. Das klassische Modell mit verteilten Teams und Zusammenarbeit auf freiwilliger Basis passt damit wohl weniger gut zusammen.

Die Anwendung soll schon generell auf Android (und iOS) laufen, nicht nur auf bestimmten Geräten. Wie viele unterschiedliche Prozessoren müsste ich extra paketieren und warum?
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Benutzeravatar
__blackjack__
User
Beiträge: 13533
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Kebap: KDE Apps sind in der Regel selbst unter der GPL und damit komplett quelloffen.

Wie viele unterschiedliche Prozessoren da versorgt werden müssen kann ich nicht sagen aber das Warum: kompilierter Code für einen ARM-Prozessor wird nicht auf einem x86-Prozessor laufen und umgekehrt. Wenn man sich bei Android dagegen auf die Sprachen beschränkt, die letztlich auf deren Java-VM laufen, ist der Prozessor des Geräts egal.

Code: Alles auswählen

- (void)countSheep {
    unsigned int sheep = 0;
    while ( ! [self isAsleep]) { ++sheep; }
}
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wenn deine Anwendung selbst unter GPL steht, dann ist das natürlich kein Problem. Davon bin ich nicht ausgegangen.

Die anderen Anmerkungen bzgl Python & Co erhalten natürlich ihre Gültigkeit. Und ob du hier viel Hilfe bekommst, steht in den Sternen. Das es nicht Python ist, ist dabei nicht so das Problem. Eher, dass du größere Chancen in speziellen Foren hast.
Benutzeravatar
Kebap
User
Beiträge: 717
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Gibt es Foren zu empfehlen? Ich mag die hilfreichen Beiträge hier. In anderen Foren gibt es große Schwankungen, wenn überhaupt.
Ich denke, eine große Aufgabe wird sein, das Layout von Qt Widgets so zu abstrahieren, dass alternativ QML benutzt werden kann.
Da möchte ich ungerne das Rad neu erfinden, wenn es schon Erfahrungen gibt, oder gar Tools entwickelt wurden, die dabei helfen.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Antworten