2009. 8. 23. 01:30

[Flex 4] Flex 4 의 새로운 점(What's new in Flex 4)

원문: http://www.adobe.com/devnet/flex/articles/flex4sdk_whatsnew.html

저는 Flex 의 제품 매니저로서 Flex 4 의 다음 릴리즈에 대해 고객과 내부 개발 팀을 포함한 많은 사람들과 대화를 나눴습니다. 과거에 본 어떤 것보다 이 버전에 대해 이목이 집중되어 있습니다. 저희는 Flex 4 SDK 기반의 Flex: Adobe Flash Catalyst와 Adobe Flash Builder 4 의 베타 릴리즈를 제공하고 있습니다. 이 글은 새로운 SDK 와 프레임워크에서 만나게 될 것에 대해 소개합니다. 이 것은 베타 소프트웨어 입니다. 기능이 변경될 수도 있고, 문서는 오래된 것일 수 있으며, 버그가 존재할 수도 있습니다. Open Source Flex SDK site 에서 SDK 의 진행 상황을 확인하시고, public bug system 에서 버그를 확인하세요. 그리고 저희 포럼에 추가적인 피드백을 제공해 주십시오.

Tim Buntel 이 작성한 Flash Builder 4 beta 의 새로운 점과 Joan Lafferty 가 작성한 Flex 3 SDK와 Flex 4 SDK beta 의 차이점도 흥미롭게 읽으실 수 있을 겁니다.

Flex SDK 작업은 세 가지 주제에 초점을 두고 있습니다.

  • Desing in Mind(디자임을 염두에 둠): 툴에서 쉽게 사용할 수 있는 새로운 표현 방법을 지원하는 프레임워크 제공
  • Developer Productivity(개발자의 생산성): 컴파일러 성능 향상과 데이터 바인딩과 같은 언어 기능의 생산성 향상 추가 
  • Framework Evolution(프레임워크 진화): 새로운 Flash Player 기능을 이용, 일반적인 use-case 에서 필요한 기능 추가


REQUIREMENTS(필요한 것)

Flex 4 SDK

Prerequisite knowlegde(이 글을 읽기 전에 필요한 정보)
Flex 에 대한 익숙함


SPARK AND FXG(Spark 와 FXG)

Design in Mind 주제에서 가장 큰 특징은 새로운 스키닝과 Spark 라고 불리는 컴포넌트 아키텍처입니다. 지금의 Halo 아키텍처의 가장 상위에서 빌드됨으로써 Spark 는 개발자와 디자이너가 Flex 어플리케이션의 외관에 대해 함께 작업할 수 있도록 더욱 표현적인 메카니즘을 제공합니다. Spark 는 현재 약 30개의 (Adobe 의 차세대 컴포넌트의 기반을 형성하고 Adobe Flash Catalyst 와 쉬운 통합이 가능한)새로운 컴포넌트와 primitive 를 제공합니다. 이 베타 릴리즈는 새로운 아키텍처를 위해 계획된 거의 모든 컴포넌트를 포함하지만, 약간의 조정을 위한 포스트 베타가 있을 수 있습니다. Spark 는 Halo 에 존재하는 모든 컴포넌트의 버전을 갖지는 않을 것입니다. 하지만, Spark 가 같은 파운데이션의 가장 상위에서 빌드되기 때문에 모든 Halo 컴포넌트는 쉽게 새로운 아키텍처와 함께 동작할 수 있을 것입니다. 아키텍처에 대해 더 많은 정보를 원한다면 Deepa 의 Gumbo 컴포넌트 아키텍처 글을  보시기 바랍니다.

Another piece that folks will find interesting is support for FXG, the new interchange format for the Flash Platform. In addition to support for using FXG directly within your Flex application, the Flex framework includes graphic primitives that align with the tags in FXG. These graphic primitives can be used directly within your Flex app and support all of the runtime editability associated with the more traditional Flex components. To support high-performance graphics Adobe has also enabled the compiler to optimize static FXG directly into SWF tags understood natively by the Flash Player. This gives you the flexibility to have your graphics tags editable by the editor of your choice, while enabling top performance where it's important. Learn more about FXG.

Spark 아키텍처에는 업데이트 된 더 유연한 레이아웃 모델도 포함되어 있습니다. 새로운, 실행시간에 할당 가능한(runtime-assignable) 레이아웃은 모든 컴포넌트에 대한 2D 회전과 축소/확대와 Flash Player 10 의 새로운 3D 기능 적용을 전적으로 지원합니다. 이 새로운 레이아웃 메카니즘은 List 클래스에서 지원되는 것이 아닌 레귤러 컨테이너 모델 에서 지원되는 가상화를 가능하게 합니다. 모든 컨테이너나 리스트에서의 부드러운 스크롤도 제공합니다. Spark 컨테이너레이아웃에 대해 더 알아보세요.

마지막으로, Spark는 향상된 이펙트와 이동의 기반이 되는 새롭고 향상된 애니메이션 엔진을 소개합니다. Flex 4 는 자동적인 반대로의 이동, 이펙트처럼 적용되는 PixelBender  필터, 세 평면에서의 트랜스포메이션, 복잡한 키프레임 기반의 애니메이션 등을 지원합니다. 샘플 어플리케이션의 액션에서 이펙트에 대한 예제를 볼 수 있습니다. 그리고 Chet Haase의 글(1부, 2부)과 문서에서 Spark 이펙트에 대해 더 많은 것을 배울 수 있습니다.

WORKING WITH STATES (State 를 사용하여 작업하기)

향상이 필요하다고 알려진 Flex 의 분야중 하나는 state 입니다. state 의 개념은 이해하기 쉽지만 Flex3의 구현은 그렇게 간단하지 않습니다. 그래서 Adobe는 Flex4에서 state 관련 작업을 쉽게 할 수 있는 새로운 MXML 언어의 개선 사항 소개했습니다.

새로운 모델을 지원하기 위해 MXML 언어를 MXML 2009 로 업그레이드 했고, 간단한 텍스트 편집기로 편집하는 것을 지원하겠다는 약속을 지키는 것과 동시에 더 나은 도구를 지원하도록  MXML 언어를 약간 향상시켰습니다. MXML 2009새로운 state syntax 에 대해 더 알아보세요.

DEVELOPER PRODUCTIVITY(개발자 생산성)

개발자의 생산성 주제에서 가장 주목된 것은 컴파일러 성능 입니다. 일반적인 use-case 에 대해 수많은 최적화 방법을 구현했고, 실제 성능 향상을 목격했습니다. 다수의 ASDoc 도구(MXML 문서에서 ASDoc 의 지원을 포함)도 향상시켰습니다. 이제 binding은 양방향 커뮤니케이션을 지원하도록 업그레이드 되었습니다;  simply throw an @ in the front of your binding expression and updates to the binding destination will now be copied back into the source. 그리고 가장 많은 요청을 받았던 흥미로운 기능은 하위 selector 와 id 기반의 selector 와 같은 더 많은 CSS selector 의 지원이었습니다.런상에 대해 더 많은 것을 알고 싶다면 반드시 문서를 참조하세요.

마지막으로, 우리는 Spark 아키텍처를 넘어서는 정도로 Flex 프레임워크를 지속적으로 향상시킬 필요가 있다는 것을 알고 있습니다. 그러는 와중에 Flex4 에서 Flex 어플리케이션의 비디오 사용을 향상시켰습니다. Spark 는 chromeless Video 컴포넌트인 VideoDisplay 와 VideoElement 의 외관을 변경할 수 있는 VideoPlayer를함하고 있습니다. 두 클래스는 Open Source Media Framework 의 비디오 클래스을 기반으로 합니다. 이제 개발자는 쉽게 video 를 어플리케이션으로 drop 할 수 있고, 형태와 느낌을 변경할 수 있습니다. OSMF 에 대해 더 많은 것을 알아보세요. 

Flash Player 10의 강력한 기능은 새로운 텍스트 엔진과 Text Layout Framework 입니다. 텍스트 엔진과 Text Layout Framewor 를 직접 Flex 프레임워크에 포함할 것이고, Spark 를 위한 새로운 텍스트 컨트롤을 생성할 것이며, MX 컨트롤에 기본적인 노출을 제공할 것입니다. 새로운 텍스트 컨트롤은 양방향 텍스트를 지원하고, 이번 릴리즈에는 포함되지 않지만 다음 릴리즈에서 Flex 에 모든 locale 에서 Flex 어플리케이션을 활성화 하는 미러링을 추가할 것입니다. HTML 템플릿을 Adobe Flash Player Detection Kit에서 오픈 소스 SWFObject 프로젝트로 옮긴 것도 발견할 수 있을 것입니다.