Miglior ambiente di sviluppo applicazioni per mobile

Stato
Discussione chiusa ad ulteriori risposte.

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
Per cui e' utile fare riferimento alla documentazione di Cordova per quanto concerne le API.
[...]
Alla fin fine stanno migrando verso Cordova, per cui non vedo perche' non usare direttamente quest'ultimo.
Io non ho ancora capito bene cos'è questo Cordova, fin ora ho capito che è un framework disponibile su intel xdk e appery.io, ma non ho capito il senso che intendi tu con "usare direttamente quest'ultimo".

Inoltre non sono un fan delle app che laggano, per cui i framework cosiddetti ibridi non mi fanno impazzire di gioia.
A chi lo dici, anche a me danno un fastidio enorme, e il bello che lo fanno anche sugli ultimi telefonini usciti in commercio.
 

pabloski

Utente Èlite
2,868
916
Io non ho ancora capito bene cos'è questo Cordova, fin ora ho capito che è un framework disponibile su intel xdk e appery.io, ma non ho capito il senso che intendi tu con "usare direttamente quest'ultimo".

No, Cordova e' a se' stante. E' Intel che ha deciso di deprecare la sua API e inglobare Cordova nel suo framework. Tu puoi benissimo installare Cordova e usare quello per programmare per le app. E anzi c'e' PhoneGap di Adobe che e' stato il primo framework ad utilizzare Cordova ( Cordova e' nato proprio da Adobe ). La differenza e' che PhoneGap ha un po' di luci e specchietti in piu'. Stessa cosa per Intel XDK.

il bello che lo fanno anche sugli ultimi telefonini usciti in commercio.

Ecco, in quel caso sei sicuro che l'app non e' stata realizzata con uno strumento nativo e nemmeno con un framework multipiattaforma tipo Qt, Xamarin o React Native.
 

lukezona

Utente Attivo
381
83
CPU
Intel i7-6700K raffreddato da Corsair H100i GTX
Scheda Madre
Asus Maximus VIII Extreme
HDD
Samsung SM951 NVMe 128GB
RAM
16GB G.Skill Trident Z 3200MHz
GPU
Asus Strix GTX 980Ti
Monitor
Asus ROG PG279Q
PSU
Evga SuperNova G2 850W
Case
Corsair Vengeance C70
OS
Windows 10
Io non ho ancora capito bene cos'è questo Cordova, fin ora ho capito che è un framework disponibile su intel xdk e appery.io, ma non ho capito il senso che intendi tu con "usare direttamente quest'ultimo".


A chi lo dici, anche a me danno un fastidio enorme, e il bello che lo fanno anche sugli ultimi telefonini usciti in commercio.
Secondo me per le tue conoscenze o vai su React Native o su Cordova.

Con React Native sembra che le app "lagghino" un po' meno, però non l'ho mai provato.

Con Cordova si fanno delle cose carine ma la fluidità non è il massimo se non perdi molto tempo a provare a ottimizzare (e il risultato non sarà comunque favoloso).
 

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
La differenza e' che PhoneGap ha un po' di luci e specchietti in piu'. Stessa cosa per Intel XDK.
Che intendi per luci e specchietti?

Con React Native sembra che le app "lagghino" un po' meno, però non l'ho mai provato.
Con Cordova si fanno delle cose carine ma la fluidità non è il massimo se non perdi molto tempo a provare a ottimizzare (e il risultato non sarà comunque favoloso).
Beh, qui purtroppo non capisco il significato, qual è il migliore per sviluppare un app che preleva i dati dal server, crea sul dispositivo una specie di pagina html e riesce ad usare gps, fotocamera e compasso senza rallentamenti (tra Cordova, Intel XDK, PhoneGap e React Native)?



Grazie
 

lukezona

Utente Attivo
381
83
CPU
Intel i7-6700K raffreddato da Corsair H100i GTX
Scheda Madre
Asus Maximus VIII Extreme
HDD
Samsung SM951 NVMe 128GB
RAM
16GB G.Skill Trident Z 3200MHz
GPU
Asus Strix GTX 980Ti
Monitor
Asus ROG PG279Q
PSU
Evga SuperNova G2 850W
Case
Corsair Vengeance C70
OS
Windows 10
Che intendi per luci e specchietti?


Beh, qui purtroppo non capisco il significato, qual è il migliore per sviluppare un app che preleva i dati dal server, crea sul dispositivo una specie di pagina html e riesce ad usare gps, fotocamera e compasso senza rallentamenti (tra Cordova, Intel XDK, PhoneGap e React Native)?



Grazie
Per quanto ne so React Native dovrebbe essere il migliore, però non l'ho mai usato di persona quindi non posso darti un mio parere.
 

pabloski

Utente Èlite
2,868
916
Che intendi per luci e specchietti?

Intendo tipo e quantita' di feature native supportate, eventuale presenza di un IDE, documentazione piu' completa, ecc... Nulla di imprescindibile, ma comunque utile.

Beh, qui purtroppo non capisco il significato, qual è il migliore per sviluppare un app che preleva i dati dal server

Uno qualunque, perche' il collo di bottiglia sono le operazioni di networking. L'importante e' che ti dia la possibilita' di comunicare con i web services. Che poi lo faccia tramite AJAX ( XmlHttpRequest ) o ti dia qualcosa in piu' ( i websockets ) non ti cambia molto nella maggior parte degli scenari d'uso.

crea sul dispositivo una specie di pagina html

Tecnicamente Cordova, Intel XDK, Ionic fanno proprio cosi'. React Native implementa un approccio non basato su WebView, ma ugualmente sfrutta JS. Dei due e' palese che il secondo ha un vantaggio prestazionale notevole.

e riesce ad usare gps, fotocamera e compasso

Praticamente tutti i framework citati supportano queste funzionalita' basilari.

senza rallentamenti (tra Cordova, Intel XDK, PhoneGap e React Native)?

Il problema e' cosa intendi per senza rallentamenti. PhoneGap/Cordova ( che ripeto, sono identici, con la differenza che PhoneGap almeno in passato offriva qualche plugin in piu' ) possono andare benissimo finche' non si comincia a maneggiare grandi quantita' di dati.

