¿Cómo puedo dirigirme a Windows 10 UWP y Windows Phone 8.1 en la misma aplicación?

18

Antecedentes

Desde el punto de vista del desarrollador, el principal punto de venta de Windows 10 es su nueva Plataforma Universal * Windows (UWP) .

* Donde "Universal" realmente significa "universal para todos los dispositivos que ejecutan Windows 10", y no "universal para dispositivos que ejecutan no solo Windows 10, sino también Windows 8.1 y quizás Windows 7". Entonces, si está creando una aplicación para UWP, en realidad solo está creando una "aplicación para Windows 10". Las aplicaciones para UWP no se ejecutarán incluso en dispositivos con Windows 8.1 y Windows Phone 8.1, es decir, no son compatibles con versiones anteriores.

A partir del tercer trimestre de 2015, Windows 10 está disponible para PC y dispositivos IoT . Pasarán al menos otros meses antes de que Windows 10 Mobile se lance al público, pero probablemente no más de un año. Esto significa que Windows Phone 8.1 seguirá existiendo por un tiempo todavía.

Pregunta

Estoy a punto de comenzar a desarrollar una aplicación de Windows Phone, y planeo publicarla dentro del próximo mes, ya que es una aplicación bastante simple. Dado que Windows 10 Mobile no llegará pronto, y mucho menos los dispositivos de todo el mundo se están actualizando, tengo que apuntar a Windows Phone 8.1 por ahora. Sin embargo, ya que no será que mucho antes de Windows 10 rollos móvil fuera, me pregunto si sería prudente para preparar mi solución para el despliegue de Windows 10 UWP , así como teléfono de Windows 8.1 (que también me permitirá Continuar apoyando 8.1 durante el tiempo que necesite

Veo que puedo agrupar un proyecto UWP y un proyecto 8.1 en la misma solución, y compartir archivos y activos de origen a través de un proyecto compartido como se hizo con la plantilla universal de Windows 8.1 en Visual Studio. ¿Estoy en el camino correcto? Si es así, ¿hay alguna pauta adicional que deba seguir para garantizar que todo (incluido XAML, ya que idealmente me gustaría tener la misma o al menos una interfaz de usuario similar en ambas plataformas) realmente funcione correctamente en ambas plataformas, lo que representa cualquier incongruencia?

Alternativamente, no podría preocuparme por Windows 10 Mobile por ahora y comenzar con un proyecto 8.1, y migrarlo a UWP más adelante, pero todavía tendría que mantener ambas versiones de mi aplicación ya que no planeo abandonar 8.1 usuarios de inmediato. Todavía tengo que preocuparme por la característica / paridad XAML en este caso.

BoltClock
fuente
3
Solo como una actualización, seguí adelante y creé una solución que consistía en un proyecto compartido, un proyecto UWP y un proyecto WP8.1. Lo detallaré en una respuesta más tarde una vez que esté seguro de saber lo que estoy haciendo ...
BoltClock
¿Alguna actualización que quiera compartir sobre sus descubrimientos sobre este tema en particular? Estoy realmente interesado en saber cómo funciona este enfoque para usted.
Nelson Reis
3
@Nelson Reis: Estoy trabajando en enviar mi aplicación para WP8.1 (¡lo cual es genial!), Así que todavía no he comenzado a trabajar en la aplicación UWP. Pero lo haré pronto. Hasta ahora, las cosas funcionan bastante bien en el lado WP8.1.
BoltClock
Solo estoy interesado en la actualización. ¿Cómo fue el desarrollo de WP8.1 y UWP? (Tengo menos de 50 puntos, así que no puedo comentar) La razón de esto es que estoy comenzando a desarrollar una aplicación multiplataforma, y ​​actualmente estoy decidiendo qué tecnologías usar. ( programmers.stackexchange.com/questions/314850/… )
makons
2
Hola, lo siento, esto está tomando tanto tiempo. El desarrollo de mi aplicación para UWP ha estado llegando, así que tendré algo que compartir en las próximas semanas.
BoltClock el

Respuestas:

2

Como dice en uno de sus comentarios, la mejor manera de hacerlo es mediante el uso de un proyecto compartido y agregando varias cabezas. En su caso, una cabeza de Windows Phone 8.1 y una cabeza de UWP. Esta posición también fue expresada en un MVA por Jerry Nixon y Andy Wigley (creo que esto es todo, pero se ha actualizado desde entonces), en la sección sobre portar aplicaciones 8.1 a uwp.

En su proyecto compartido, es posible que deba usar directivas de compilación condicional para diferenciar entre el código que se ejecuta en uwp y el teléfono 8.1. (Al igual que al crear aplicaciones universales de Windows 8.1 / teléfono 8.1)

Corcus
fuente
1

Dependiendo de cuán específica sea la característica de Windows que necesita su aplicación, puede utilizar una plataforma como Xamarin que le permitiría escribir no solo para Windows, sino también para iOS y Android en la misma base de código.

Kyle JV
fuente
1

Según mi experiencia: vale la pena colocar algunos ayudantes / lógica / etc. en las bibliotecas PCL. Luego puede crear dos proyectos (para UWP y WP8 respectivamente) que pueden utilizar PCL con cero cambios. Además, puede compartir servicios, ver modelos y modelos (con muy pocas líneas de compilación condicional #if).

Lo único que NO vale la pena compartir es el personal relacionado con la interfaz de usuario, ya que hay que cambiar / condicionar demasiadas cosas (por lo que es mucho más fácil preparar diseños separados para cada UWP y WP8, incluso si son prácticamente lo mismo).

PD: hice eso para UWP y WP8.1 Silverlight

Yury Schkatula
fuente