Consumer Preview 이후 앱 개발자를 위해 변경된 내용

Windows 8 앱 개발자 블로그

Windows 8 엔지니어링 팀에서 제공하는 Windows 8용 Metro 스타일 앱 개발의 이해

Consumer Preview 이후 앱 개발자를 위해 변경된 내용

  • Comments 0

Microsoft는 새로운 Release Preview개발자 도구를 잇달아 내놓으며 Windows 8 최종 버전을 향해 한걸음 더 나아가게 되었습니다. MS 엔지니어링 팀은 Consumer Preview에서 했던 것처럼 최상의 개발 환경을 제공하기 위해 최선을 다해 Windows 8 개발 플랫폼을 개선하고 있습니다. 이 글에서는 이제까지 작업해 온 새로운 몇 가지 기능에 대해서 살펴보고 기존 Consumer Preview 앱을 Release Preview로 마이그레이션할 수 있는 방법도 알아보도록 하겠습니다.

Windows 개발 프로세스에 관한 몇 가지 중요한 사항

Release Preview에서 새롭게 선보이는 일부 기능을 소개하기에 앞서 우리가 어떤 생각을 갖고 Windows 8의 기능을 강화하고 있는지를 간략하게 설명하겠습니다. 현재의 개발 프로세스 단계에서는 Windows의 대다수 기능이 플랫폼에 적용되고 있으며, Release Preview를 통해 기존 경험을 보완하고 다듬는 데 집중하고 있습니다.

그러면 개발자에게는 어떤 의미가 있을까요? Release Preview에서 변경된 사항은 Windows 8 이전 버전에 비해 그 수가 매우 적을 뿐 아니라, 새로 선보이는 기능도 특정 요구 사항을 충족하기 위해 추가되는 것입니다. 대부분의 변화는 기존의 Consumer Preview 시나리오를 보완하고 강화하는 차원에서 이루어지고 있습니다. 플랫폼 버그를 수정했고 성능을 강화하고(코드에서 몇몇 사소한 부분을 변경하여 앱을 더욱 손쉽고 빠르게 만들 수 있도록 함) 만족할 만한 결과가 나올 때까지 개발자 환경을 향상시켰습니다.

이로써 개발자가 Consumer Preview에서 앱을 개발하며 얻은 모든 지식과 기술을 Release Preview에서도 활용할 수 있게 되었으므로 매우 의미 있는 성과라 할 수 있습니다. 또한 기존 앱을 다시 수정해야 해야 하는 번거로움도 최소화했습니다. 그럼에도 불구하고 개발자 플랫폼은 이전보다 더 효율적으로 작동합니다. 그동안 변경된 사항을 살펴보면 우리가 작업해 온 것에 만족하실 것입니다.

높은 우선 순위 로밍 앱 설정

Windows 8 Application Data를 통해 로밍 앱 데이터 기반의 앱 설정의 경우 "한 번만 설정하면 어디서든 사용할 수 있는" 동작을 손쉽게 구현할 수 있게 됩니다. 개발자가 작업해야 할 부분은 거의 없으며, 여러분의 앱 사용자는 모든 Windows 8 PC에서 동일한 앱 설정을 그대로 사용할 수 있습니다. 우리는 Release Preview에서 이 기능을 확장하여 HighPriority 로밍 앱 설정이 포함되도록 했습니다. 로밍의 우선 순위를 높이면 앱이 적은 양의 상태 데이터를 자주 로밍하게 되므로 PC상에서 연속적인 앱 경험이 구현됩니다.

예를 들어 뉴스 리더 앱에서 HighPriority 설정을 사용하여 사용자가 읽고 있던 뉴스 기사를 로밍할 수 있습니다. 사용자가 다른 뉴스를 읽을 때마다 뉴스 리더 앱은 해당 설정을 변경하여 로밍합니다. 사용자가 다른 Windows 8 PC로 전환하는 경우 뉴스 리더 앱이 사용자가 읽고 있던 마지막 기사를 표시해 주므로 다른 장치에서 읽던 기사를 계속해서 읽을 수 있습니다.

