개발자

우노 플랫폼, 닷넷 생태계의 혼란을 잠재울 수 있을까

Simon Bisson | InfoWorld 2020.07.03
윈도우 개발자와 대화를 나눈 적이 있다면 윈도우 플랫폼, 특히 닷넷과 UWP(Universal Windows Platform)의 방향에 관해 개발자 사이에 혼란과 불만이 만연하다는 사실을 알 것이다. 마이크로소프트는 UWP와 이전의 윈도우 SDK 간의 차이점을 강조하는 한편 빌드(Build) 2020에서 프로젝트 리유니온(Project Reunion)을 발표하면서 개발자를 닷넷 5로 이끌기 위해 애쓰고 있다. 그러나 통합 플랫폼을 제공하는 데는 많은 시간이 걸릴 것이다.
 
© Getty Images Bank

이러한 혼란의 상당 부분은 운영체제 출시와 결합한 윈도우 플랫폼 업데이트의 제공 방식에 기인한다. 프로젝트 리유니온은 윈UI(WinUI) 사용자 인터페이스 구성요소를 기반 운영체제에서 분리해 개발자 플랫폼의 혁신 속도를 높인다. 실제로 이러한 오픈소스 접근 방식은 닷넷 개발 모델과 코드를 최대한 많은 플랫폼으로 확산하는 기회를 제공한다. 대표적인 사례가 최근 3번째 주요 릴리스를 발표한 우노 플랫폼(Uno Platform)의 윈UI 구현이다.
 

우노 플랫폼 3.0

우노 플랫폼을 처음 접한다면, iOS, 안드로이드, 맥OS, 웹에서 실행되는 닷넷 코드를 빌드하는 자마린(Xamarin)의 대안으로 생각하면 가장 쉽다. 윈UI와 웹어셈블리(WebAssembly), 그리고 마이크로소프트 블레이저(Blazor) 개발 프레임워크를 사용해 웹을 통해 친숙한 사용자 인터페이스를 제공한다.

우노 플랫폼 3.0은 윈UI 2.0과 나란히 윈UI 3.0도 지원하므로 새 컨트롤과 현재 컨트롤을 함께 사용할 수 있다. 덕분에 윈UI 3.0과 시스템 수준 프로젝트 리유니온 API의 단계별 롤아웃에 적절히 대응할 수 있다.

우노에는 장점이 많은데, 특히 배우기가 매우 쉽다. 선호하는 IDE에서 코드를 빌드하고 기존 툴과 프레임워크를 사용해 모든 코드 버전에 공통 UI 계층을 만들 수 있다. C#과 XAML을 한 번만 쓰면 윈UI 코드는 윈도우에서는 직접 실행되고, 다른 플랫폼에서는 우노를 통해 실행된다. iOS, 맥OS, 안드로이드용 자마린의 네이티브 툴을 기반으로 하고 웹에서는 모노-WASM(Mono-WASM) 구현을 사용한다.
 

우노로 닷넷 앱 > 맥OS 전환하기

우노의 내부를 보면 우노의 맥OS 구현은 맥OS 앱킷(AppKit)과 iOS UI킷(UIKit) 간의 유사점을 기반으로 한다. 덕분에 개발팀은 기존 iOS 컨트롤 구현물을 활용할 수 있다. 이 방식은 작동은 하지만 일부 컨트롤에 여전히 문제가 있으므로 코드를 사용자에게 배포하기 전에 테스트하는 것이 좋다. 일부 번거로움이 있기는 하지만 우로는 윈도우의 기존 닷넷 앱을 맥OS로 옮기는 효과적인 방법이다. 핵심 맥OS 라이브러리를 기반으로 하는 만큼 최근 발표된 ARM 기반 애플 실리콘에서도 사용할 수 있을 것으로 보인다.

우노의 맥 지원은 비교적 최근 일이다. 2020년 5월에 공개된 이후 윈도우 계산기 앱을 맥OS용으로 이식해 애플 맥OS 스토어에 등록했다. 기존 코드를 맥OS 릴리스로 빌드하려면 새로운 일련의 우노 템플릿과 윈도우 닷넷 명령줄 도구를 사용해야 한다. 우노 2.3 또는 3.0용 새 템플릿을 설치하고 대상으로 하는 프로젝트와 같은 이름으로 맥OS 애플리케이션용 한 앱 스캐폴딩을 만들 수 있다.

