Come posso targetizzare 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 è la sua nuova piattaforma Universal * Windows (UWP) .

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

A partire dal terzo trimestre del 2015, Windows 10 è disponibile per PC e dispositivi IoT . Ci vorranno almeno altri 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 circolazione ancora per un po '.

Domanda

Sto per iniziare a sviluppare un'app per Windows Phone e ho intenzione di pubblicarla entro il prossimo mese o giù di lì perché è un'app abbastanza semplice. Poiché Windows 10 Mobile non arriverà presto, per non parlare dei dispositivi in ​​tutto il mondo che vengono aggiornati, per ora devo scegliere come target Windows Phone 8.1. Tuttavia, dal momento che non sarà che molto prima di Windows 10 rotoli cellulare fuori, mi chiedo se sarebbe saggio preparare la mia soluzione per la distribuzione a Windows 10 UWP così come Windows Phone 8.1 (che sarà anche mi permetta 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 e risorse di origine tramite un progetto condiviso come fatto con il modello universale Windows 8.1 in Visual Studio. Sono sulla buona strada? In tal caso, ci sono ulteriori linee guida che dovrei seguire per garantire che tutto (incluso XAML, idealmente mi piacerebbe avere la stessa o almeno simile interfaccia utente su entrambe le piattaforme) funzioni correttamente su entrambe le piattaforme tenendo conto di incongruenze?

In alternativa, per il momento non potrei preoccuparmi di Windows 10 Mobile e iniziare con un progetto 8.1 e migrarlo in UWP in un secondo momento, ma dovrei comunque mantenere entrambe le versioni della mia app poiché non ho intenzione di abbandonare 8.1 utenti immediatamente. In questo caso dovrei ancora preoccuparmi della funzionalità / parità XAML.


3
Proprio come un aggiornamento, sono andato avanti e ho creato una soluzione composta da un progetto condiviso, un progetto UWP e un progetto WP8.1. Lo descriverò più avanti in una risposta una volta che sono sicuro di sapere cosa sto facendo ...
BoltClock,

Eventuali aggiornamenti che desideri condividere sulle tue scoperte su questo particolare argomento? Sono davvero interessato a sapere come funziona questo approccio per te.
Nelson Reis,

3
@Nelson Reis: sto lavorando alla spedizione della mia app per WP8.1 (il che è fantastico!), Quindi non ho ancora iniziato a lavorare sull'app UWP. Ma lo farò presto. Finora, le cose stanno funzionando abbastanza bene sul lato WP8.1.
BoltClock,

Sono solo interessato all'aggiornamento. Come è andato lo sviluppo di WP8.1 e UWP? (Ho meno di 50 punti, quindi non posso commentare) Il motivo è che sto iniziando a sviluppare un'app multipiattaforma e attualmente sto decidendo quali tecnologie utilizzare. ( programmers.stackexchange.com/questions/314850/… )
makons

2
Ehi, mi dispiace che ci sia voluto tanto tempo. Lo sviluppo sulla mia app UWP è arrivato, quindi avrò qualcosa da condividere entro un paio di settimane.
BoltClock,

Risposte:


2

Come dici in uno dei tuoi commenti, il modo migliore per farlo è usando un progetto condiviso e aggiungendo diversi capi ad esso. Nel tuo caso una testa di Windows Phone 8.1 e una testa UWP. Questa posizione è stata espressa anche in un MVA da Jerry Nixon e Andy Wigley (credo questo è, ma è stato aggiornato da allora), nella sezione riguardante porting 8.1 applicazioni per UWP.

Nel tuo progetto condiviso potresti dover usare le direttive di compilazione condizionale per distinguere tra il codice che gira in uwp e il telefono 8.1. (Come quando si creano app universali per Windows 8.1 / telefono 8.1)


1

A seconda di come deve essere specifica l'app di Windows, puoi utilizzare una piattaforma come Xamarin che ti consenta di scrivere non solo per Windows, ma anche iOS e Android nella stessa base di codice.


1

Dalla mia esperienza: vale la pena inserire alcuni helper / logica / ecc. Nelle librerie PCL. Quindi è possibile creare due progetti (rispettivamente per UWP e WP8) che possono utilizzare PCL senza modifiche. Inoltre, è possibile condividere servizi, visualizzare modelli e modelli (con pochissime righe di compilazione condizionali #if).

L'unica cosa che NON vale la pena condividere è il personale correlato all'interfaccia utente poiché troppe cose devono essere commutate / condizionate (quindi è molto più facile preparare layout separati per ciascuno degli UWP e WP8 anche se sono praticamente gli stessi).

PS L'ho fatto per UWP e WP8.1 Silverlight

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.