이 기능의 가장 큰 특징은 구현 방법이 쉽다는 점입니다. 간단히 설정하거나 루트 로밍 설정 컨테이너에서 "HighPriority"라는 이름으로 만들면 됩니다. 해당 설정은 변경 후 1분 이내에 로밍되어 사용자의 앱에 대한 중요한 상태 데이터 일부를 로밍할 수 있게 되므로 사용자는 PC에서 중단한 작업을 이어서 수행할 수 있게 됩니다. 높은 우선 순위 로밍 작업은 하나의 설정에만 적용되므로 기사 및 페이지 번호와 같은 데이터의 여러 부분을 로밍하려는 경우 복합 값을 사용할 수 있습니다. "HighPriority" 복합 값은 8K를 초과할 수 없습니다. 이보다 값이 높으면 일반 설정으로 로밍됩니다.

시작하려면 높은 우선 순위 로밍 앱 설정의 예제가 포함된 업데이트된 Application data Sample을 확인하세요.

향상된 Visual Studio 템플릿

Visual Studio의 템플릿도 많은 변화와 발전이 있었습니다. 템플릿에 수많은 업데이트를 수행하고 새 템플릿도 추가하여 새로운 프로젝트를 손쉽게 시작하고 앱을 바로 실행할 수 있게 되었습니다.

XAML 템플릿 업데이트

XAML 템플릿의 경우 우리가 Release Preview에서 많은 관심과 노력을 기울인 기능입니다. 다음은 가장 중요한 변경 사항입니다.

  • 필요하지 않은 빈 앱 템플릿 구성 요소(예: 데이터 바인딩용 도우미, 탐색 지원용 페이지 도우미, 프로세스 수명 관리 등)를 없앴습니다. 이에 따라 앱을 처음 개발할 때부터 유연한 환경의 이점을 최대한 누릴 수 있게 됩니다. 이러한 일반 구성 요소가 필요한 항목 템플릿을 추가하려는 경우 옵션을 사용하여 추가할 수 있습니다.
  • 이제 XAML 템플릿은 기본적으로 가상화를 지원합니다. GridView 및 ListView는 바운딩 항목을 가상화할 수 있는 헤더 영역을 활용할 수 있습니다. 또한 GridApp의 방문 페이지는 전체 컬렉션이 아닌 항목의 하위 집합만을 표시하도록 지원되므로 성능이 더욱 향상됩니다. 이러한 개선 작업으로 인해 여러분이 추가로 작업을 수행하지 않아도 앱이 이전보다 빠르게 화면에서 이동하고 스크롤됩니다.
  • 모든 페이지에 시작 애니메이션이 추가되었습니다(빈 페이지는 계속 빈 상태로 유지됨). 이러한 애니메이션은 템플릿의 페이지 간의 전환을 부드럽게 구현하도록 해 주며, 사용자 역시 앱이 빠르고 부드럽게 실행된다고 느끼게 됩니다.
  • 이제 D2D 프로젝트 템플릿에서 XAML을 지원합니다.

모든 템플릿 업데이트

모든 템플릿의 탐색 성능이 강화되었습니다. Consumer Preview에서는 템플릿 탐색이 터치 기능을 중심으로 구조화되어 있었습니다. 이제 템플릿은 키보드, 뒤로 및 앞으로 단추를 사용하는 마우스 탐색 및 키보드 바로 가기 키를 완벽하게 지원합니다. 템플릿을 사용하면 모든 형태의 입력이 지원되도록 앱의 탐색 구조가 자동으로 구성됩니다.

Windows 런타임 구성 요소를 만들기 위한 새 템플릿

기존 템플릿 업데이트 외에도 Windows 런타임 구성 요소를 직접 손쉽게 만들 수 있도록 했습니다. 이를 구현하기 위해 개발자가 복잡한 작업을 수행하지 않아도 되는 새로운 C#/VB 템플릿을 추가했습니다. 이 템플릿을 사용하면 메인 앱에서 사용할 수 있는 새로운 Windows 런타임 구성 요소를 빠르게 만들 수 있습니다. 이 템플릿에서 모든 설정 작업을 수행하기 때문에 개발자가 더 이상 이러한 구성 요소를 처음부터 직접 만들지 않아도 되며 사용자 지정 논리를 추가하기만 하면 됩니다.

