Як я можу націлити на Windows 10 UWP та Windows Phone 8.1 в одному додатку?


18

Фон

З точки зору розробника, основною продажною точкою Windows 10 є її нова Universal * платформа Windows (UWP) .

* Де "Universal" насправді означає "універсальний для всіх пристроїв, на яких працює Windows 10", а не "універсальний для пристроїв, які працюють не лише з Windows 10, але і з Windows 8.1 і, можливо, з Windows 7". Тож якщо ви будуєте додаток UWP, ви насправді просто створюєте "додаток Windows 10". Програми UWP не працюватимуть навіть на пристроях Windows 8.1 та Windows Phone 8.1, тобто вони взагалі не сумісні із зворотним.

Станом на 3 квартал 2015 року Windows 10 доступний для ПК та пристроїв IoT . До виходу Windows 10 Mobile до публіки вийде ще мінімум кілька місяців, але, мабуть, не більше року. Це означає, що Windows Phone 8.1 ще деякий час залишатиметься навколо.

Питання

Я збираюся розпочати розробку програми для Windows Phone, і я планую опублікувати її протягом наступного місяця або близько того, оскільки це досить просте додаток. Оскільки Windows 10 Mobile вже не скоро з’явиться, не кажучи вже про пристрої, які надходять у світ, то зараз я маю націлитись на Windows Phone 8.1. Однак, так як він не буде , що задовго до того, для Windows 10 мобільних ролів, я задаюся питанням , якщо б доцільно підготувати моє рішення для розгортання в Windows 10 UWP , а також Windows Phone 8.1 (який також дозволить мені продовжуйте підтримувати 8.1 стільки, скільки мені потрібно).

Я бачу, що я можу згрупувати проект UWP та 8.1 проект у тому ж самому рішенні та обмінюватися вихідними файлами та ресурсами за допомогою проекту Shared, як це зроблено з шаблоном Windows 8.1 Universal у Visual Studio. Я на правильному шляху? Якщо так, чи є якихось додаткових вказівок, яких я повинен дотримуватися, щоб переконатися, що все (включаючи XAML, оскільки в ідеалі я хотів би мати однаковий або хоча б подібний інтерфейс користувача на обох платформах) насправді працює правильно на обох платформах, враховуючи будь-які невідповідності?

Крім того, я просто не можу не турбуватися про Windows 10 Mobile на даний момент і почати з проекту 8.1, і перенести його на UWP пізніше, але мені все одно доведеться підтримувати обидві версії мого додатка, оскільки я не планую копати 8.1 користувачів негайно. Мені все одно доведеться турбуватися про паритет функції / XAML у цьому випадку.


3
Так само, як оновлення, я пішов наперед і створив рішення, що складається із спільного проекту, проекту UWP та проекту WP8.1. Я детально
розкажу

Будь-які оновлення, які ви хочете поділитися своїми відкриттями з цього питання? Мені дуже цікаво знати, як працює цей підхід для вас.
Нельсон Рейс

3
@Nelson Reis: Я працюю над доставкою свого додатка для WP8.1 (що чудово!), Тому я ще не почав роботу над додатком UWP. Але я скоро. Поки що справи працюють досить добре на стороні WP8.1.
BoltClock

Мене просто цікавить оновлення. Як пішла розробка WP8.1 та UWP? (У мене менше 50 балів, тому я не можу коментувати) Причиною цього є те, що я починаю розробляти кросплатформенний додаток, і я зараз вирішую, які технології використовувати. ( programmers.stackexchange.com/questions/314850/… )
makons

2
Гей, пробачте, це забирає так довго. Розвиток у моїй програмі UWP розвивається, тому мені буде чим поділитися протягом найближчих двох тижнів.
BoltClock

Відповіді:


2

Як ви говорите в одному зі своїх коментарів, найкращий спосіб досягти цього - це використання спільного проекту та додавання до нього кількох голів. У вашому випадку Windows 8.1 голова і uwp голова. Цю позицію також висловив у MVA Джеррі Ніксон та Енді Віглі (я думаю, це так, але воно оновлювалося з тих пір), у розділі про перенесення 8.1 додатків на uwp.

У вашому спільному проекті вам, можливо, доведеться використовувати директиви умовної компіляції для розмежування коду, який працює в uwp і телефону 8.1. (Як і під час створення універсальних додатків для Windows 8.1 / телефону 8.1)


1

Залежно від того, якою функцією Windows має бути ваша програма, ви можете користуватися такою платформою, як Xamarin, яка дозволить вам писати не тільки для Windows, але і iOS та Android в одній базі коду.


1

Як на моєму досвіді: варто розмістити в бібліотеках PCL кілька помічників / логіки / тощо. Тоді ви можете створити два проекти (для UWP та WP8 відповідно), які можуть використовувати PCL з нульовими змінами. Крім того, ви можете ділитися службами, переглядати моделі та моделі (дуже мало #if умовних рядків компіляції).

Єдине, на що НЕ варто ділитися, - це персонал, що стосується інтерфейсу користувача, оскільки занадто багато речей потрібно перемикати / кондиціонувати (тому набагато простіше підготувати окремі схеми для кожного з СРП та РП8, навіть якщо вони практично однакові).

PS Я це зробив для UWP та WP8.1 Silverlight

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.