Biblioteca/juego de herramientas GUI multiplataforma que cubre muchas plataformas

Me gustaría desarrollar una aplicación que funcione en Windows x86, macOS, Linux, Android, Windows 10 Mobile e iOS.

Mi principal interés es codificar tanto la lógica empresarial como la GUI de la aplicación una sola vez, preferiblemente en un lenguaje de programación y GUI, y compilar/implementar la aplicación en cualquiera de estas plataformas. La aplicación tendrá el aspecto de una aplicación nativa, es decir, tendrá una ventana de aplicación en Windows/Linux/macOS y se ejecutará en pantalla completa en sistemas operativos móviles.

Soy totalmente consciente de que la apariencia de una aplicación de este tipo no es lo que los usuarios de todos los sistemas operativos podrían esperar, este es un compromiso que uno debe cumplir con tales requisitos.

Hay bastantes preguntas en este sitio sobre este tema, sin embargo, no encontré ninguna que realmente cubra todos estos sistemas operativos, una (como Android) falta en muchos casos. Otras preguntas se limitan a un lenguaje de programación. Partiendo de cero, creo que el lenguaje de programación elegido debe depender de mis necesidades y no al revés.

Estoy interesado en un Toolkit completo:

  • diseñador de GUI
  • utilidades de compilación/despliegue
  • IDE para codificación, depuración, refactorización, ...
  • codifique la aplicación una vez, construya/implemente para cualquiera de estas plataformas
¿Está realmente seguro de que desea escribir una GUI nativa? Escribí una GUI de python-gtk hace algunos meses. Es difícil, lleva mucho más tiempo del estimado y para mí lo más importante: estás solo. Verifique cuántas preguntas y respuestas hay aquí en StackOverflow sobre jquery y herramientas relacionadas, luego compare este número con el número de preguntas sobre gtk o qt. Pregúntese nuevamente: ¿Por qué una GUI nativa y no HTML con JavaScript?
@guettli Me gustaría usar lo que sea más fácil y lo que se pueda empaquetar en una aplicación en todas estas plataformas, de manera que al menos parezca una aplicación nativa o similar. Mi experiencia es escribir código nativo, he leído nombres como html5, javascript, jquery y otros un sinfín de veces, pero nunca llegué a la conclusión de cuál es la mejor manera de utilizar estas tecnologías para crear aplicaciones que se pueden implementar como paquetes instalables.
Escribir código nativo siempre me parece complicado, pero ¿por qué, por ejemplo, no veo ninguna mención de html aquí: en.wikipedia.org/wiki/… ? ¡Me encantaría recibir una respuesta a mi pregunta que muestre cómo se puede usar un conjunto de herramientas que instrumenta html + javascript para crear aplicaciones multiplataforma preparadas para el futuro!
Dijiste "Escribir código nativo siempre me parece complicado". ¿Te diviertes haciéndolo? Si no, ¿por qué lo haces? Siguiente tema: ¿Por qué nadie mencionó HTML? No sé. ¿Debe la gente pensar en gtk+qt si escuchan una GUI nativa? Es como una reacción, no como pensar :-)

Respuestas (2)

Podría escribir su aplicación en HTML y usar Apache Cordova y Github Electron para convertirla en aplicaciones que funcionen en todas estas plataformas. Se verían y se sentirían como aplicaciones nativas, pero serían páginas web detrás de escena. Sería difícil encontrar un diseñador de GUI para HTML, pero podría usar cualquier marco CSS receptivo, como Twitter Bootstrap.

Idealmente, sería posible lograr que la misma base de código funcione en estas plataformas. En la práctica, sin embargo, es posible que necesite, por ejemplo, algunas reglas CSS específicas para ciertas plataformas para corregir ciertos casos extremos. También habría algunas otras diferencias; por ejemplo, la implementación de notificaciones sería diferente para computadoras de escritorio y dispositivos móviles. Pero dado que el 90 % del código se compartiría entre estas aplicaciones, el mantenimiento sería fácil y ahorraría mucho trabajo de código.

Lo más parecido a lo que está pidiendo que yo sepa sería Qt.

Con Qt, puede escribir aplicaciones GUI una vez e implementarlas en sistemas operativos integrados, móviles y de escritorio sin tener que volver a escribir el código fuente.

Tiene una lista de las configuraciones admitidas: http://doc.qt.io/qt-5/supported-platforms.html