Question

J'ai vu d'autres questions similaires sur ce sujet ici, mais elles n'ont pas été très utiles, donc je posant cette question.

Quel est le moyen le plus rapide de convertir une application Web simple et de taille raisonnable en un client supérieur de bureau Java ciblé pour PC et Mac? Malheureusement, je ne peux pas partager beaucoup de détails sur l'application ici pour diverses raisons. L'interface utilisateur la plus compliquée de l'application est une page qui contient des discussions en filetage à plusieurs niveaux (veuillez voir ici Pour un exemple illustratif de ce dont je parle.) L'application Web actuelle est basée sur Python, donc je ne peux rien utiliser à partir du code côté serveur (ne pensez pas que c'est un problème)

Je n'ai jamais fait de swing, de swt ou de tout autre travail de GUI client épais basé sur Java. Ma réflexion est plus ou moins définie par des applications Web. Je suis capable de faire du développement d'applications Web de bout en bout (y compris un backend et une interface utilisateur décente en utilisant HTML, CSS et JS) en utilisant Java ou Python. Pour vos réponses, veuillez vous concentrer uniquement sur les solutions Java.

Voici donc mes questions Quel est le meilleur cadre ou outil que je devrais utiliser? J'ai trouvé certains des outils suivants sur le Web dans le cadre de mes recherches.

  1. AWT - ne semble pas que ce soit un bon choix.
  2. Swing qui, je crois, est emballé avec Java SDK / JRE ordinaire. - C'est peut-être mon meilleur pari.
  3. Swt Ce qui semble complimenter le swing d'une manière ou d'une autre.
  4. Griffon basé sur un article ici. Ce cadre utilise Groovy (je n'ai aucune idée de la flexion Adobe Air Groovy, BTW). Des frameworks open source?

Quels sont les autres problèmes que je dois garder à l'esprit? Certains sur lesquels j'aimerais vos commentaires sont:

  1. Comment le fait qu'il doit être déployé sur le client complique-t-il les choses? Puisque nous utilisons Java, je pense que c'est un non-problème. Je suis conscient des échanges habituels entre une application Web et une application de bureau (par exemple, la facilité de déploiement et les mises à niveau, etc.)
  2. Est-il facile de créer un installateur en un clic et de regrouper l'application et l'environnement nécessaire - par exemple. Jre etc?
  3. Le produit doit fonctionner sur Mac et Windows. Est-ce que cela complique les choses de quelque manière que ce soit (encore une fois, car c'est Java, je suppose qu'il n'y a pas de gotchas mais aimerait être prévenu s'il y en a)
  4. Quel est le cadre ou la technologie qui peut être bon à avoir sur le curriculum vitae en tant que compétences?

Ma date limite est un maximum de 2 mois - serait-ce suffisant pour une application Web raisonnablement simple étant donné que j'ai besoin d'apprendre toutes ces technologies? J'essaie juste d'avoir un sens ici - je sais qu'il est probablement impossible de donner une réponse précise - supposons simplement que je suis assez intelligent et que je peux ramasser toute pile technologique inconnue assez rapidement.

Merci!

Était-ce utile?

La solution

Boîte à outils GUI

Étant donné "Mac et Windows", je dirais que cela règle ma recommandation de "swing" (peut-être avec SwingX1).

  1. Je suis d'accord avec votre évaluation de l'AWT. Il ne prend en charge le texte formaté dans aucun composant prêt à l'emploi. Il manque également d'arbres, de tables (et d'autres composants) et de personnes ayant une expérience récente de l'utiliser. Notez cependant qu'il est également "emballé avec le sdk / jre Java ordinaire" tout comme le swing, c'est juste qu'il est plus ancien et moins activé que le swing en général.
  2. Si quelque chose complète le swing, ce serait swingx. SwingX est construit sur Swing et fournit des commandes avancées qui ne sont pas disponibles «hors de la boîte» dans le J2SE.
  3. Le swing et le SWT sont mutuellement incompatibles - utilisez l'un ou l'autre.
  4. Je n'ai aucune expérience avec Griffon.

Le swing est les options les plus utilisées décrites, donc pour obtenir de l'aide (ignorer d'autres facteurs potentiellement importants dans la décision), ce serait un bon choix.

Remarque 1) Ajoutez SwingX s'ils ont des composants groovy qui présentent facilement des conversations filetées, mais je soupçonne un JTextPane suffirait.


Déploiement

En ce qui concerne le déploiement, c'est un peu plus délicat qu'il n'y paraît. De nombreux ordinateurs de bureau ne sont pas livrés avec Java en standard. Ceux qui l'ont déjà, pourrait avoir une ancienne version.

  1. Pour assurer un JRE de la bonne version minimale pour exécuter l'application. est disponible, utilisez le deployJava.js (mentionné, avec des liens, dans la page JWS ci-dessous).
  2. Pour fournir une expérience de lancement de «un clic» pour l'utilisateur, cherchez à Java Web start.

Multiplateforme Gotcha

Malheureusement, bien que Java soit X-PLAT, il y a beaucoup de choses que les programmeurs peuvent faire ce genre de choses. PAR EXEMPLE

  • Ne pas tenir compte de la plate-forme par défaut:
    • Encodage de fichiers (file.encoding2)
    • Saut de ligne (line.separator2)
    • Séparateur de fichiers (file.separator2)
  • Codage des applications de taille fixe («disposition absolue»). qui sera montré comme des applications de différentes tailles. sur d'autres OS.
  • ...

Remarque 2. Cela montre la propriété à utiliser pour chacune.


Calendrier

Évidemment, je ne peux pas parler pour vous, mais je peux vous dire que je n'aurais eu aucune chance de passer de «quelle technologie» à une «application déployable» dans les deux mois.

J'espère que vous êtes plus capable que moi! ;)

Autres conseils

Vous pouvez essayer de le faire en petites étapes: * En première étape, vous pouvez créer des applications avec SWT et intégrer votre application dans un contrôle de navigateur. * Ensuite, vous devez déplacer des pages et quelques contrôles de l'application Web vers le bureau un par un.

De cette façon, vous pouvez obtenir une application minimale en heures :)

PS Si vous voulez une application iOS avec cette approche, il vaut la peine de consulter ce projet open source: http://en.wikipedia.org/wiki/Phonegap

Vous avez dit que vous vouliez une solution Java, mais sachez qu'il y avait beaucoup de Options d'interface graphique dans Python, et vous avez déjà votre application Web écrite en Python.

Groovy est un langage de programmation différent de Java, mais Groovy fonctionne sur le JVM. Voulez-vous une solution Java ou une solution JVM? Je demande parce que vous mentionnez Griffon.

En supposant que vous voulez Java, je pense que vos principales options sont Swing, SWT, Javafx 2 et Apache Pivot. Oracle a dit qu'ils avaient l'intention que Javafx Remplacer le swing comme la plate-forme GUI de choix. Cela dit, Javafx 2 en est à ses balbutiements, et seule une version d'aperçu est disponible pour Mac en ce moment. Le résultat de Javafx et Apache Pivot est que vous pouvez utiliser le même code pour votre application Web que votre application de bureau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top