재미있는 사진들 : JavaFX 예제 어플리케이션

By Rakesh Menon, November 6, 2008

InterestingPhotos는 Flickr's REST API를 사용하여 Flickr에 있는 검색된 "재미있는" 사진들을 보여주는 간단한 JavaFx 어플리케이션 입니다.

"재미있는" 사진들에 대한 정보는 JavaFX 비동기 HTTP API (javafx.io.http.HttpRequest)를 사용하는 Flickr's flickr.interestingness.getList API에 HTTP GET request를 실행함으로써 얻어집니다. response된 문서는 사진에 대한 정보를 추출하기 JavaFX XML pull parser (javafx.data.pull.PullParser)를 이용해 위해 파싱됩니다. 사진들은 그리고 나서 그리드 형태로 fetch 되고 보여지게 됩니다. 사용자는 일반 이미지로 로드하기 위해서 정규 이미지를 클릭할수 있습니다. 정규 이미지를 다시 클릭하면 UI를 썸 이미지 뷰로 되돌려 놓습니다.

이 샘플에서 사용된 api-key는 사용하지 마세요. flickr.com에서 여러분 자신의 키를 얻기바랍니다.

response XML document는 사용 가능한 사진들의 정보 목록을 포함하고 있습니다. document는 각 사진을 따르는 정보를 포함하고 있습니다.

  • id
  • owner
  • secret
  • server
  • farm
  • title

이 정보는 탐색하고 나서 각 사진을 보여주는 URL을 만드는데 사용되곤 합니다. ImageView 클래스는 어떻게 URL을 이용해서 이미지를 탐색하고 그것을 보여주는지 알고 있습니다. 한번 탐색된 이미지는 데이터 바인딩(data binding)을 통해 StageScene 안에서 보여집니다.

사진의 순서 객체들은 response XML을 파싱하여 생성됩니다. ImageView의 그리드는 StageScene에 추가됩니다. 만약 사용자가 이 썸 사진을 클릭한다면 정규 사진이 로드되고 보여집니다. 정규 사진을 클릭하는 것은 썸 사진 그리드로 되돌려 놓습니다. 사용자는 << 와 >> 버튼들을 클릭함으로써 이전이나 다음의 사진들을 조종할수 있습니다.

Flickr Web Services and Key 요구사항

Flickr Web Services를 사용하는 어느 누구라도 키를 받기 위해 Flicker에 등록해야 합니다. 키는 이 API를 이용하여 Flicker의 웹 서버들과 모든 통신에 포함되어야 하는 분명하지 않은 문자열 입니다.

Main.fx 파일 제일 위에서 FX 인자 "flickr_apikey"에 의해서 리턴된 값으로 초기화된 상수 apiKey는 선언되었습니다. 등록하고 App ID를 받기 위해서 http://developer.yahoo.com/flickr로 가세요. 프로그램을 실행하기 전에 상수인 apiKey를 초기화 하는데 키 값을 사용하세요. App ID는 어플리케이션에 인자로 통용될수 있을겁니다.

Source Code
 // TODO: get an apiKey from http://developer.yahoo.com/flickr
 def apiKey = FX.getArgument("flickr_apikey");

여러분은 또한 아래 보여지는 API-KEY 문자열을 직접 할당하고 어플리케이션을 다시 빌드할수 있습니다.

Source Code
def apiKey = "<your flickr api key>";

만약 여러분이 인터넷에 연결하기 위해서 프록시-서버를 사용한다면 "Java Networking and Proxies"에 명시된 setup을 따르기 바랍니다.

References