Pregunta

En mi trabajo paralelo como programador, debo escribir un programa en C++ para convertir archivos de audio desde/hacia varios formatos.Probablemente, esto implicará construir una GUI simple.

¿Será un gran esfuerzo crear GUI independientes para Mac y Windows utilizando Cocoa y WinForms en lugar de un conjunto de herramientas multiplataforma como Qt o GTK?
(Tendré que mantener una versión para Windows y una versión para Mac separadas de todos modos)
La GUI probablemente será muy simple y sólo necesitará una funcionalidad muy básica.

Siempre sentí que las GUI nativas son mucho más intuitivas que sus hermanas multiplataforma...

¿Fue útil?

Solución

Si tiene la experiencia, use interfaces nativas, efectivamente duplicará el trabajo que tiene que hacer para la interfaz de usuario, pero según mi experiencia, la interfaz de usuario no nativa es un poco más complicada que sus contrapartes nativas.

Otros consejos

¿Has mirado wxWidgets?Controles nativos multiplataforma.

Los kits de herramientas multiplataforma, más o menos, asumen incorrectamente que la diferencia entre plataformas es una cuestión de ubicación de los botones y estilo de los widgets.En algunos casos, puede salirse con la suya: una aplicación Qt se sentirá bastante nativa tanto en Windows (donde las convenciones de UI son muy laxas) como en Linux, particularmente en un entorno KDE.En general, puedes moverte entre Linux y Windows con relativa facilidad;Las convenciones son similares y la comunidad de Windows es poco estricta al respecto.

Mac es el difícil.Su interfaz de usuario se basa en un paradigma completamente diferente al de Windows o la mayoría de los entornos Linux.

Pero, en general, en una aplicación nativa es más fácil hablar el idioma nativo de la plataforma en más formas que simplemente en el estilo del widget.

Estoy de acuerdo en que, si es posible, las interfaces nativas son el camino a seguir.No he usado wxWidgets recientemente y he oído que ha recorrido un largo camino, pero cuando era wxWindows, creamos una aplicación con él que estaba especificada para ser construida en X/Motif.Cuando terminamos el esfuerzo y lo entregamos, el cliente dijo que no se parecía lo suficiente a X/Motif, y que tuvimos que volver a trabajar toda la interfaz de usuario a nuestra costa...Joel Spolsky escribió un buen artículo sobre esto, pero no recuerdo el título.Lo que sí dijo, IIRC, fue que el problema con Java y alguna otra interfaz de usuario multiplataforma era que "tu perro ladra a mi aplicación": son las pequeñas inconsistencias las que molestan a la gente.

Sí.

Pero en serio, depende de tus objetivos.Estoy de acuerdo en que las bibliotecas de interfaz de usuario nativas, con mucho esfuerzo, darán resultados mucho mejores, pero para muchas aplicaciones, una interfaz de usuario muy básica es suficiente y requiere mucho menos esfuerzo si se toma uno de los marcos multiplataforma existentes. .

Quizás comenzar con la CLI y hacer que la funcionalidad funcione tenga más sentido para una aplicación de conversión de audio.

Pronto escribiré mi propia capa GUI de aplicación multiplataforma para esto.Dependiendo de la complejidad de su aplicación, esto puede ser una fracción de lo que se requiere para QT, GTK o FOX.

La razón es que vemos una tendencia a que los proveedores de plataformas (Apple primero) intenten diseñar su sistema para que parezca único.Esto hace que sea mucho más difícil para QT, GTK, FOX y otras herramientas de plataforma mantenerse constantemente sincronizados con los últimos widgets.

Cuando la técnica subyacente se vuelve cada vez más la misma, los proveedores de sistemas operativos no tienen otra opción que la marca en la apariencia de la plataforma.

wxWidgets utilizó la sintaxis y el preprocesador estándar de C++, lo que le permite modificar fácilmente desde C o C++ simple.Y producirá una apariencia muy nativa donde aparezca, ya sea en GTK, X11, MS-Windows o Mac.

Está maduro desde hace 20 años desde la primera versión, tiene documentación completa con navegación fácil y cuenta con el respaldo de una gran comunidad en todo el mundo.Codifique en su IDE favorito o utilice Eclipse-IDE y wxFormBuilder como diseñador de GUI.La biblioteca wx y la configuración de IDE/Toolchain se pueden encontrar en este enlace: http://yasriady.blogspot.co.id/2016/01/raspberry-pi-toolchain.html

Desarrolle su aplicación en el escritorio Linux y también proporcione un compilador para Raspberry Pi2 (la aplicación de destino probada funciona sin problemas en Raspbian Jessie) ............

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top