Prova a creare un gestionale con 100000 record e una list view e vedrai che comincia ad arrancare di brutto. Cosa che non vedrai mai con Xamarin o Qt. Potresti vedere qualche rallentamento con React Native, ma di sicuro e' un paio di ordini di grandezza piu' performante di Cordova.
 

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
Tecnicamente Cordova, Intel XDK, Ionic fanno proprio cosi'. React Native implementa un approccio non basato su WebView, ma ugualmente sfrutta JS. Dei due e' palese che il secondo ha un vantaggio prestazionale notevole.

Il problema e' cosa intendi per senza rallentamenti. PhoneGap/Cordova ( che ripeto, sono identici, con la differenza che PhoneGap almeno in passato offriva qualche plugin in piu' ) possono andare benissimo finche' non si comincia a maneggiare grandi quantita' di dati.

Prova a creare un gestionale con 100000 record e una list view e vedrai che comincia ad arrancare di brutto. Cosa che non vedrai mai con Xamarin o Qt. Potresti vedere qualche rallentamento con React Native, ma di sicuro e' un paio di ordini di grandezza piu' performante di Cordova.
Per ora non mi serve un gestionale di 100000 record, anche perché sono alle primissime armi (anzi, devo ancora prenderlo il porto d'armi :asd:) vorrei iniziale con Intel XDK o PhoneGap, e tra i due ho scelto il secondo, perché mi crea un server in locale con aggiornamenti in tempo reale sull'applicazione, e più importante ancora, mi sembra che la compilazione avviene sul mio pc e non in remoto (non voglio far conoscere il codice del progetto a nessuno, anche se è banale).

Ho quindi installato PhoneGap e seguito la guida "getting started" fino al passo 4, però ora mi serve l'ambiente per scrivere il codice. Ho trovato questa guida sul sito ufficiale, ma purtroppo non so che sono né node.js né git, e quindi non so andare avanti.
Premesso che il sistema operativo da cui programmo è Windows.

Potresti aiutarmi?


Grazie
 

pabloski

Utente Èlite
2,868
916
Windows per programmare....mmm....so che e' ragione di infinite polemiche ma spassionatamente e amichevolmente ti consiglio Linux. Comunque nessuno ti impedisce di continuare ad usare Windows, solo che le varie guide fai da te sul web sono spessissimo basate su Linux ( o Mac OS X ).

Comunque node.js e' un ambiente runtime basato sul motore javascript V8 di Google, che consente l'esecuzione di programmi in Javascript sui normali PC ( Windows, Linux, OS X e altri ). E' la base di PhoneGap, per cui non e' opzionale. Npm e' il suo package manager, cioe' quel programma che installa moduli, librerie, ecc... che poi andrai ad usare nel tuo programma.

Git e' un programma scritto da Linus Torvalds ( il creatore di Linux, ehm ehm, ... ) e che funge da version control system, cioe' ti consente d'implementare un sistema per gestire le versioni e revisioni dei tuoi programmi ( puoi modificare dei file, ma restano pure le vecchie copie, per cui puoi recuperarle, ispezionarle, tirar fuori le vecchie e nuove versioni del tuo programma e altre cosine interessanti ). Comunque ti serve perche' Npm lo usa.

Va installato cosi' https://git-scm.com/book/it/v1/Per-Iniziare-Installare-Git ( in fondo c'e' scritto come installarlo su Windows ).

Per Node.js c'e' una guida a parte How to Install Node.js® and NPM on Windows - Treehouse Blog

In sostanza devi cercare un po' su Google per le istruzioni su come settare il tutto.
 
U

Utente cancellato 110428

Ospite
Windows per programmare....mmm....so che e' ragione di infinite polemiche ma spassionatamente e amichevolmente ti consiglio Linux. Comunque nessuno ti impedisce di continuare ad usare Windows, solo che le varie guide fai da te sul web sono spessissimo basate su Linux ( o Mac OS X ).

Comunque node.js e' un ambiente runtime basato sul motore javascript V8 di Google, che consente l'esecuzione di programmi in Javascript sui normali PC ( Windows, Linux, OS X e altri ). E' la base di PhoneGap, per cui non e' opzionale. Npm e' il suo package manager, cioe' quel programma che installa moduli, librerie, ecc... che poi andrai ad usare nel tuo programma.

Git e' un programma scritto da Linus Torvalds ( il creatore di Linux, ehm ehm, ... ) e che funge da version control system, cioe' ti consente d'implementare un sistema per gestire le versioni e revisioni dei tuoi programmi ( puoi modificare dei file, ma restano pure le vecchie copie, per cui puoi recuperarle, ispezionarle, tirar fuori le vecchie e nuove versioni del tuo programma e altre cosine interessanti ). Comunque ti serve perche' Npm lo usa.

Va installato cosi' https://git-scm.com/book/it/v1/Per-Iniziare-Installare-Git ( in fondo c'e' scritto come installarlo su Windows ).

Per Node.js c'e' una guida a parte How to Install Node.js® and NPM on Windows - Treehouse Blog

In sostanza devi cercare un po' su Google per le istruzioni su come settare il tutto.
Potrei sapere perché Gnu/Linux sia da preferire a Windows? Lo chiedo per purissima curiosità, non é mia intenzione far nascere discussioni :) .
 

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
Va installato cosi' https://git-scm.com/book/it/v1/Per-Iniziare-Installare-Git ( in fondo c'e' scritto come installarlo su Windows ).

