Come posso indirizzare sia Windows 10 UWP che Windows Phone 8.1 nella stessa app?

18

Sfondo

Dal punto di vista di uno sviluppatore, il principale punto di forza di Windows 10 è il suo nuovo Universal * Piattaforma Windows (UWP) .

* Dove "universale" significa davvero "universale per tutti i dispositivi che eseguono Windows 10" e non "universale per i dispositivi che eseguono non solo Windows 10, ma anche Windows 8.1 e forse Windows 7" . Quindi, se stai costruendo un'app UWP, stai solo creando una "app per Windows 10". Le app UWP non funzionano anche su dispositivi Windows 8.1 e Windows Phone 8.1, ovvero non sono affatto compatibili con le versioni precedenti.

A partire dal terzo trimestre 2015, Windows 10 è disponibile per PC e dispositivi IoT . Ci vorranno almeno altri pochi mesi prima che Windows 10 Mobile venga rilasciato al pubblico, ma probabilmente non più di un anno. Ciò significa che Windows Phone 8.1 rimarrà in giro ancora per un po '.

Domanda

Sto per iniziare a sviluppare un'applicazione per Windows Phone, e ho intenzione di pubblicarla entro il prossimo mese circa in quanto si tratta di un'applicazione abbastanza semplice. Dal momento che Windows 10 Mobile non arriverà presto, per non parlare dei dispositivi in tutto il mondo che vengono aggiornati, per ora devo indirizzare Windows Phone 8.1. Tuttavia, poiché non sarà quello molto prima del lancio di Windows 10 Mobile, mi chiedo se sarebbe saggio preparare la mia soluzione per la distribuzione su Windows 10 UWP così come Windows Phone 8.1 (che mi consentirà anche di continuare a supportare 8.1 per tutto il tempo necessario).

Vedo che posso raggruppare un progetto UWP e un progetto 8.1 nella stessa soluzione e condividere file sorgente e risorse tramite un progetto condiviso come fatto con il modello universale di Windows 8.1 in Visual Studio. Sono sulla buona strada? Se sì, ci sono delle linee guida aggiuntive che dovrei seguire per assicurarmi che tutto (incluso XAML, come idealmente mi piacerebbe avere la stessa o almeno UI simile su entrambe le piattaforme) funziona correttamente su entrambe le piattaforme tenendo conto di eventuali incongruenze?

In alternativa, non potevo preoccuparmi di Windows 10 Mobile per ora e iniziare con un progetto 8.1, e esegui la migrazione a UWP in seguito, ma dovrei comunque mantenere entrambe le versioni della mia app poiché non pianifico di eliminare immediatamente gli utenti di 8.1. In questo caso, dovrei ancora preoccuparmi della funzionalità / parità XAML.

    
posta BoltClock 14.08.2015 - 16:59
fonte

3 risposte

2

Come dici in uno dei tuoi commenti, il modo migliore per farlo è utilizzare un progetto condiviso e aggiungerne diversi. Nel tuo caso un telefono Windows 8.1 testa e una testa uwp. Questa posizione è stata espressa anche in un MVA di Jerry Nixon e Andy Wigley (credo che questo lo è, ma è stato aggiornato da allora), nella sezione sul porting delle app da 8.1 a uwp.

Nel progetto condiviso potrebbe essere necessario utilizzare direttive di compilazione condizionale per distinguere tra codice eseguito in uwp e telefono 8.1. (Come quando si creano app universali per Windows 8.1 / telefono 8.1)

    
risposta data 16.11.2015 - 14:37
fonte
1

A seconda di come funzioni specifiche di Windows deve essere la tua app, potresti utilizzare una piattaforma come Xamarin che ti consentirebbe di scrivere non solo per Windows, ma anche iOS e Android nella stessa base di codice.

    
risposta data 20.09.2015 - 15:45
fonte
1

Come dalla mia esperienza: vale la pena inserire alcuni helper / logic / etc nelle librerie PCL. Quindi è possibile creare due progetti (rispettivamente per UWP e WP8) che possono utilizzare PCL con zero modifiche. Inoltre, puoi condividere servizi, visualizzare modelli e modelli (con pochissime linee di compilazione condizionali #if).

L'unica cosa che NON vale la pena condividere è lo staff relativo all'IU poiché troppe cose devono essere commutate / condizionate (quindi è molto più semplice preparare layout separati per ciascuna UWP e WP8 anche se sono praticamente le stessa).

P.S. L'ho fatto per UWP e WP8.1 Silverlight

    
risposta data 15.12.2017 - 13:03
fonte