동일한 앱에서 Windows 10 UWP와 Windows Phone 8.1을 모두 대상으로 지정하려면 어떻게해야합니까? 수 있습니다 .

배경

개발자의 관점에서 Windows 10의 주요 판매 지점은 새로운 UWP (Universal * Windows Platform) 입니다.

* “유니버설”정말 “윈도우 10를 실행하는 모든 장치에 대한 보편적 인”, 그리고 “또한뿐만 아니라 윈도우 10를 실행하는 장치에 보편적 있지만 Windows 8.1 및 의미 어디 아마도 윈도우 7″. 따라서 UWP 앱을 작성하는 경우 실제로는 “Windows 10 앱”을 작성하는 것입니다. UWP 앱은 Windows 8.1 및 Windows Phone 8.1 장치에서도 실행 되지 않습니다 . 즉, 이전 버전과 전혀 호환되지 않습니다.

2015 년 3 분기 기준으로 Windows 10은 PCIoT 장치에 사용할 수 있습니다 . Windows 10 Mobile이 일반에 공개되기까지는 적어도 몇 개월이 걸리지 만 아마도 1 년이 넘지 않을 것입니다. 이것은 Windows Phone 8.1이 아직 잠시 동안 남아 있음을 의미합니다.

질문

Windows Phone 앱 개발을 시작하려고합니다. 다음 달 안에 상당히 간단한 앱으로 게시 할 계획입니다. Windows 10 Mobile은 곧 출시되지 않을 것이기 때문에 전 세계적으로 업그레이드되는 장치는 물론 Windows Phone 8.1을 대상으로해야합니다. 가되지 않습니다 때문에, 오래 전에 윈도우 (10) 모바일 롤을, 궁금하네요은 윈도우 10 UWP을 배포 내 솔루션을 준비하는 것이 현명 할 것입니다 경우 뿐만 아니라로서 (도에 나를 수있는 윈도우 폰 8.1 필요한만큼 8.1을 계속 지원하십시오).

UWP 프로젝트와 8.1 프로젝트를 동일한 솔루션으로 그룹화하고 Visual Studio의 Windows 8.1 Universal 템플릿을 사용하여 공유 프로젝트를 통해 소스 파일과 자산을 공유 할 수 있습니다. 내가 올바른 길을 가고 있습니까? 그렇다면 모든 플랫폼 (XAML 포함, 이상적으로는 두 플랫폼에서 동일하거나 적어도 유사한 UI를 갖기를 원함)이 실제로 두 플랫폼 모두에서 제대로 작동하지 않도록하기 위해 따라야 할 추가 지침이 있습니까?

또는 지금은 Windows 10 Mobile에 대해 걱정하지 않고 8.1 프로젝트로 시작하여 나중에 UWP로 마이그레이션 할 수 는 있지만 8.1을 버릴 계획이 없기 때문에 두 버전의 앱을 유지해야합니다. 즉시 사용자. 이 경우 여전히 기능 / XAML 패리티에 대해 걱정해야합니다.



답변

귀하의 의견 중 하나에서 말한 것처럼 이것을 수행하는 가장 좋은 방법은 공유 프로젝트를 사용하고 여러 헤드를 추가하는 것입니다. 귀하의 경우 Windows Phone 8.1 헤드 및 UWP 헤드. 이 위치는 또한 제리 닉슨 앤디 Wigley (I 생각하여 MVA로 표현 된 UWP 8.1 응용 프로그램을 포팅에 대한 섹션에서, 그것을이지만, 이후 업데이트되었습니다).

공유 프로젝트에서 uwp와 phone 8.1에서 실행되는 코드를 구별하기 위해 조건부 컴파일 지시문을 사용해야 할 수도 있습니다. (범용 Windows 8.1 / phone 8.1 앱을 만들 때와 마찬가지로)


답변

앱에 필요한 Windows 기능에 따라 Xamarin 과 같은 플랫폼 을 사용하여 Windows뿐만 아니라 동일한 코드베이스로 iOS 및 Android를 작성할 수 있습니다.


답변

내 경험에서와 같이 : 도우미 / 논리 / 등을 PCL 라이브러리에 배치하는 것이 좋습니다. 그런 다음 변경없이 PCL을 활용할 수있는 두 개의 프로젝트 (각각 UWP 및 WP8 용)를 작성할 수 있습니다. 또한 서비스를 공유하고 모델 및 모델을 볼 수 있습니다 (#if 조건부 컴파일 라인이 거의 없음).

공유 할 가치가없는 유일한 것은 UI 관련 직원입니다. 너무 많은 것들을 전환 / 조절해야하기 때문에 실제로 UWP와 WP8 각각에 대해 별도의 레이아웃을 준비하는 것이 훨씬 쉽습니다.

추신 : 나는 UWP와 WP8.1 Silverlight를 위해 그렇게했습니다.


답변