Per Node.js c'e' una guida a parte How to Install Node.js® and NPM on Windows - Treehouse Blog
Mi è sembrato che sia disponibile solo la versione a 64 bit, che per me va bene, ma non c'è anche quella a 32 bit (solo curiosità)?

Windows per programmare....mmm....so che e' ragione di infinite polemiche ma spassionatamente e amichevolmente ti consiglio Linux. Comunque nessuno ti impedisce di continuare ad usare Windows, solo che le varie guide fai da te sul web sono spessissimo basate su Linux ( o Mac OS X ).
Potrei sapere perché Gnu/Linux sia da preferire a Windows? Lo chiedo per purissima curiosità, non é mia intenzione far nascere discussioni :) .
Lo so, Windows non è il meglio per programmare. Infatti so installare un sistema ubuntu server con LAMP e so gestirlo. Ma purtroppo non so gestire le installazioni/disinstallazioni su linux, né tantomeno so come si usano i file tar.gz e compagnia. Per questo uso windows, ma nulla mi vieta che se imparo quelle cose, passo a linux.


Poi c'è un'altra cosa che mi è venuta in mente su questa frase:
Android espone le caratteristiche dell'hardware, per cui basta un if per far apparire/sparire quell'icona sui vari modelli di smartphone. Il discorso e' ben diverso se si para di app che girano su Android e iOS.
Ma ciò che mi chiedo io è: ma è realmente a livello programmativo (cioè fare un if) o se la vede direttamente la JRE su ogni dispositivo a far apparire/sparire l'icona?




