Domanda

Ho visto alcune altre domande simili su questo argomento qui, ma non erano molto utili, quindi ponevo questa domanda.

Qual è il modo più veloce per convertire un'app Web semplice e di dimensioni ragionevoli in un client di alto livello Java Desk mirato per PC e Mac? Sfortunatamente non posso condividere molti dettagli sull'app qui per vari motivi. L'interfaccia utente più complicata nell'app è una pagina che contiene discussioni thread a più livelli (consultare qui Per un esempio illustrativo di ciò di cui sto parlando.) L'app corrente si basa su Python in modo da non poter usare nulla dal codice lato server (non pensare che questo sia un problema)

Non ho mai svolto alcuna swing o AWT o nessun altro lavoro di GUI con client spesso basato su Java. Il mio pensiero è più o meno definito dalle applicazioni basate sul Web. Sono in grado di eseguire lo sviluppo di app Web end -to -end (incluso l'interfaccia utente backend e decente utilizzando HTML, CSS e JS) usando Java o Python. Per le tue risposte, concentrati solo sulle soluzioni Java.

Quindi ecco le mie domande Qual è il miglior framework o strumento che dovrei usare? Ho trovato alcuni dei seguenti strumenti sul Web come parte della mia ricerca.

  1. AWT - non sembra che questa sia una buona scelta.
  2. Swing che credo sia raggruppato con il normale Java SDK/JRE. - Questa potrebbe essere la mia scommessa migliore.
  3. Swt Il che sembra complimentarsi in qualche modo.
  4. Griffon basato su un articolo qui. Questo framework utilizza Groovy (non ho idea di Groovy, btw) Adobe Air Flex. Qualche struttura open source?

Quali sono alcuni degli altri problemi che devo tenere a mente? Alcuni su cui vorrei i tuoi commenti sono:

  1. In che modo il fatto che debba essere distribuito sul cliente complica le cose? Dal momento che stiamo usando Java, credo che questo sia un non problema. Sono a conoscenza dei soliti compromessi tra un'app basata sul web e un'app desktop (ad esempio facilità di distribuzione e aggiornamenti ecc. Ecc.)
  2. Quanto è facile creare un installatore a un clic e raggruppare l'app e l'ambiente necessario - ad es. Jre ecc.?
  3. Il prodotto deve funzionare su Mac e Windows. Questo complica le cose in alcun modo (di nuovo, dal momento che è Java, suppongo che non ci siano gotcha ma vorrei essere avvisato se ce ne sono)
  4. Qual è il framework o la tecnologia che potrebbe essere bene avere sul curriculum come set di abilità?

La mia scadenza è un massimo di 2 mesi: sarebbe sufficiente per un'app Web ragionevolmente semplice dato che ho bisogno di imparare tutte queste tecnologie? Sto solo cercando di avere un senso qui - so che è molto probabilmente impossibile dare una risposta accurata - supponiamo solo di essere abbastanza intelligente e di poter raccogliere qualsiasi stack tecnologico sconosciuto abbastanza velocemente.

Grazie!

È stato utile?

Soluzione

GUI Toolkit

Dato "Mac e Windows", direi che risolve la mia raccomandazione come "swing" (forse con swingx1).

  1. Sono d'accordo con la tua valutazione di AWT. Non supporta il testo formattato in nessun componente out-of-the-box. Manca anche alberi, tabelle (e altri componenti) e persone con esperienza recente che lo usa. Nota, tuttavia, che è anche "in bundle con il normale Java SDK/JRE", proprio come Swing, è solo che è più vecchio e meno abilitato rispetto a Swing in generale.
  2. Se qualcosa completa lo swing sarebbe swingx. Swingx è costruito su swing e fornisce controlli avanzati che non sono disponibili "fuori dalla scatola" nel J2SE.
  3. Swing e SWT sono reciprocamente incompatibili: usa l'uno o l'altro.
  4. Non ho esperienza con Griffon.

L'altalena è la più utilizzata delle opzioni delineate, quindi per ottenere aiuto (ignorando altri fattori potenzialmente importanti nella decisione), sarebbe una buona scelta.

Nota 1) Aggiungi swingx se hanno componenti groovy che presentano facilmente conversazioni filettate, ma sospetto a JTextPane sarebbe sufficiente.


Distribuzione

Per quanto riguarda la distribuzione, è un po 'più complicato di quanto sembri. Molti computer desktop non sono dotati di Java di serie. Quelli che lo hanno già, potrebbero avere una vecchia versione.

  1. Per garantire un JRE della versione minima giusta per eseguire l'app. è disponibile, usa il file deployJava.js (menzionato, con collegamenti, nella pagina JWS qui sotto).
  2. Per fornire un'esperienza di lancio "un clic" per l'utente, cerca di Java Web Start.

Gotcha multipiattaforma

Sfortunatamente, sebbene Java sia X-piatto, ci sono molte cose che i programmatori possono fare quella roba. PER ESEMPIO

  • Non contabilizzare la piattaforma predefinita:
    • Codifica dei file (file.encoding2)
    • Interruzione di linea (line.separator2)
    • Separatore di file (file.separator2)
  • CODING Dimensione fissa ("layout assoluto") app. che verranno mostrati come app di dimensioni diverse. sull'altro sistema operativo.
  • ...

Nota 2. Ciò mostra la proprietà da utilizzare per ciascuno.


Orario

Ovviamente non posso parlare per te, ma posso dirti che non avrei avuto alcuna possibilità di passare da "quale tecnologia" a una "app distribuibile" entro due mesi.

Spero che tu sia più capace di me! ;)

Altri suggerimenti

Puoi provare a farlo in piccoli passaggi: * Come primo passo puoi creare applicazioni con SWT e incorporare l'applicazione in un controllo del browser. * Quindi dovresti spostare le pagine e alcuni controlli dall'app Web al desktop uno per uno.

In questo modo puoi ottenere un'applicazione minima in ore :)

PS Se vuoi un'app iOS con questo approccio, vale la pena guardare questo progetto open source: http://en.wikipedia.org/wiki/phonegap

Hai detto che volevi una soluzione Java, ma tieni presente che ce ne sono molti Opzioni GUI in Python, e hai già scritto la tua applicazione web in Python.

Groovy è un linguaggio di programmazione diverso da Java, ma Groovy funziona sul JVM. Vuoi una soluzione Java o una soluzione JVM? Chiedo perché menzioni Griffon.

Supponendo che tu voglia Java, penso che le tue opzioni principali siano Swing, SWT, Javafx 2 e Apache Pivot. Oracle ha detto che intendono javafx Sostituisci l'oscillazione come piattaforma GUI preferita. Detto questo, Javafx 2 è agli inizi e in questo momento è disponibile solo una versione di anteprima per Mac. Il risultato di Javafx e Apache Pivot è che è possibile utilizzare lo stesso codice per la tua applicazione Web dell'applicazione desktop.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top