파일 속성 및 미리 보기 프리페치 API

우리는 Windows 8 Consumer Preview 릴리스 이후로 성능을 면밀히 검토해 왔으며 개발자가 빠르고 원활하게 동작하는 앱을 제작할 수 있는 방법을 모색해 왔습니다. 사진 앨범, 음악 재생 목록 또는 문서 허브와 같은 갤러리 보기를 표시하는 데 파일 시스템을 사용하는 앱의 경우, 우리가 성능을 높이기 위해 해결해야 했던 가장 중요한 병목 현상은 바로 파일 액세스였습니다.

Customer Preview 빌드에서는 파일 속성 및 사진 미리 보기를 검색하는 데 시간이 오래 걸릴 수 있습니다. 특히 속성 검색 모델은 요청에 따라 작동되므로 한 번에 여러 파일에 액세스하는 앱의 경우 반복되는 프로세스 간 통신으로 인해 백엔드에서 많은 오버헤드가 발생합니다. 게다가 일부 속성은 빠른 액세스에 최적화되어 있지 않기 때문에 일반적이지 않은 속성을 사용하려는 경우 앱의 성능이 저하됩니다.

앱 코드를 광범위하게 변경하지 않으면서 이러한 격차를 해소할 수 있도록 하기 위해 데이터 모델 API에 새로운 두 가지 기능을 추가했습니다.

Windows.Storage.Search.QueryOptions.SetPropertyPrefetch

  • 이 기능을 사용하면 Windows에서 빠른 검색에 최적화할 속성 목록을 확인할 수 있습니다.
  • 그러면 이전에 사용한 것과 같은 비동기 메서드를 사용하여 이러한 속성에 액세스할 수 있습니다. 더 빠르게 결과를 얻는다는 점만 다를 뿐입니다.

Windows.Storage.Search.QueryOptions.SetThumbnailPrefetch

  • 이 기능은 앱에 쿼리 결과 집합 파일에 대한 미리 보기가 필요함을 Windows에 알립니다.
  • 그러면 이전에 사용했던 것과 같은 비동기 메서드를 사용하여 미리 보기를 검색할 수 있습니다. 더 빠르게 결과를 얻는다는 점만 다릅니다.

JavaScript에서는 다음과 같이 표시됩니다.

var search = Windows.Storage.Search;
var fileProperties = Windows.Storage.FileProperties;

// Create query options with common query sort order and file type filter.
var fileTypeFilter = [".jpg", ".png", ".bmp", ".gif"];
var queryOptions = new search.QueryOptions(search.CommonFileQuery.orderByName, fileTypeFilter);

// Set up property prefetch - use the PropertyPrefetchOptions for top-level properties
// and an array for additional properties.
var imageProperties = fileProperties.PropertyPrefetchOptions.imageProperties;
var copyrightProperty = "System.Copyright";
var colorSpaceProperty = "System.Image.ColorSpace";
var additionalProperties = [copyrightProperty, colorSpaceProperty];
queryOptions.setPropertyPrefetch(imageProperties, additionalProperties);

// Set up thumbnail prefetch.
var thumbnailMode = fileProperties.ThumbnailMode.picturesView;
var requestedSize = 190;
var thumbnailOptions = fileProperties.ThumbnailOptions.useCurrentScale;
queryOptions.setThumbnailPrefetch(thumbnailMode, requestedSize, thumbnailOptions);

// Query the Pictures library
var query = Windows.Storage.KnownFolders.picturesLibrary.createFileQueryWithOptions(queryOptions);
query.getFilesAsync().done(function (files) {
// Output the query results
files.forEach(function (file) {
// getImagePropertiesAsync returns synchronously when prefetching
// retrieved the properties in advance.
file.properties.getImagePropertiesAsync().done(function (properties) {
// Use image properties
});

// Similarly, extra properties are retrieved asynchronously but may
// return immediately when prefetching completed.
file.properties.retrievePropertiesAsync(additionalProperties).done(function (properties) {
// Use additional properties
});

// You can also retrieve and use thumbnails
file.getThumbnailAsync(thumbnailMode, requestedSize, thumbnailOptions).done(function (thumbnail) {
// Use the thumbnail
});
});
});

