¿El mejor idioma para crear rápidamente interfaces de usuario sin arrastrar y soltar? [cerrado]

StackOverflow https://stackoverflow.com/questions/460085

  •  19-08-2019
  •  | 
  •  

Pregunta

Soy un estudiante universitario ciego que está tomando una introducción a la clase de programación que se centra en el diseño de la interfaz de usuario. La clase está usando Processing, que es completamente inaccesible. Estoy buscando un lenguaje que me permita crear GUI sin arrastrar y soltar y, con suerte, ser lo suficientemente inteligente como para hacer la mayor parte del diseño sin obligarme a especificar posiciones de control en píxeles.

Conozco Perl, Java, C / C ++, c # y HTML. Estaba considerando crear aplicaciones HTA. Mis únicos requisitos son que el idioma debe ejecutarse en MS Windows y no debe usar SWING o GTK como kit de herramientas subyacente.

¿Fue útil?

Solución

Hablando como programador ciego:

  • C # + WinForms: puede crear el código a mano y usar gestores de diseño o calcular los tamaños en su cabeza, o si está utilizando el lector de pantalla JAWS, existen scripts que lo ayudarán en el diseñador de WinForms.
  • C # + WPF: aquí define su IU en XML, pero es más complejo entenderlo. Ciertamente mira esto, ya que es una muy buena solución. El otro problema con WPF en este momento es que no todos los lectores de pantalla admiten esta nueva tecnología.
  • Jamal Mazrui en www.EmpowermentZone.com ha creado algo llamado "Diseño por código", pero no tengo experiencia con esto.
  • HTML + Javascript sería bueno, pero dudo que esté permitido en su curso.
  • WXWidgets: no tengo mucha experiencia con este kit de herramientas de interfaz de usuario multiplataforma y en varios idiomas, pero creo que tiene administradores de diseño y, por lo tanto, lo usan varios programadores ciegos que conozco.
  • Finalmente, solía diseñar scripts de recursos Win32 a mano, calculando tamaños en mi cabeza (sin administradores de diseño). Esto es ciertamente posible si desea tomar esta ruta.

En resumen, WPF es bueno, pero asegúrese de que su lector de pantalla funcione con este tipo de aplicación. La siguiente mejor alternativa es probablemente WinForms. Si te gusta el diseño por código, úsalo, pero si esta es una habilidad que deseas para el empleo, tenlo en cuenta.

Otros consejos

Diría que xaml sería una buena opción:

  • La manipulación de píxeles no es necesaria
  • Funcionalidad del elemento en el código detrás
  • Puede agregar píxeles cambiando para control más tarde
  • Hay mucha documentación sobre cómo usarlo

Tal vez si nos da una idea de para qué necesitará el idioma, podemos darle mejores sugerencias.

echa un vistazo a XAML. Creo que podría ser un buen comienzo para los creadores modernos de Windows y de interfaz de usuario web.

Tcl / Tk hará exactamente lo que quieras. Los administradores de diseño de paquete y cuadrícula se basan en la ubicación relativa lógica de los widgets.

Aunque el " nativo " el idioma de Tk es Tcl, muchos otros idiomas tienen un enlace Tk.

label .l -text "this is a label"
button .b -text 'quit' -command "exit"
pack .l .b

Echa un vistazo a este proyecto en codeplex. Puede ayudarlo (como alternativa al procesamiento & amp; java) http://bling.codeplex.com/

ling es una biblioteca basada en C # para programar fácilmente imágenes, animaciones, interacciones y visualizaciones en WPF / .NET de Microsoft. Bling está orientado hacia tecnólogos de diseño, es decir, diseñadores que a veces programan, para ayudar en la creación rápida de prototipos de ideas de diseño de interfaz de usuario ricas. Los estudiantes, artistas, investigadores y aficionados también encontrarán útil a Bling como una herramienta para expresar ideas o visualizaciones rápidamente. Las API y construcciones de Bling están optimizadas para la programación rápida de código desechable en lugar de la programación cuidadosa del código de producción.

Bling como las siguientes características que ayudan en la creación rápida de prototipos de interfaces de usuario ricas:

* Declarative constraints that maintain dynamic relationships in the UI without the need for complex event handling. For example, button.Width = 100 - slider.Value causes button to shrink as the slider thumb is moved to the right, or grow as it is moved to the left. Constraints have many benefits: they allow rich custom layouts to be expressed with very little code, they are easy animate, and they support UIs with lots of dynamic behavior.
* Simplified animation with one line of code. For example, button.Left.Animate.Duration(500).To = label.Right will cause button to move to the right of label in 500 milliseconds.
* Pixel shader effects without the need to write HLSL code or boilerplate code! For example, canvas.CustomEffect = (input, uv) => new ColorBl(new Point3DBl(1,1,1) - input[uv].ScRGB, input[uv].ScA); defines and installs a pixel shader on a canvas that inverts the canvas's colors. Pixel shading in Bling takes advantage of your graphics card to create rich, pixel-level effects.
* Support for multi-pass bitmap effects such as diffuse lighting.
* An experimental UI physics engine for integrating physics into user interfaces! The physics supported by Bling is flexible, controllable, and easy to program.
* Support for 2.5D lighting.
* A rich library of geometry routines; e.g., finding where two lines intersect, the base of a triangle, the area of triangle, or a point on Bezier curve. These routines are compatible with all of Bling's features; e.g., they can be used in express constraints, pixel shaders, or physical constraints. Bling also provides a rich API for manipulating angles in both degrees and radians.
* And many smaller things; e.g., a frame-based background animation manager and slide presentation system.
* As a lightweight wrapper around WPF, Bling code is completely compatible with conventional WPF code written in C#, XAML, or other .NET languages.

Bling es un proyecto de código abierto creado por Sean McDirmid y sus amigos para ayudar en el diseño de prototipos rápidos. Utilizamos Bling para mejorar nuestra productividad y nos gustaría compartirlo con otros prototipos de diseño de interfaz de usuario de WPF.

Probablemente intente usar C #. Tiene interfaces razonablemente amigables para los controles comunes de Windows y similares, incluso sin hacer uso de arrastrar y soltar. Simplemente no haga uso del diseñador y el código de forma normal.

No programo en Java, pero sé que Java proporciona la creación programática de la interfaz de usuario y proporciona algunos componentes maravillosos de gestión de diseño (nativos de Java sin necesidad de SWING). Primero me expuse a los Layout Managers en los viejos tiempos de X11 con X Toolkits (¿alguien recuerda Motif, OpenLook, HP Open View?) Y Java parece haber adoptado una tecnología similar.

Puede crear Windows, cuadros de diálogo y menús, todo desde simples administradores de diseño.

Al ser visto por mí mismo y no haber trabajado demasiado de cerca en algo que alguna vez haya sido auditado por accesibilidad o que los usuarios ciegos hayan tenido un gran acceso, no creo que mi respuesta sea terriblemente exhaustiva. Sin embargo, mi primer instinto es decir que algún tipo de arquitectura de servidor web dinámico que genere HTML como C #, PHP o ColdFusion se ajustará a su descripción de manejar la mayor parte del diseño sin requerir que especifique posiciones de control en píxeles. Ciertamente existe la disponibilidad para especificar posiciones de control en píxeles a través de CSS, pero no es obligatorio. Y sé que HTML también tiene estándares bien definidos para la accesibilidad, mientras que no estoy seguro de cuál es el estado de los estándares de accesibilidad con otros tipos de software.

Puedes usar javascript y html. Hay un puerto de procesamiento para javascript, por lo que sabe que es lo suficientemente potente para las cosas que cubrirá su clase. Puede crear HTML sin saber una sola cosa sobre cómo se ve. De hecho, esa es la forma preferida de crear html.

El principal inconveniente de javascript no es javascript en sí, sino el dom del navegador. Esa es la interfaz para controlar los elementos html. Sin embargo, una biblioteca como jquery, o mootools, o dojo puede ocuparse de la mayoría de esos problemas.

En cuanto a la accesibilidad, eche un vistazo a WAI ARIA también introducción de la ópera a WAI ARIA .a

WAI ARIA es una forma de crear aplicaciones javascript enriquecidas mientras se juega bien con los lectores de pantalla. Es muy genial. No he visto más trabajo y pasión dedicados a hacer que la pila web sea accesible en ninguna otra pila de programación.

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