이제 이 프로젝트를 나머지 애플리케이션 파일과 같은 폴더로 옮기고, 기존 비주얼 스튜디오 솔루션에 새 프로젝트를 추가한다. 맥용 비주얼 스튜디오를 사용해 맥OS용으로 코드를 컴파일하고 아이폰 시뮬레이터 설정을 구성해 개발 맥OS 디바이스를 대상으로 지정하면 된다.

윈도우 윈UI 앱 작업에 맥용 비주얼 스튜디오를 사용할 수는 없으므로 전체 솔루션에 깃(Git) 또는 이와 비슷한 소스 코드 제어 플랫폼을 사용해 맥OS와 윈도우의 코드 변경을 관리하는 것이 좋다. 앱의 웹어셈블리 버전을 작업 중이라면, 비주얼 스튜디오 코드를 사용해 C# 및 자바스크립트 디버거 확장과 함께 빌드한다. 맥OS는 우노 2.4와 3.0을 모두 지원하고, 최신 버전에서는 모든 주요 앱 스토어에서 다운로드할 수 있는 윈UI 기반 크로스 플랫폼 비디오 플레이어 애플리케이션 데모가 제공된다.
 

우노에서 윈UI 3.0 사용하기

윈UI 3.0으로 작업할 계획이라면 우노 최신 3.0 릴리스를 사용해야 한다. 이 경우에도 우노 플랫폼의 닷넷 템플릿을 사용해 코드의 스캐폴딩을 구성한다. 기존 코드를 윈UI 3.0으로 이식한다면 마이크로소프트 컨트롤과 우노 코드, 양쪽 모두에서 사용 중인 네임스페이스를 변경해야 한다. 비주얼 스튜디오에 내장된 리팩토링 툴을 사용하면 쉽게 할 수 있다.

우노 플랫폼에서 한 가지 흥미로운 것은 듀얼 스크린 디바이스 지원이다. 기존 코드를 우노로 가져와 듀얼 스크린 컨트롤을 추가하면 최소한의 변경만으로 윈도우에서 향후 출시될 안드로이드 기반 서피스 듀오로 앱을 이식할 수 있다. 마이크로소프트가 듀얼 스크린 모바일 애플리케이션을 중요하게 생각하면서 안드로이드 릴리스를 개선하기 위해 구글과 협력하고 있는 만큼, 우노 같은 툴은 윈도우의 기존 대화면 환경과 태블릿 환경을 폴딩 및 듀얼 스크린 안드로이드 하드웨어로 가져오는 중요한 경로가 될 것이다.
 

우노 플랫폼과 닷넷 애플리케이션 개발의 미래

마이크로소프트가 윈UI와 프로젝트 리유니온을 통해 미래에 대한 불안을 없애고 닷넷 생태계에서 애플리케이션을 빌드하는 방법에 관한 혼란을 없애기 위해 노력하고 있음을 분명하다. 그러나 빠르게 구현될 것이라는 마이크로소프트의 약속과 별개로, 개발자 관점에서는 여전히 너무 느리게 느껴질 수 있다. 이럴 때 우노 플랫폼과 자마린의 MAUI는 기존 닷넷 코드를 기반으로 새로운 플랫폼에 더 신속하게 접근하는 방법이다.

최소한의 코드 변경으로 최대한 많은 사용자를 공략하고자 한다면 맥OS와 웹 UI 지원을 닷넷에 추가한 우노 플랫폼이 더 좋은 선택일 것이다. 많은 개발 시간을 아끼고 지원 부하를 최소한으로 유지해 줄 닷넷의 미래를 향한 길이기도 하다.

또한, 우노를 사용하면 다른 면에서도 기존 닷넷 코드의 미래를 보장할 수 있다. 브라우저 내 웹어셈블리와 독립형 WASI(WebAssembly System Interface) 애플리케이션은 코드를 새로운 세대의 에지 하드웨어, 특히 ARM 및 기타 저전력 프로세서 기반의 소형 규격, 소화면 디바이스로 가져오는 과정을 간소화해준다. editor@itworld.co.kr

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.