C#에서 유사한 코드가 다음과 같이 표시됩니다.

const string CopyrightProperty = "System.Copyright";
const string ColorSpaceProperty = "System.Image.ColorSpace";

// Set up file type filter.
List<string> fileTypeFilter = new List<string>();
fileTypeFilter.Add(".jpg");
fileTypeFilter.Add(".png");
fileTypeFilter.Add(".bmp");
fileTypeFilter.Add(".gif");

// Create query options.
var queryOptions = new QueryOptions(CommonFileQuery.OrderByName, fileTypeFilter);

// Set up property prefetch - use the PropertyPrefetchOptions for top-level properties
// and a list for additional properties.
List<string> propertyNames = new List<string>();
propertyNames.Add(CopyrightProperty);
propertyNames.Add(ColorSpaceProperty);
queryOptions.SetPropertyPrefetch(PropertyPrefetchOptions.ImageProperties, propertyNames);

// Set up thumbnail prefetch.
const uint requestedSize = 190;
const ThumbnailMode thumbnailMode = ThumbnailMode.PicturesView;
const ThumbnailOptions thumbnailOptions = ThumbnailOptions.UseCurrentScale;
queryOptions.SetThumbnailPrefetch(thumbnailMode, requestedSize, thumbnailOptions);

// Set up the query and retrieve files.
var query = KnownFolders.PicturesLibrary.CreateFileQueryWithOptions(queryOptions);
IReadOnlyList<StorageFile> fileList = await query.GetFilesAsync();
foreach (StorageFile file in fileList)
{
// GetImagePropertiesAsync returns synchronously after prefetching
// retrieves the properties in advance.
var properties = await file.Properties.GetImagePropertiesAsync();
// Use image properties

// similarly, extra properties are retrieved asynchronously but may
// return immediately when prefetching completes.
IDictionary<string, object> extraProperties = await file.Properties.RetrievePropertiesAsync(propertyNames);
// Use additional properties

// You can also retrieve and use thumbnails.
var thumbnail = await fle.GetThumbnailAsync(thumbnailMode, requestedSize, thumbnailOptions);
// Use thumbnail
}

우리가 이러한 새 기능을 사용하는 앱을 테스트하는 동안 대폭 향상된 성능을 확인할 수 있었습니다. StorageDataSourceAdapter를 사용하는 사용자의 사진 라이브러리에서 사진 보기를 표시하는 데 걸리는 시간이 70% 향상되었으며, 파일 시스템에서 추출된 파일 속성으로 데이터베이스를 채우는 앱의 경우 400%가 향상되었습니다.

많은 파일에 액세스해야 하는 앱을 개발하는 경우 이러한 새 기능에 대해 알아보고, 이 기능을 사용하여 앱 실행 속도를 향상시켜 보시기 바랍니다. 자세한 내용은 개발자 센터에서 Windows.Storage.Search.QueryOptions API 설명서를 참조하세요.

Blend 및 Visual Studio 디자이너

우리는 Consumer Preview 이후로 디자인 도구를 개선하기 위해 지속적으로 노력해 왔습니다. 앱의 사용자 인터페이스는 앱의 특징을 표현하는 가장 중요한 요소 중 하나이므로, 모든 새로운 Metro 스타일 디자인 요소를 최대한 쉽게 앱에 통합할 수 있도록 했습니다.

향상된 XAML 앱의 보기 상태 작성