Grazie
 

pabloski

Utente Èlite
2,868
916
Potrei sapere perché Gnu/Linux sia da preferire a Windows? Lo chiedo per purissima curiosità, non é mia intenzione far nascere discussioni :) .

Innanzitutto il meccanismo di gestione dei pacchetti, che semplifica notevolmente l'installazione ( in particolare il setup post-installazione, specialmente per i tool CLI che necessitano giocoforza che vengano opportunamente settate le variabili d'ambiente ). Ovviamente il fatto di poter settare un ambiente come Electron, Phonegap, ma pure Rust, Go, letteralmente in un click ( o comando ) e' un bel bonus.

Poi c'e' un altro vantaggio legato alla capacita' di Linux di supportare facilmente piu' versioni degli stessi tool di sviluppo. A grandi linee si puo' dire che Linux e' pensato per la linea di comando e i tool di sviluppo sono fondamentalmente a linea di comando. La Unix-way ( tool che richiamano altri tool ) funge molto meglio sotto Linux che sotto Windows.

- - - Updated - - -

Mi è sembrato che sia disponibile solo la versione a 64 bit, che per me va bene, ma non c'è anche quella a 32 bit (solo curiosità)?

Nodejs? Dove l'hai letto che esiste solo la versione a 64 bit? https://nodejs.org/en/download/

Ma purtroppo non so gestire le installazioni/disinstallazioni su linux, né tantomeno so come si usano i file tar.gz e compagnia.

Oi oi temo ti sia documentato da fonti quantomeno obsolete. I tar.gz per installare il software sotto Linux? Stai parlando dei primi anni '90. Se parli di Ubuntu ci sono il software center e Synaptic, che sono tool grafici.

usc2.jpg

Synaptic_Ubuntu.png

Ma ciò che mi chiedo io è: ma è realmente a livello programmativo (cioè fare un if) o se la vede direttamente la JRE su ogni dispositivo a far apparire/sparire l'icona?

Non esageriamo. Non puoi pretendere che il runtime Android ( non e' la JRE di Oracle ) si occupi di controllare se c'e' un tasto fisico e quindi far sparire l'icona. Dev'essere il programma ad occuparsene. Discorso diverso vale per i tre tasti standard di Android, li' e' il sistema operativo a disegnarli e non e' affare dell'app.
 
Ultima modifica:

hddsfortuna

Utente Attivo
869
39
Net
FTTH 1000/300
OS
Ubuntu 22.04
Innanzitutto il meccanismo di gestione dei pacchetti, che semplifica notevolmente l'installazione ( in particolare il setup post-installazione, specialmente per i tool CLI che necessitano giocoforza che vengano opportunamente settate le variabili d'ambiente ). Ovviamente il fatto di poter settare un ambiente come Electron, Phonegap, ma pure Rust, Go, letteralmente in un click ( o comando ) e' un bel bonus.

Poi c'e' un altro vantaggio legato alla capacita' di Linux di supportare facilmente piu' versioni degli stessi tool di sviluppo. A grandi linee si puo' dire che Linux e' pensato per la linea di comando e i tool di sviluppo sono fondamentalmente a linea di comando. La Unix-way ( tool che richiamano altri tool ) funge molto meglio sotto Linux che sotto Windows.
Beh non sono tanto esperto di linux anche se so gestire un server LAMP, però c'è anche il fatto che phonegap non c'è per linux (o non lo vedo io).

