¿Cómo abordar el desarrollo de aplicaciones de escritorio teniendo en cuenta las aplicaciones web y móviles?

Se me ha encomendado el requisito de producir una aplicación de escritorio con un aspecto ‘sexy’ **. Tengo la intención de utilizar WPF para lograr esto. Uno de los requisitos es que la aplicación de escritorio se expandirá posteriormente a una aplicación web ASP.NET MVC, y luego a una aplicación móvil (probablemente la primera de Android), al mismo tiempo que mantiene la misma apariencia.

** en este contexto, ‘sexy’ significa menús deslizantes y una apariencia y sensación generalmente moderna

Teniendo esto en cuenta, ¿cuál es el mejor enfoque que se debe tomar al comenzar el diseño de la interfaz de usuario del escritorio si deseo reutilizar el estilo de los componentes (y / o)?

Por ejemplo, al crear la aplicación de escritorio, estaría usando XAML para la interfaz de usuario, pero considerando que habrá una versión web de la aplicación que debería tener el mismo aspecto que el escritorio, ¿debería / podría usar HTML / CSS en su lugar? ¿Es ridículo siquiera pensar eso?

Obtendrá 1000 respuestas a esta pregunta, pero sí, creo que es bastante improbable. Intentaré explicar por qué (considerando solo la interfaz de usuario).

Por qué

El punto, para mí, no es lo que puedes reutilizar, sino lo que debes reutilizar.

Una aplicación de escritorio, una aplicación web y una aplicación móvil son diferentes. Diferentes objectives, diferentes interfaces de usuario, diferentes estándares . La forma en que usa su procesador de textos favorito, por ejemplo, es adecuada para una aplicación de escritorio (menú, cinta, menú de contexto y cualquier otra cosa) pero no es el aspecto y apariencia adecuados para una aplicación web. En una aplicación web que navega , probablemente no tenga muchos cuadros de diálogo, el usuario puede avanzar y retroceder entre las páginas. Ahora imagina la misma aplicación para móvil! Debe estar diseñado para ser utilizado con un dedo, los botones deben ser grandes y no debe tener diálogos (y estoy simplificando el tema).

Una aplicación ni siquiera debería ser similar para estas plataformas, cada una tiene sus propias características y pautas . Si no los sigues, tu usuario no se sentirá cómodo con tu aplicación, incluso si su interfaz de usuario es realmente atractiva. Si desea escribir una buena aplicación para la web, asegúrese de que sea diferente (a veces, pero depende del tipo de aplicación, completamente diferente) de la versión de escritorio y la versión móvil será aún más diferente (incluso independientemente de los idiomas). y entorno de desarrollo).
¿Te imaginas una versión de escritorio del sitio StackOverflow? ¿Crees que debería verse y comportarse igual? Supongo que su respuesta será “no”, incluso si todos apreciamos cómo SO funciona para la web.

Echa un vistazo a esto:

  • Pautas de interfaz de usuario de Android
  • Pautas para la experiencia del usuario de Windows

Incluso si no hay una guía estándar para la web, eche un vistazo a este artículo (e imagínese utilizar esos consejos para una aplicación de escritorio):

¿Cuántos puntos de contacto puedes ver? Además, para un conjunto restringido de aplicaciones, puede converger un poco la interfaz de usuario para la web y la interfaz de usuario para el escritorio (las aplicaciones móviles son siempre muy diferentes en uso) pero depende del tipo de usuarios que tenga y su experiencia y antecedentes.

Qué

Si escribe su aplicación con WPF, puede reutilizar parte del código para crear una aplicación Silverlight para la web. Estoy seguro de que no reutilizará todo porque, para una aplicación real, sus diferencias son demasiado grandes.

Para Android (incluso pensando en escribir para Mono) no puedes reutilizarlos (está bien, será una referencia, pero tendrás que volver a escribir). Por supuesto, si usa Windows Phone, su XAML se reutilizará parcialmente e incluso su código.

La idea de utilizar HTML / CSS no es mala, puede escribir una aplicación de escritorio en HTML5 / CSS3 / JavaScript que se ejecutará en todas partes (escritorio con Windows 8, web y móviles). Ok, al menos con pocas modificaciones.

No olvide que una aplicación web se puede utilizar desde un dispositivo móvil. Puede que tenga que refinar la aplicación con el CSS apropiado (y tal vez para usar la versión móvil de su marco de JavaScript favorito) pero no es un trabajo tan (tan).

En mi opinión, la noción de “escribir una vez se ejecuta en todas partes” es una utopía inalcanzable. Tanto en términos generales como más específicamente si desea que los usuarios tengan la mejor experiencia posible.

Por un lado, puede estar seguro de ir por la ruta HTML / CSS, utilizando un navegador web incorporado para todas las plataformas de escritorio, ya sea Windows o Mac. Con un diseñador experto y una buena capacidad de progtwigción de UX, probablemente pueda lograr excelentes resultados. Algunas partes de eso probablemente también podrían reutilizarse como una versión móvil con la forma de una solución móvil PhoneGap / jQuery Mobile / Kendo UI Mobile para todos los principales sistemas operativos móviles, iOS, Android y Windows Phone. El posible inconveniente es que la aplicación no se verá como una aplicación nativa en ninguna de las plataformas. Xamarin Mono Touch o Mono para Android también puede ser algo para mirar .

Por otro lado, podría poner o la lógica de su aplicación detrás de una solución de API Web ASP.NET en la web, autorizar (si es necesario) a través de Azure ACS o OAuth . Desarrolle aplicaciones nativas en WPF para el escritorio, Java para Android e incluso puede reutilizar algo de ese XAML para Windows Phone.

Personalmente, esta última solución tiene mejor sabor para el purista que hay en mí, pero como mencionó, si la marca y el aspecto son muy importantes (con el costo del aspecto nativo), la primera opción probablemente se adapte mejor a sus necesidades.

Como de costumbre, “depende” ya que la respuesta sigue siendo fuerte.

JavaScript se está ejecutando para todos los problemas anteriores. Al usar JavaScript, crear una aplicación de escritorio (Electron), una aplicación móvil (reactiva), Web también React es una mejor tecnología

Intereting Posts