보기 상태는 Metro 스타일 앱을 위한 핵심 UI 개념 중 하나입니다. Release Preview에서는 VS XAML 디자이너 및 Blend 모두가 업데이트되어 장치 패널(이전에는 플랫폼 패널)을 통해 플랫폼 앱 보기 상태(FullScreenLandscape, FullScreenPortrait, Filled 및 Snapped)를 설정할 수 있는 Visual States를 사용하여 페이지를 미리 보고 제작할 수 있게 되었습니다. 이제 장치 패널은 사용자가 보기를 변경할 때 자동으로 표시 상태를 변경합니다. 기록 모드를 켜면 항상 기본으로 변경하지 않고도 디자인 화면 또는 속성 서식에서 수행한 변경 사항으로 현재 선택한 표시 상태를 바꿀 수 있게 됩니다.

새 장치 패널을 표시하는 이미지. 이 이미지는 다른 보기 상태를 선택할 수 있는 드롭다운이 제공되는 FullScreenLandscape 모드로 패널을 표시합니다. 상태 기록도 표시할 수 있는 옵션전체 보기 상태 디자인 지원이 제공되는 새로운 장치 패널

또한 Blend의 Visual State 디자인 기능을 사용하여 애니메이션 라이브러리의 테마 애니메이션으로 표시 상태를 디자인하고 미리 볼 수 있게 되었습니다. 애니메이션 라이브러리는 플랫폼의 애니메이션 기능을 활용하도록 특별히 제작된 Metro 스타일 애니메이션 제품군입니다. 이러한 애니메이션은 Windows UI 전체에서 사용되며, Metro 스타일 앱에 사용될 수도 있습니다.

HTML 작성 시 향상된 Blend 생산성

우리는 Consumer Preview에서 여러 뛰어난 기능을 HTML 제작 도구용 Blend에 제공할 수 있도록 하고 Release Preview에서는 이러한 기능을 Blend에서 더욱 손쉽고 생산적으로 사용할 수 있도록 하는 데 초점을 맞췄습니다. 또한, Release Preview에서 앱을 손쉽게 디자인할 수 있는 Blend의 일반적인 HTML/CSS 디자인에서 몇 가지 사항을 개선했습니다. 예를 들면 다음과 같습니다.

  • Blend에서 아트보드 및 Live DOM의 요소뿐 아니라 CSS 속성 및 스타일 규칙을 잘라내고, 복사하여 붙여 넣을 수 있게 되었습니다.
  • 여러 요소의 CSS 속성 및 HTML 특성을 동시에 편집할 수 있습니다.
  • 모든 요소의 상황에 맞는 메뉴를 통해 "요소 클래스/ID에서 스타일 규칙 만들기" 및 "클래스 추가/제거"를 선택할 수 있습니다.
  • 검색 필터를 적용하는 경우 검색 가능한 창이 모두 더 잘 표시됩니다.

HTML_blend_designer새로운 잘라내기, 복사 및 붙여넣기 기능이 제공되는 HTML Blend 디자이너

더욱 효율적으로 앱을 디자인할 수 있도록 하기 위해 일부 특정 기능도 개선했습니다. 예를 들어 Blend에서 WinJS 컨트롤로 더욱 손쉽게 작업할 수 있습니다.

  • Blend는 컨트롤 속성에 대한 라이브 값을 지원합니다.
  • Blend는 WinJS 컨트롤에서 예외가 발생하는 경우 결과 패널에 더욱 자세한 오류 정보를 표시합니다.
  • SemanticZoom 보기와 플라이아웃 및 메뉴 컨트롤 활성화 간 전환에 사용되는 UI를 개선했습니다.
  • AppBarCommand 아이콘 속성, AppBarCommand 및 MenuCommand 플라이아웃에 대한 새 값 편집기를 추가했습니다.

HTML/CSS 또는 XAML 중 어떤 것으로 디자인하더라도 다양한 개선 사항이 적용된 Metro 스타일 앱용 디자인 도구를 사용할 수 있습니다. 물론 여기에서 설명한 새 기능은 우리가 수행한 작업의 일부를 예로 든 것입니다. 개선 사항을 모두 알아보려면 도구를 직접 확인해 보세요.

JavaScript 제스처 이벤트 모델