Nodejs? Dove l'hai letto che esiste solo la versione a 64 bit? https://nodejs.org/en/download/
Non lo so, ultimamente mi sta venendo la cataratta :asd:, stessa cosa vale per Git, che però sono riuscito da solo a trovare la versione a 32 bit.

Oi oi temo ti sia documentato da fonti quantomeno obsolete. I tar.gz per installare il software sotto Linux? Stai parlando dei primi anni '90. Se parli di Ubuntu ci sono il software center e Synaptic, che sono tool grafici.
Beh non mi ricordo cosa dettagliatamente volevo installare (missà MTA San Andreas) e lessi sul sito ufficiale che si faceva così. Ma sono passati 2-3 anni e non mi ricordo più.


Detto questo, ho installato phonegap CLI e desktop e l'applicazione sul mio cell. Inoltre ho creato l'app esempio con qualche mia modifica, proprio come suggerisce il sito adobe, l'ho provata sul cell tramite l'anteprima, ma vorrei sapere come compilarla almeno per Android e iOS. Se è possibile anche per Windows Phone, è meglio. Ovviamente voglio eseguire la compilazione sul mio computer, non in remoto.

Inoltre so che per pubblicare l'applicazione su Play di Google, esiste qualcosa riguardante la chiave dell'app, e cose varie. Non so per apple e microsoft com'è la procedura.

Come posso impostare da phonegap l'app con i criteri di pubblicazione impostati dai maggiori 3 negozi virtuali di app?





Grazie
 

pabloski

Utente Èlite
2,868
916
però c'è anche il fatto che phonegap non c'è per linux (o non lo vedo io).

C'e' c'e'

phonegap.jpg


Beh non mi ricordo cosa dettagliatamente volevo installare (missà MTA San Andreas) e lessi sul sito ufficiale che si faceva così. Ma sono passati 2-3 anni e non mi ricordo più.

Boh, sul sito vedo solo un exe ( quindi Windows only ). Probabilmente hanno messo giu' una versione preliminare per Linux e non l'hanno ancora pacchettizzata o peggio bisogna compilarlo dai sorgenti.

Inoltre ho creato l'app esempio con qualche mia modifica, proprio come suggerisce il sito adobe, l'ho provata sul cell tramite l'anteprima, ma vorrei sapere come compilarla almeno per Android e iOS. Se è possibile anche per Windows Phone, è meglio. Ovviamente voglio eseguire la compilazione sul mio computer, non in remoto.

Documentazione documentazione http://docs.phonegap.com/en/3.3.0/guide_platforms_android_tools.md.html#Android Command-line Tools

Il risultato e' un apk che puo' essere installato su Android. L'apk va ovviamente portato sullo smartphone tramite sd card, download o usando adb ( vedi documentazione ufficiale Android ).

Inoltre so che per pubblicare l'applicazione su Play di Google, esiste qualcosa riguardante la chiave dell'app, e cose varie. Non so per apple e microsoft com'è la procedura.

Bisogna firmare l'apk con la propria chiave, data quando ci si registra al play store ( stessa cosa per ios e windows ).

Come posso impostare da phonegap l'app con i criteri di pubblicazione impostati dai maggiori 3 negozi virtuali di app?

Firmando l'apk a mano tramite il comando cordova build e specificando il parametro --key-store
 

pabloski

Utente Èlite
2,868
916
Scusate se mi intrometto...ma volevo sapere se qt è open o meno ;)

Inviato dal mio SM-G930F utilizzando Tapatalk

QT e' offerto sotto licenze multiple, con varie restrizioni per la licenza opensource https://www.qt.io/licensing-comparison/

Nelle prossime versioni dovrebbero aggiungere alla versione open il renderer 2D e il compilatore QML. Il secondo e' un'aggiunta che sara' molto molto apprezzata.
 
  • Mi piace
Reazioni: phonic_mouse
Stato
Discussione chiusa ad ulteriori risposte.

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!