Selección de una plataforma para desarrollar aplicaciones de escritorio

Esta pregunta se ha hecho muchas veces y he pasado por la mayoría de ellas. La mayoría de estas preguntas son antiguas y no incluyen nuevas plataformas para desarrollar aplicaciones de escritorio.

Necesito desarrollar una aplicación básica de escritorio con funcionalidad CRUD con base de datos Sqlite o MySQL. Solía ​​​​trabajar con Java (Swing), pero Swing JSR se retiró y Netbeans eliminó Swing Application Framework .

Necesito aprender una nueva tecnología para desarrollar aplicaciones de escritorio (preferiblemente independientes de la plataforma). Hasta ahora he investigado las siguientes tecnologías.

Titanium Desktop (ahora llamado TideSDK): Esto es bueno, pero algunas características avanzadas de PHP no son compatibles y están llenas de errores.

QT: parece prometedor y tiene excelentes funciones, pero no pude encontrar ningún libro sobre la última versión de QT 5. Todos los libros sobre QT tienen entre 4 y 5 años y están escritos para QT 4.

¿Hay alguna otra tecnología que pueda usar para desarrollar aplicaciones de escritorio? y agregarlo a mi conjunto de habilidades?

Gracias por su ayuda y disculpe si esta pregunta es demasiado general.

¡Bienvenido al Intercambio de pilas de recomendaciones de software! Aunque su descripción contiene varios criterios necesarios para recomendar el software correspondiente, sufre algunos problemas de formato para que se destaquen claramente. Eche un vistazo a ¿Qué se requiere para que una pregunta contenga "suficiente información"? Luego edite su pregunta y vea si puede incorporar algunas de estas mejoras. ¡Esto mejorará significativamente sus posibilidades de obtener buenas respuestas!
QT es probablemente bueno, GTK también es multiplataforma.
@Linuxios Estoy de acuerdo, es bueno. Pero el problema es la falta de libros. La documentación en línea es buena y muestra información detallada sobre cada clase, pero no muestra cómo conectar todas estas clases para construir un sistema. Para hacer el show probablemente necesitaré un libro. Todos los libros que he encontrado hasta ahora tienen entre 4 y 5 años y están destinados a QT 4, por lo que están desactualizados.
¿Podría por favor detallar lo que está mal con Java/Swing?
@NicolasRaoul Java abandonó este proyecto y ya no se mantiene. Puedes encontrar más detalles en su sitio web.
Deberías echarle un vistazo a Electron. electrón.átomo.io

Respuestas (4)

La nueva tendencia es utilizar tecnologías web (frameworks HTML5/javascript) para crear aplicaciones de escritorio. Eche un vistazo a Chromium Embedded Framework (CEF) que le permite integrar el motor Chromium en su aplicación de escritorio. Consulte la lista de aplicaciones que utilizan CEF en wikipedia. Hay enlaces disponibles para muchos lenguajes como C, C++, Java, Python, C#, Delphi, Go lang.

Con respecto a Titanium Desktop y TideSDK, ya no están desarrollados. La última confirmación de TideSDK fue hace un año . Y parece que este proyecto durante todo su tiempo no salió de la versión beta. La compañía detrás de esto está trabajando en su nuevo producto llamado TideKit . Pero no tiene garantía de que no se abandonará como Titanium y TideSDK, o que alguna vez saldrá de la versión beta.

Titanium y TideSDK te permiten desarrollar en PHP, pero es una especie de plataforma nueva, funciona de manera diferente, PHP es como JavaScript para HTML. Si desea desarrollar aplicaciones de escritorio en PHP de la misma manera que desarrolla sitios web, eche un vistazo al proyecto PHP Desktop . Incorpora un servidor web interno, un navegador web (IE o Chrome) y un intérprete de php. El flujo de trabajo al que está acostumbrado al crear sitios web PHP sigue siendo casi el mismo, simplemente copie los scripts en el directorio www/. No debe tropezar con ningún error nuevo que no esté ya presente en PHP, también es compatible con todas las funciones de PHP, actualizar la versión de PHP es tan fácil como copiar los nuevos archivos binarios en el directorio php/. Actualmente, PHP Desktop solo es compatible con Windows, aunque hay planes para Linux y Mac.

También existe el proyecto Node-Webkit que te permite desarrollar en Javascript usando Node.js. Incorpora el motor Chromium a pesar de su nombre.

En los últimos días apareció el framework Atom Shell , desarrollado por Github. Le permite escribir aplicaciones de escritorio multiplataforma utilizando JavaScript, HTML y CSS. Se basa en node.js y Chromium y se usa en el editor Atom .

Divulgación: soy el autor de los enlaces CEF para Python y Go lang. También autor de PHP Desktop.

También puede usar C#/mono en combinación con XWT (siempre y cuando su GUI no sea demasiado compleja. Por experiencia personal: tan pronto como desee un DataGrid que tenga una columna ComboBox, manténgase alejado de él).

https://github.com/mono/xwt

Breve explicación sobre XWT: Usted programa su código contra la librería XWT. Cuando implemente su aplicación, deberá distribuir XWT.GTK, XWT.WPF o XWT.Cocoa lib con ella.

XWT verificará cuál de esas 3 librerías está disponible e (intentará) inicializarla.

edite solo una advertencia justa: XWT debe considerarse software alfa. No es una función completa y no está libre de errores. En el lado positivo, está en git. Por lo tanto, puede ver qué sucede exactamente dentro de un método y, a veces, incluso arreglarlo usted mismo.

No hay un editor de GUI, pero es bastante fácil trabajar con él y elimina (en mi opinión) esas feas cosas de GTK.

Para la conexión de la base de datos, sugeriría LINQConnect en combinación con EntityDeveloper de DevArt. Si no está utilizando demasiadas tablas por base de datos, ¡es gratis! También puede conectarse a casi cualquier tipo de base de datos con muy poca cantidad de trabajo (al menos si eliminó la capa de su base de datos).

Actualización Q2 2018

bueno, 4 años después y ha habido algunos cambios. Reemplace XWT con Xamarin.Forms ya que tiene o tendrá un 'envoltorio' GTK2. La ventaja de Xamarin es que básicamente se ejecuta en todo. iOS, Android, Windows, Linux (una vez finalizado el envoltorio GTK 2), MacOS.

En cuanto al acceso a la base de datos. No estoy seguro de cómo me siento acerca de LinqConnect. Para proyectos más grandes, faltan algunas características. He incursionado con llblgen pero, además de una licencia de prueba, no hay una versión gratuita disponible. Por el lado positivo, uno puede obtener acceso a su código e incluso realizar cambios, después de comprar una licencia. Sin embargo, todavía no tengo ninguna experiencia real con él.

aplicación de escritorio con funcionalidad CRUD

Es perfecto para Delphi o su alternativa gratuita (y compatible con Linux) Lazarus .

Tienen un tipo especial de controles de formulario (controles de datos ) para mostrar y modificar fácilmente los datos de la base de datos.

Hay una lista de bibliotecas GUI independientes de la plataforma en Wikipedia.

Algunos de ellos son bastante modernos y relativamente populares:

  • Xamarin.Forms con C# como lenguaje de programación predeterminado. Supongo que está familiarizado con C #, según el comentario de IIS.
  • OpenJFX (lenguajes basados ​​en Java y JVM)
  • Qt (C++)

También hay Electron que actualmente no está en la lista, pero vale la pena echarle un vistazo. Utiliza tecnologías (JavaScript, HTML, CSS) típicamente asociadas con la web para aplicaciones de escritorio.