우리는 보다 유연하고 강력한 앱 제스처 처리 방식을 구현하기 위해 JavaScript 앱에서 제스처 이벤트 모델이 작동하는 방식을 대폭 개선했습니다. 구체적으로 살펴보면 다음과 같습니다.

  • 새 이벤트 모델은 여러 개의 동시 제스처를 지원합니다. 이제 이 새 기능을 사용하여 멀티 제스처 UX(예: 제스처 기반 다중 슬라이더)를 만들 수 있습니다.
  • 제스처가 대상으로 하는 요소를 명확하게 제어할 수 있으며 각 제스처에 반영되는 활성 터치 접촉을 명확하게 제어할 수 있습니다. Consumer Preview에서는 이벤트 모델에 대상 접촉 및 연관 접촉 모두를 결정하기 위한 매우 간단하고 제한적인 규칙이 있었습니다. 새 모델에서는 접촉이 있을 때 함께 그룹화할 다른 접촉 및 결과 제스처 이벤트를 전달할 요소를 사용자가 결정합니다. 둘 이상의 제스처 인식 기능에 동시에 접촉을 등록할 수 있으며 동일한 요소를 대상으로 하는 둘 이상의 제스처 인식 기능을 만들 수 있습니다. 두 가지 경우 모두 이벤트 수신기에서 수행할 제스처를 프로그래밍 방식으로 선택할 수 있습니다.
  • 이렇게 하면 이제까지 동일한 요소를 대상으로 지정하도록 했던 터치 및 제스처 이벤트를 서로 독립적으로 대상을 지정하고 처리하도록 할 수 있습니다. 이를 통해 더욱 복잡한 입력 시나리오를 손쉽게 구현할 수 있습니다. 예를 들어 사용자가 멀티 터치 제스처를 수행하여 컨테이너를 확대/축소하면서 손가락이 터치하고 있는 해당 컨테이너 내의 개별 요소를 강조 표시할 수 있습니다.
  • 이벤트는 제스처에 대한 응답으로 콘텐츠를 처리하는 데 손쉽게 사용할 수 있는 형태로 변환 데이터를 반환합니다. 이전에는 관련 데이터를 추출하는 데 방대한 양의 행렬 수학을 계산해야 했습니다. 새 모델은 상위 좌표 공간에 변환 델타(증분)를 반환합니다. 이는 요소의 위치, 크기 및 방향을 업데이트하기 위해 컨테이너 내 요소의 위치를 지정하는 현재 CSS 변환에 연결해야 하는 정보입니다.

이러한 변경 사항을 통해 앱에서 제스처 입력 작업을 훨씬 쉽게 수행할 수 있게 되었습니다. 자세한 내용은 개발자 센터의 사용자 조작 방식에 대한 응답인스턴스화할 수 있는 제스처 샘플을 참조하세요.

개발자 센터 업데이트

개발 플랫폼에 수행한 이 모든 작업 외에도 개발자 센터의 설명서를 개선하는 데도 많은 시간을 할애했습니다. 개발자 센터는 Metro 스타일 앱 개발에 관한 모든 학습 자료를 제공하는 곳이므로 Release Preview에 필요한 정보를 이용할 수 있는 완벽한 환경을 구축하기 위해 노력했습니다.

개발자 센터를 개선하기 위해 가장 먼저 수행한 작업은 더 많은 콘텐츠를 추가하는 것이었습니다. Consumer Preview의 경우 개발자 센터는 시작에 필요한 핵심 정보를 제공하는 곳이었습니다. 이제 Release Preview도 마찬가지로, 개발자 센터에서 멋진 Metro 스타일 앱을 만드는 데 필요한 고급 항목에 대한 지침을 더욱 쉽게 찾아볼 수 있습니다. 다음은 주요 변경 사항입니다.

  • XAML WebView 컨트롤, IndexedDB, 스레드 풀, JS 웹 작업자 등 다수에 대한 샘플을 포함하여 다양한 새 샘플을 추가했습니다.
  • Metro 스타일 앱을 개발하는 데 도움이 되는 새로운 도움말, 빠른 시작 및 방법 항목이 200개 이상 제공됩니다.
  • API 참조 문서를 완벽하게 갖추었습니다.

