Universal Windows Platform
[image]
UWP가 지원하는 장치들과 기능들
[clearfix]
1. 개요
Windows 10의 출시와 함께 마이크로소프트에서 개발한 .NET Core 기반의 애플리케이션 개발 플랫폼으로, Windows Runtime을 계승했다. 언어는 C++, VB.NET, C\#, F\#, JavaScript 등 .NET Framework에서 지원하는 언어면 다 지원된다.[1] UI는 XAML이라는 언어로 구현되며[2] , 앱 설치 확장자는 '''"*.appx"'''이다. 비주얼 스튜디오에서는 C\# 기반의 UWP 앱 개발을 우선적으로 밀어주고 있다.
2. 지원 장치
- Desktop(Windows 10 32bit, 64bit)
- [3]
- Xbox One, S
- 마이크로소프트 서피스 허브
- 마이크로소프트 홀로렌즈
- IoT Device(라즈베리 파이)
3. 기능 목록
3.1. 홀로렌즈
- AR
3.2. IoT Device
- GPIO
4. 평가
'''성능과 활용성이 좋지 않다.''' 전통적인 Win32 앱에 비해 UWP 앱은 평균적인 퍼포먼스가 떨어지며, 사용자 레벨에서 이용할 수 있는 기능에도 제약이 존재하고 디자인이 획일화되는 문제가 있다. 무엇보다 마이크로소프트가 직접 만든 앱조차도 절대 다수가 Win32로 만들어져 있으며, UWP를 활용한 것은 계산기, 사진, 메일 앱 등 기본적인 애플리케이션에 머무르고 있다. 비주얼 스튜디오나 마이크로소프트 오피스 같은 무거운 프로그램들은 여전히 Win32를 사용 중이고, 엣지 레거시는 UWP 앱이었다가 크로미움 기반의 Win32 앱으로 다시 만들었다. 다시 말해 MS 본인들조차 개발자들에게 UWP의 미래를 확신시켜주지 못하고 있다. UI도 모바일과 태블릿을 위해 디자인되었으나 둘 다 망해서 데스크탑을 쓰는 대부분의 유저에겐 불편한 요소다.
초창기 마이크로소프트 스토어는 UWP 앱만 등록할 수 있었고, 이에 따라 앱의 절대적인 숫자가 매우 부족해지는 현상을 낳았다. 이후 게임 분야를 시작으로 Win32 앱의 등록을 차차 허가하면서 이러한 제약은 풀리게 되었고 UWP의 입지는 더더욱 낮아지게 되었다. #
반대로 Win32를 이용해야 할만큼 퍼포먼스를 요구하는 프로그램이 아닌 윈폼(Windows Forms)이나 WPF 수준으로 충분한 앱의 개발을 하기에도 그다지 적절하지 않다. 성능이전에 개발자가 넘어가기에는 생각보다 차이점이 있어 옮겨가기에 어려움이 있기 때문. 윈폼과 WPF 간에는 서로 참고하기가 좋은데 반해 UWP로 만들 때는 이 둘을 참고하기가 그리 좋지 않다. 가장 기본적인 차이점으로 디버깅 시 출력화면에 나오는 출력은 콘솔로 출력하는게 아닌 디버그 출력으로 따로 지정해야 볼 수 있다던가, 윈폼과 WPF에서는 기본으로 지원하는 데이터그리드가 UWP에서는 NuGet 패키지로 따로 설치를 해줘야 한다던가, 그마저도 WPF에선 흔히 쓰이는 데이터 테이블을 만들어 데이터그리드에 넣는 방식이 UWP(에서 쓰기 위한 NuGet 패키지)에서는 같은 방식으로는 지원이 안된다던가[4] 등등 아주 기본적인 부분에서부터 차이가 존재하기 때문이다.
더욱이 웬만하면 새로운 플랫폼은 전에 있던 플랫폼의 장점을 가져가려고 하는 편인데 윈폼이나 WPF의 이점[5] 을 UWP에서 살려주는게 아닌, UWP에서 지원하던 플루언트 디자인을 윈폼과 WPF에서 쓸 수 있게 패치하는 등 사실상 UWP를 버리는 것이나 다름없는 움직임을 보여주고 있기 때문에 더더욱 넘어갈 이유가 없어지는 중이다.
하드웨어 타겟팅에도 문제가 있는 게, 전통적인 x86 계열의 윈도우 플랫폼(데스크톱, 노트북, 태블릿 등)에서는 굳이 UWP가 아니더라도 쓸만한 프로그램이 많다. 다른 폼팩터를 보자면 윈도우폰은 시장에서 철수, 홀로렌즈는 언제 보급될지도 모르고 Xbox는 윈도우 10과 Xbox에서 둘 다 돌아가는 UWP 앱을 개발할 일이 없으며(게임은 Win32 기반이므로), 라즈베리 파이는 리눅스 중심으로 돌아가기 때문에 UWP에 대한 수요가 전무하다. 이런 상황이니 결국 MS 플랫폼에서 공통적으로 사용할 수 있다는 점도 그다지 매력적이지 못하다.
그나마 남은 장점이라고는 마이크로소프트 스토어를 이용할 수 있다는 것과 자체 광고 네트워크를 지원한다는 점인데, 마이크로소프트 스토어 포 비즈니스(Microsoft Store for Business)와 마이크로소프트 스토어 포 에듀케이션(Microsoft Store for Education)은 지원을 중단할 거란 기사가 나오거나, 마이크로소프트 자체 광고도 2020년 6월 1일부로 서비스를 중단하기로 발표해버리는 등 당장 마이크로소프트 스토어가 사라지진 않더라도 미래가 영 좋지 않다. 물론 애플리케이션의 배포 인프라와 결제 시스템 등이 자체적으로 지원되기 때문에 영세 개발사에게 도움이 되는 측면도 있겠지만, App Store나 Play Store와 달리 기본적인 이용률 자체가 무척 낮아서 온전히 MS 스토어에만 의존하는 앱은 그리 많지 않다.
결국 Project Reunion이라는 이름으로 UWP와 Win32 API를 통합한다고 한다.