UWP 개발, Prism Framework 기반의 새 프로젝트 만들기

작성일: 2023년 10월 10일

1. UWP란 무엇인가?

UWP(Universal Windows Platform)는 마이크로소프트의 플랫폼으로, 다양한 장치(PC, 태블릿, 스마트폰 등)에서 실행되는 애플리케이션을 개발할 수 있게 해줍니다. UWP는
한 번의 코드 작성으로 여러 장치에서 실행 가능한 앱을 만들 수 있도록 하여 개발자의 생산성을 극대화합니다.

UWP의 주요 특징으로는 모바일, PC, Xbox 등 여러 플랫폼에서의 앱 실행 가능성,
XAML 기반의 UI 구성, 현대적인 앱 개발을 위한 다양한 API 제공이 있습니다.
이러한 장점 덕분에 UWP는 점점 더 많은 개발자들에게 인기를 끌고 있습니다.

2. Prism Framework란?

Prism Framework는 WPF, Xamarin.Forms, UWP 등의 XAML 기반 애플리케이션의 품질과
유지 보수성을 향상시키기 위해 설계된 라이브러리입니다.
MVVM(Model-View-ViewModel) 패턴을 채택하여 개발자가 앱을 구성하고 관리를 쉽게 할 수 있도록 돕습니다.

Prism은 다음과 같은 주요 기능들을 제공합니다:

  • 모듈화: 애플리케이션을 여러 모듈로 나눌 수 있어 작업을 분산시키고 코드의 재사용성을 증가시킵니다.
  • 의존성 주입: 필요한 컴포넌트를 쉽게 관리하고, 테스트하기 용이한 구조를 제공합니다.
  • 이벤트 집합: 다양한 이벤트와 커맨드를 효과적으로 관리하고 바인딩할 수 있습니다.

3. Prism Framework 설치하기

Prism Framework를 사용하기 위해서는 NuGet 패키지를 설치해야 합니다.
Visual Studio에서 새 UWP 프로젝트를 생성한 후, NuGet 패키지 관리자를 통해
필요한 Prism 패키지를 다음과 같이 설치합니다:

Install-Package Prism.Windows

설치가 완료되면, 프로젝트의 기본 구조가 준비되었습니다.

4. 새 UWP 프로젝트 생성하기

Visual Studio를 실행하고, ‘새 프로젝트 만들기’ 메뉴를 선택합니다. ‘플랫폼’
카테고리에서 ‘Windows’를 선택한 후, ‘UWP 앱’을 선택합니다.

프로젝트 이름과 저장 위치를 설정한 후, ‘Create’ 버튼을 클릭하여 새 프로젝트를
생성합니다.

5. Prism 기반 구조 설정하기

새로 생성한 UWP 프로젝트에 Prism Framework를 도입하기 위해 기본 구조를 설정합니다.
이 단계에서는 App.xaml.cs 파일을 수정하여 Prism Application으로 설정합니다.

using Prism;
using Prism.Ioc;
public sealed partial class App : PrismApplication
{
    public App() : base() { }

    protected override void RegisterTypes(IContainerRegistry containerRegistry)
    {
        // 여기에서 서비스를 등록합니다.
    }

    protected override void OnInitialized()
    {
        InitializeComponent();
        NavigationService.NavigateAsync("MainPage");
    }
}

6. 모듈 생성과 설정

Prism의 또 다른 장점은 모듈화 지원입니다. 각 기능을 모듈로 나누어 관리할 수 있습니다.
새로운 모듈을 생성하고 Registration 파일을 작성합니다.

public class MyModule : IModule
{
    public void OnInitialized()
    {
        // 모듈이 초기화될 때 호출됩니다.
    }

    public void RegisterTypes(IContainerRegistry containerRegistry)
    {
        containerRegistry.RegisterForNavigation();
    }
}

7. MVVM 패턴 구성하기

UWP와 Prism을 사용하여 MVVM 패턴을 구현합니다. ViewModel을 생성하고,
View와 바인딩하여 데이터 및 테스트를 쉽게 관리합니다.

public class MainViewModel : BindableBase
{
    private string _title;
    public string Title
    {
        get { return _title; }
        set { SetProperty(ref _title, value); }
    }

    public MainViewModel()
    {
        Title = "Hello, Prism!";
    }
}

8. 페이지 구현 및 데이터 바인딩

MainPage.xaml에서 ViewModel을 바인딩하여 UI 요소와 상호작용하도록 만듭니다.
다음은 XAML 코드의 간단한 예시입니다.

<Page x:Class="YourAppNamespace.MainPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Grid>
        <TextBlock Text="{Binding Title}" 
                   FontSize="24" 
                   HorizontalAlignment="Center" 
                   VerticalAlignment="Center"/>
    </Grid>
</Page>

9. 테스트 및 디버깅

애플리케이션을 빌드한 후, UWP 스토어에 배포하기 전에 디버깅과 테스트를
실행합니다. Visual Studio의 디버깅 도구를 활용하여 코드의 문제점을
신속하게 찾을 수 있습니다.

10. 마무리 및 추가 자료

위의 단계들을 통해 Prism Framework를 사용한 UWP 앱 개발의
기본적인 흐름을 이해했길 바랍니다. 추가로 웹사이트 및 책을 참고하여
더 깊이 있는 학습을 하기를 권장합니다.
Prism 공식 문서 또는
UWP 시작하기을 참고하세요.

© 2023 개발자 블로그. All rights reserved.