View Full Version : Sviluppo applicazione desktop multipiattaforma
franksisca
04-09-2017, 10:48
Ciao a tutti.
Devo sviluppare una applicazione desktop multi piattaforma, che interagisce pesantemente con il sistema operativo. La mia idea era di utilizzare JavaFX e via. Però mi chiedevo se anche uno dei vari framework tipo Ionic siano in grado di darmi supporto in questa cosa.
Voi sapere qualcosa al riguardo?
tomminno
04-09-2017, 16:03
Se deve interagire pesantemente col sistema operativo (multipiattaforma) io andrei di Qt e tanti saluti.
franksisca
04-09-2017, 16:43
Se deve interagire pesantemente col sistema operativo (multipiattaforma) io andrei di Qt e tanti saluti.
mah fondamentalmente si tratta di aggiornare file si file system. Upload e Download file. Niente di complicato e massimo.
Io pensavo JavaFX o Ionic se possibile
tomminno
05-09-2017, 01:29
mah fondamentalmente si tratta di aggiornare file si file system. Upload e Download file. Niente di complicato e massimo.
Io pensavo JavaFX o Ionic se possibile
Allora non deve interagire pesantemente col sistema operativo!
Per l'aggiornamento di file, upload e download non è certo il linguaggio ad essere limitante.
Ma perché per applicativi desktop stai pendando a framework pensati per il web? E JavaFX non è morto (ultima versione rilasciata nel 2012)?
Ma poi perchè multipiattaforma ?
Dove deve girare ?
franksisca
05-09-2017, 10:09
Allora non deve interagire pesantemente col sistema operativo!
Per l'aggiornamento di file, upload e download non è certo il linguaggio ad essere limitante.
Ma perché per applicativi desktop stai pendando a framework pensati per il web? E JavaFX non è morto (ultima versione rilasciata nel 2012)?
Perchè ho già l'applicazione web e mobile sviluppata con Typescript e Ionic2. Ho letto della possibilità di sviluppare app desktop anche per ionic, e volevo sapere l'effettiva fattibilità della cosa.
JavaFX è stato rilasciato con Java8 quindi 2015.
Ma poi perchè multipiattaforma ?
Dove deve girare ?
Mac, Windows e (almeno) Debian/based unix distro
pabloski
05-09-2017, 18:04
Visti i requisiti e le funzionalita' e quello che gia' hai, direi di usare Electron e portare la webapp su desktop. Questo per una questione di tempo.
Ovviamente c'e' l'inghippo che applicazioni simili consumano un botto in ram e cicli cpu ( Electron non e' esattamente il prototipo dell'efficienza ). Pero' la webapp typescript/ionic richiederebbe pochissime modifiche.
Altre possibilita' multipiattaforma sono: QT/QML, Mono, Java/JavaFX, Python con PyQT e altri widget toolkit supportati.
Queste sono le soluzioni normali. Soluzioni piu' esotiche sono: Go o Rust + Sciter, Haskell + Threepenny. Sciter e Threepenny supportano HTML come DSL per le UI e consentono di usare Ecmascript ( Javascript ) per lo scripting. Go e' preferibile, Rust e Haskell sono abbastanza complessi da assimilare.
Penso ti dovresti orientare verso le tecnologie che conosci meglio. Per esempio PyQT sarebbe il massimo, visto che puoi usare un framework ottimo con un linguaggio estremamente espressivo. Ma se hai competenze in Java, e' ovvio che non ti metti a studiare Python.
p.s. se Java sara', opta per Kotlin, ci guadagnerai in salute :D
franksisca
06-09-2017, 10:05
Visti i requisiti e le funzionalita' e quello che gia' hai, direi di usare Electron e portare la webapp su desktop. Questo per una questione di tempo.
Ovviamente c'e' l'inghippo che applicazioni simili consumano un botto in ram e cicli cpu ( Electron non e' esattamente il prototipo dell'efficienza ). Pero' la webapp typescript/ionic richiederebbe pochissime modifiche.
Altre possibilita' multipiattaforma sono: QT/QML, Mono, Java/JavaFX, Python con PyQT e altri widget toolkit supportati.
Queste sono le soluzioni normali. Soluzioni piu' esotiche sono: Go o Rust + Sciter, Haskell + Threepenny. Sciter e Threepenny supportano HTML come DSL per le UI e consentono di usare Ecmascript ( Javascript ) per lo scripting. Go e' preferibile, Rust e Haskell sono abbastanza complessi da assimilare.
Penso ti dovresti orientare verso le tecnologie che conosci meglio. Per esempio PyQT sarebbe il massimo, visto che puoi usare un framework ottimo con un linguaggio estremamente espressivo. Ma se hai competenze in Java, e' ovvio che non ti metti a studiare Python.
p.s. se Java sara', opta per Kotlin, ci guadagnerai in salute :D
Credo di aver scelto JavaFX. Kotlin lo sto studiando per ambiente Android, ma non sono ancora così operativo da poter implementare uan app da 0 nei tempi richiesti.
grazie comunque per il supporto
[Kendall]
06-09-2017, 16:43
Credo di aver scelto JavaFX. Kotlin lo sto studiando per ambiente Android, ma non sono ancora così operativo da poter implementare uan app da 0 nei tempi richiesti.
grazie comunque per il supporto
Fidati, segui il consiglio di Pabloski.
Kotlin lo impari in pochi giorni (e lo conosci a menadito o quasi in un paio di settimane) ed è infinitamente più funzionale e produttivo del java (e poggiando sulla libreria standard di java non ti devi imparare altro, se già programmi in java).
franksisca
06-09-2017, 16:53
;44998974']Fidati, segui il consiglio di Pabloski.
Kotlin lo impari in pochi giorni (e lo conosci a menadito o quasi in un paio di settimane) ed è infinitamente più funzionale e produttivo del java (e poggiando sulla libreria standard di java non ti devi imparare altro, se già programmi in java).
Sto già studiando Kotlin, ma essendo un progetto in gruppo, non posso forzare (nel brevissimo) un intero team a switchare tecnologia.
Comunque grazie per il suggerimento
[Kendall]
06-09-2017, 17:09
Sto già studiando Kotlin, ma essendo un progetto in gruppo, non posso forzare (nel brevissimo) un intero team a switchare tecnologia.
Comunque grazie per il suggerimento
No beh se è un progetto di gruppo alzo le mani.
Di mio ho usato una volta Java FX per un programma di monitoraggio di alcuni Arduino e mi sono trovato abbastanza bene.
È una tecnologia relativamente semplice da usare (ho solo dovuto sbattere un pò la testa sulla parte grafica, nello specifico sui file CSS, perchè non ho mai programmato per il web).
In quel caso tra l'altro avevo usato proprio Kotlin.
pabloski
06-09-2017, 17:28
;44999053']
Di mio ho usato una volta Java FX per un programma di monitoraggio di alcuni Arduino e mi sono trovato abbastanza bene.
Sono stati astuti. Hanno preso il meglio da WPF, ma evitando di forzarti ad usare il paradigma MVVM. E hanno ereditato programmazione reattiva, data binding, dsl dichiarativo, possibilita' di innestare i controlli liberamente e c'hanno aggiunto il css per semplificare lo styling e attirare sviluppatori web. Non male per un'ecosistema che alcuni ritengono morto :D
franksisca
07-09-2017, 10:03
considerato che graficamente dovrò fare pochissimo, se non un menù e una icona in System Try.
Grazie a tutti comunque
tomminno
08-09-2017, 16:05
considerato che graficamente dovrò fare pochissimo, se non un menù e una icona in System Try.
Grazie a tutti comunque
Occhio che JavaFX non supporta la Tray:
https://bugs.openjdk.java.net/browse/JDK-8092115
Dovrai ricorrere ad AWT :stordita:
pabloski
08-09-2017, 18:36
Occhio che JavaFX non supporta la Tray:
https://bugs.openjdk.java.net/browse/JDK-8092115
Dovrai ricorrere ad AWT :stordita:
Ed e' in questi casi che si vede il vantaggio di avere una gigantesca comunita' come quella Java https://github.com/PlusHaze/TrayNotification
tomminno
08-09-2017, 19:08
Ed e' in questi casi che si vede il vantaggio di avere una gigantesca comunita' come quella Java https://github.com/PlusHaze/TrayNotification
Non vorrei deludere le tue grandi aspettative nella community, ma quella è solo una libreria che crea finestre animate in basso a destra. JavaFx non la supporta, per farlo è necessario integrare AWT (rimanendo in Java).
Poi se basta semplicemente la notifica meglio, quella libreria fornisce la soluzione desiderata, ma quella non è la System Tray.
pabloski
08-09-2017, 19:51
Non vorrei deludere le tue grandi aspettative nella community, ma quella è solo una libreria che crea finestre animate in basso a destra. JavaFx non la supporta, per farlo è necessario integrare AWT (rimanendo in Java).
Poi se basta semplicemente la notifica meglio, quella libreria fornisce la soluzione desiderata, ma quella non è la System Tray.
ah gia' si parlava di icona
franksisca
11-09-2017, 00:33
Si infatti si utilizza swing, che è perfettamente integrato in JavaFX. Grazie ancora per gli aiuti
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.