프로그래밍/FLEX2009.10.29 13:41

트라이블 사이트에 저장된 사진을 앨범단위로 일괄 다운로드할 수 있는 어플리케이션을 개발했다.
서버사이드는 AMFPHP로, 클라이언트는 FLEX로 만든 AIR 어플리케이션이다.


트라이블 : http://www.tryvel.com/
다운로더 설치 : http://www.tryvel.com/downloader.html


* 로그인
 흥미로운점은 쿠키를 이용한 로그인유지가 가능하다는 점이다..
amfphp의 서비스클래스에서 쿠키를 기록하면 어플리케이션이 종료되기전까지 그 쿠키가 유지된다..
잘못했으면 SharedObject로 구현할뻔 했다.....;;
(SharedObject로 로그인을 구현하면 서버에 앨범과 사진목록을 요청할때마다 SharedObject객체의 멤버를 확인해서 보내고, 서버에서 체크하고.. 이런 노가다를 해야한다. 쿠키를 사용하면 서버에서는 쿠키에서 정보를 가져다쓰면 된다..)

* 자동업데이트
 웹어플리케이션과 달리 데스크탑어플리케이션의 가장 큰 문제가 업데이트이다.
타 플랫폼에서야 업데이트에 관한 많은 문서가 있지만, AIR어플리케이션의 업데이트에 관한 내용은 거의 찾을 수가 없다.
다행히 구글링중 다음의 포스트를 찾을 수 있었다.
http://www.weblind.com/101

 어플리케이션이 실행될때 서버의 업데이트를 자동으로 체크하고 업데이트버전이 있다면 설치를 묻는 다이얼로그가 나오는게 업데이트의 이상적인 과정이라고 생각하는데...
이렇게 구현하려면 어떤부분을 손대야할지 몰라 처음에는 다 포기하고 [업데이트 확인]버튼을 넣어 클릭시 checkNox()메소드를 호출하도록 했었다.

 그러다가 update-config.xml의 설정을 하나씩 체크해보니 방법을 알게되었다. (방법은 직접 찾으시길 ^^)
어플리케이션이 실행될때 업데이트를 체크하는 부분은 이벤트 핸들링으로 해결했다.

* Badge를 이용한 웹에서의 자동설치
 아직까지 AIR 어플리케이션이 많지 않은 상황이라 Adobe Air 런타임이 설치되지 않은 피씨가 많다.
Adobe Air가 없다면 어플리케이션을 배포해도 무용지물인데... 배포할때 가장 좋은 방법이 Badge를 사용하는것이다.
네이버의 FlexComponent카페에 다음글을 보면 바로 적용할 수 있다.
http://cafe.naver.com/flexcomponent.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=10892

* 아이콘 만들기
 바탕화면이나 어플리케이션창의 아이콘은 Clockmaker Icon Generator를 사용해서 만들었다.
이것 역시 Air Application이다..
http://file.naver.com/pc/view.html?fnum=204507&cat=30


그 외 목록이나 다운로드 등은 기본 기능이니 생략 ^^



로그인

로그인이 제대로 되었다면 로그인창이 닫히고 다운로더가 열린다.

앨범명을 선택하면 앨범에 속한 파일리스트가 뿌려진다.

다운로드버튼을 클릭하면 저장할 폴더를 물어본다.


새폴더를 하나 만들고

확인버튼을 누르면 다운로드 시작

현재다운로드중인 파일명과 미리보기이미지, 전체용량과 다운로드한 용량이 표시된다.

다운로드 완료

어플리케이션을 실행하고 서버에 새버전이 있다면 업데이트여부 확인창이 뜬다.

Download now 버튼을 누르면 다운로드 후 어플리케이션을 재설치한다. (uninstall 후 install 하는것으로 보여짐)
Posted by 열태

댓글을 달아 주세요