View Full Version : Python - QT multipiattaforma
Qt è un buon strumento per costruire app multipiattaforma (Android, iOS e W10 Mobile)?
Grazie in anticipo
cdimauro
24-10-2016, 21:56
QT lo trovi per tutte e tre, ma non so se ci gira Python. Su Android c'è, ma lo devi installare a parte.
Su iOS penso sia la stessa cosa (vedi Kivy).
Mentre riguardo a W10 mobile non so niente (e sono curioso).
Kivy in teoria non "gira" su tutte e 3?
Per Android fa un apk, per W10 suppongo un exe, per iOS come si distribuisce un app?
cdimauro
25-10-2016, 21:22
Per iOS non ricordo di preciso, ma Kivy dovrebbe crearti un pacchetto.
Su Windows 10 mobile funziona solo su piattaforma x86, perché per questa sono disponibili le OpenGL 2.0 che sono necessarie a Kivy, mentre su piattaforma ARM non ci sono.
potrebbe essere una buona soluzione Kivy per creare app un un colpo solo?
Per curiosità, su Android serve un apk, per W10M suppongo un exe, per iOS che "file" deve essere creato?
[Kendall]
26-10-2016, 09:51
potrebbe essere una buona soluzione Kivy per creare app un un colpo solo?
Per curiosità, su Android serve un apk, per W10M suppongo un exe, per iOS che "file" deve essere creato?
Per fare il deploy delle app al di fuori dello store vengono generati dei pacchetti .ipa.
Le univeral app per windows 10 invece possono essere distribuite tramite il relativo package .appx
perfetto,
quindi apk, ipa e appx potrebbero essere direttamente copiati e "lanciati" sui vari device?
[Kendall]
26-10-2016, 11:04
perfetto,
quindi apk, ipa e appx potrebbero essere direttamente copiati e "lanciati" sui vari device?
Su android basta abilitare sulle impostazioni di sicurezza l'installazione di app da origini sconosciute (diverse dal playstore). Poi basterà copiare l'apk dentro la memoria del telefono e avviarlo per dare il via all'installazione.
Su ios devi prima importare l'ipa su iTunes, collegare il dispositivo, cliccare su installa e poi sincronizzare.
Per i dispositivi w10m c'è un tool creato da Microsoft, WinAppDeployCmd.exe, che esegue proprio il sideload dei pacchetti appx sul tuo dispositivo.
edit 1: Diciamo quindi che l'unico vero "copia e lancia" è quello che si fa su android, ma il procedimento per gli altri sistemi non è comunque particolarmente complesso.
edit 2: Qui si parla ovviamente di sideload. Se invece stai facendo semplicemente il debug della tua applicazione fai tutto tramite IDE (Android Studio, XCode o Visual Studio). Immagino che Xamarin Studio permetta di fare la stessa cosa (ma non avendolo mai usato non so dirti con certezza).
molto gentile,
mi interesserebbe ancora sapere se con Xamarin Studio, c' è già il "simulatorino" di Android e W10M integrato
QT va bene per tutte e 3, Python come linguaggio non va bene, ma C++ o Java?
cdimauro
26-10-2016, 21:53
C++ (e C#) è disponibile per tutte le piattaforma. Java non mi pare di averlo visto per Windows 10 Mobile.
Java + QT con Android e iOS va bene però? Con W10M perchè no?
ingframin
27-10-2016, 17:47
GAmbac ma che devi fare esattamente? Java è ufficialmente supportato solo da Android. C++ è supportato da tutti tranne che per la GUI a meno di usare QT. Idem per C# e Javascript via Apache Cordova. In ogni caso dovrai adattare il codice della UI e adattarlo ai tre casi differenti. Forse ti conviene usare google e cercare meglio oltre a studiare i siti web delle varie piattaforme.
Sent from my iPhone using Tapatalk
non mi sembra il quesito fosse così complicato, se ci si è persi, descrivo meglio
- scrivere un app che richieda meno lavoro possibile per essere adattata ad Android, iOS e W10M
- se possibile utilizzare Python
- se possibile open-source
a questo punto Kivy
cdimauro
27-10-2016, 19:13
Se W10M = x86, allora sì. Ma non parliamo più di smartphone, a questo punto, quanto di tablet / 2-in-1.
P.S. Perché l'app dev'essere open source?
lo strumento per crearla open-source
altre soluzioni?
esiste un elenco di tutte le architetture per smartphone e tablet attualmente sui dispositivi?
pabloski
31-10-2016, 10:33
esiste un elenco di tutte le architetture per smartphone e tablet attualmente sui dispositivi?
ARMv6 ( vecchissimi device, chissa' se ce n'e' ancora qualcuno funzionante in giro ), ARMv7 ( il blocco grosso dei device mobile ), ARMv8 ( quelli fighi, per gli amici "high-end" ) e x86 ( non so quanti, ma complessivamente non molti e con un futuro non chiaro )
Questo e' l'elenco. Ci sara' qualche gingillo MIPS, ma nel settore industriale, non certo nelle mani di qualche ragazzino smartphonaro brufoloso.
Vorrei dire una cosa su Qt, perche' ti vedo un po' confuso a riguardo. Qt su mobile significa usare Qml massicciamente. Quindi un linguaggio di markup + un simil javascript ( molto simil ). Ed e' questa la ragione per cui nessuno si pone il problema di abbinarci Python, ovvero la logica pesante la si scrive in C++ e il resto in Javascript.
Esempio https://github.com/ldanzinger/PyOtherSideForArcGIS/tree/master/01_HelloWorld
Nota la necessita' di passare per C++ ( il main ) e il modo in cui vengono richiamate le funzioni Python da QML. Il punto e' che non funge come un normale programma Python, cioe' che lo chiami tramite l'interprete o shebang e hai fatto. Comunque c'e' un tool che automatizza il deployment di simili programmi https://pypi.python.org/pypi/pyqtdeploy/1.3.1
Avevo letto tempo fa che alcuni stavano pensando di usare i tool di Kivy per il deployment delle app PyQt, ma non so se che fine abbia fatto il progetto. Per ora Pyqtdeploy e' lo strumento "ufficiale".
Kivi dovrebbe essere ancora attivo
meglio però Pyqtdeploy? "Funziona" su tutto?
pabloski
31-10-2016, 13:13
Kivi dovrebbe essere ancora attivo
meglio però Pyqtdeploy? "Funziona" su tutto?
Kivy e' piu' che attivo. Il deployment e' ancora spigoloso tuttavia, ma molto meno rispetto a Pyqtdeploy e compagnia.
Inoltre Kivy non implementa i widget nativi di Android e iOS, per cui poi diventa un'impresa realizzare un'UI con look&feel nativo.
Imho Kivy ha senso per i giochi 2D, non per le applicazioni di produttivita'.
ok, allora è "obbligatorio" virare su Pyqtdeploy?
pabloski
31-10-2016, 15:41
ok, allora è "obbligatorio" virare su Pyqtdeploy?
No, nessuno ti obbliga. Pero' Pyqt ti da' questo
https://i.ytimg.com/vi/sErAv_VZTiY/maxresdefault.jpg
mentre Kivy ti da' questo
http://i.stack.imgur.com/yLztC.png
Nessuno ha ( fino ad ora ) implementato il material design per Kivy. E il discorso vale per iOS ovviamente.
Mentre quelli di Qt hanno lavorato moltissimo nell'implementazione di widget dal look nativo.
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.