2014년 9월 3일 수요일

JavaFX 소개

JavaFX는 개발자들이 Rich Client 어플리케이션을 설계, 제작, 시험, 디버그, 배포할 수 있도록 해주는 그래픽 및 미디어 패키지들의 집합이다.

1. JavaFX Applications

JavaFX 라이브러리는 Java API 형태로 작성되었으므로, JavaFX Application 코드는 어떠한 Java 라이브러리라도 참조할 수 있다.

JavaFX applications의 룩앤필은 변경될 수 있다. Cascading Style Sheets (CSS)를 통해 application 개발과 스타일을 분리함으로써, 개발자들은 코드에 집중할 수 있다. 그래픽 디자이너들은 CSS를 통해 application의 스타일을 쉽게 변경할 수 있다.
만약 웹 디자인 요소를 가지고 있거나, UI와 로직을 서로 분리시키고자 한다면, FXML 스크립트 언어로 UI 요소를 개발하고 Java 코드를 통해 application 로직을 개발할 수 있다.
또한 코드 작성 없이 UI를 디자인하고자 한다면, JavaFX Scene Builder를 사용할 수 있다. Scene Builder를 통해 UI를 디자인할 때 FXML 마크업 코드가 자동으로 생성되며 이는 IDE (Integrated Development Environment)로 이관되어 개발자들이 그 곳에서 비즈니스 로직을 추가할 수 있도록 해준다.
 

2. Availability

JavaFX는 JRE 및 JDK에 완전히 통합된 형태로 제공된다. JDK는 모든 메이저 데스크탑 플랫폼들(Windows, Mac OS X, and Linux)을 지원하므로, JDK7 이상 버전을 통해 컴파일된 JavaFX 어플리케이션들은 모든 메이저 플랫폼 상에서 실행 가능하다. JavaFX 8부터는 ARM 플랫폼에 대한 지원도 가능하다.


3. Key Features

다음과 같은 특징들이 JavaFX 8에 포함된다.

Java APIs
JavaFX는 Java 코드로 작성된 클래스들과 인터페이스들로 이루어진 Java 라이브러리이다.

FXML and Scene Builder
FXML은 JavaFX application UI를 제작하기 위한 XML 기반의 마크업 언어이다. 디자이너는 FXML 을 직접 작성하거나 Java FX Scene Builder를 사용할 수 있다. Scene builder는 FXML을 생성하며 생성된 FXML은 IDE로 이관되어 개발자들이 비즈니스 로직을 추가할 수 있다.

WebView WebKitHTML 기술을 사용한 web 컴포넌트는 JavaFX application 내에 웹 페이지를 삽입하는 것을 가능케 해준다. WebView 내에서 동작하는 JavaScript는 Java API를 호출할 수 있고 반대로 Java API에서 JavaScript를 호출할 수도 있다. JavaFX 8에서는 HTML5의 특징 (Web Sockets, Web Workers, Web Fonts, Printing capabilities)들에 대한 지원도 추가되었다.

Swing interoperability
기존의 Swing application들이 JavaFX에서 제공되는 기능들(예를 들면, rich graphics play back, embedded)을 사용할 수 있다. 반대로 SwingNode 클래스를 사용하여 Swing 컴포넌트를 JavaFX application에 사용할 수 있다.

Built-in UI controls and CSS
JavaFX는 application 개발에 필요한 주요 UI 컨트롤들을 제공한다. 이 컴포넌트들은 CSS라는 표준 웹 기술을 통해 디자인이 입혀질 수 있다. DatePicker와 TreeTableView와 같은 UI 컨트롤들도 JavaFX8에서 지원된다.

Modena theme
JavaFX 8에서는 디폴트 테마로써 기존의 Caspian 대신 Modena 테마가 사용된다.


3D Graphics
다음과 같은 내용들에 대한 새로운 API 클래스들이 3D graphics 라이브러리에 추가되었다.

  • Shape3D (Box, Cylinder, MeshView, Sphere subclasses)
  • SubScene, Material
  • PickResult
  • LightBase (AmbientLight and PointLight subclasses)
  • SceneAntialiasing

Canvas API
Canvas API는 JavaFX scene의 영역에 직접 무언가를 그리는 것을 가능케 해준다.

Printing API
javafx.print 패키지가 새롭게 추가되었다.

Rich Text 지원
JavaFX 8은 양방향 텍스트와 복잡한 텍스트 스크립트와 같은 개선된 text 지원을 제공한다.

Multi-touch 지원
실행 플랫폼에 따라 multi touch 조작을 지원한다.

Hi-DPI 지원
JavaFX 8은 Hi-DPI 디스플레이를 지원한다.

Hardware accelerated graphics pipeline
JavaFX 그래픽들은 graphics rendering processing pipeline (Prism)에 기반하여 동작한다. JavaFX는 Prism이 지원하는 그래픽 카드나 GPU가 사용되었을 때 렌더링을 가속화함으로써 부드러운 그래픽 효과를 제공한다.

High performance media engine
Media pipeline은 웹 멀티미디어 컨텐츠의 실행을 지원한다.

Self-contained application deployment model
Self-contained application 패키지는 어플리케이션이 사용하는 모든 리소스와 Java 및 JavaFX 런타임을 모두 포함한다.

댓글 없음:

댓글 쓰기