새 콘텐츠를 추가하는 것 외에도 정보를 손쉽게 찾아 앱 개발을 시작할 수 있는 방법을 모색했습니다. 예를 들어 샘플과 연관 설명서와의 상호 연결을 효율적으로 개선했습니다. 샘플을 검색하고, 코드를 살펴본 다음 살펴보고 있는 코드에 대한 자세한 정보를 제공하는 설명서로 손쉽게 이동할 수 있습니다. 또는 설명서부터 읽어 보려는 경우 기존 시작하기 항목을 개선했으며 앱을 순조롭게 개발할 수 있도록 기본적인 자습서를 더 많이 추가했습니다.

이로써 Release Preview를 설치할 때 가장 먼저 하고 싶은 것 중 하나가 개발자 센터로 이동하여 새로운 모든 콘텐츠를 살펴보는 것이 될 것으로 기대합니다. 그러면 Metro 스타일 앱을 더욱 쉽게 개발하는 데 도움이 되는 향상된 기능에 대한 정보를 확인하실 수 있습니다.

기존 앱을 Release Preview에서 실행

우리는 Release Preview를 개발하면서 앱에 오류를 일으킬 수도 있는 변경 사항을 최소한으로 유지하기 위해 노력했습니다. 여러분이 앱 개발을 위해 많은 노력을 기울이고 있음을 잘 알고 있기 때문에 Release Preview로 전환할 때 해결해야 하는 문제를 최소화하고자 했습니다. 하지만 새로운 개발 플랫폼의 성능을 높은 수준으로 끌어올리기 위해서는 일부 기능의 보완 및 개선 작업이 반드시 필요합니다.

앞서 설명한 것처럼 가장 큰 변화가 있었던 부분이 Visual Studio 프로젝트였습니다. 즉, 앱을 실행하는 가장 좋은 방법은 Visual Studio에서 새 프로젝트를 시작하고 앱 템플릿을 선택하고 기존 프로젝트를 새 프로젝트로 적용하는 것입니다. 템플릿 레이아웃은 그다지 많이 변경되지 않았기 때문에 대부분의 기존 코드를 계속 사용할 수 있습니다. 그리고, 이 작업을 수행할 때는 기존 매니페스트도 함께 적용해야 합니다.

프로젝트를 적용한 후에는 앱을 실행하고 API 변경으로 발생하는 오류를 추적하십시오. 이 작업에 도움이 될 수 있도록 Consumer Preview에서 Release Preview로 진행하는 동안 수행된 API 변경 작업 대부분을 설명하고 있는 마이그레이션 가이드를 준비했습니다.

새로운 VS 프로젝트를 만들고 API 변경에 대한 마이그레이션 가이드를 사용하면 Release Preview에서 앱을 바로 실행할 수 있게 될 것입니다.

결론

Release Preview에서 앱을 개발할 수 있다는 사실은 여러분에게 반가운 소식이 될 것이라고 생각됩니다. 여기에서 설명한 변경 사항은 우리가 새 릴리스에서 수행한 작업의 일부를 예로 든 것입니다. 이러한 변경으로 인해 더욱 강력한 앱을 Windows 8에서 이전보다 쉽게 만들 수 있게 되었습니다. 마이그레이션 가이드를 참조하며 작업하면 새 앱과 기존 앱 모두에 이러한 변경 사항을 활용할 수 있습니다.

Release Preview개발자 도구를 다운로드해서 앱 개발을 시작해 보시기 바랍니다. 개발자용 Windows 스토어 블로그도 참조할 수 있으며 궁금한 사항은 개발자 센터, 포럼블로그에서 답변을 찾아볼 수 있습니다. 이제 Release Preview와 개발자 도구로 멋진 앱을 만들어 보시기 바랍니다.

- Windows 프로그램 관리자
Jake Sabulsky

이 글을 작성하는 데 도움을 준 Dave Bennett, Marc Wautier, Paul Chapman, Heather Brown, Keith Boyd, 그리고 Steve Wright에게 특히 감사드립니다.


  • Loading...
Leave a Comment
  • Please add 4 and 7 and type the answer here:
  • Post