AIR 환경은 여타 데스크탑 어플리케이션처럼 자동 업데이트의 구현 가능을 제공합니다. 하지만 플래시로 AIR 어플리케이션을 제작할 때는 자동 업데이트를 구현할 수 있는 컴포넌트가 플래시 내에 없기 때문에 플렉스 SDK의 컴포넌트들을 가져와야 합니다. 업데이트를 구현하기 위해 SDK에서 가져올 최소한의 컴포넌트는 ApplicationUpdaterUI이며 이 컴포넌트를 가져오는 방법은 아래와 같습니다.

  1. File > Publish Settings 선택
  2. 컴파일 세팅 패널에서 Flash탭 클릭
  3. Player: Adobe AIR 1.5  / Script: Action Script 3.0 선택
  4. Script 텍스트 창 옆에 [Settings...] 버튼 선택
  5. Library Path 탭 선택
  6. [+]버튼 (Add New Path) 선택하여 새 주소창 영역 만든 후 Browse to SWC file 버튼 클릭
  7. 파일 선택 패널로 컴포넌트 선택
    (Flex SDK가 있는 폴더)\frameworks\libs\air\applicationupdater_ui.swc



 이렇게 컴포넌트를 가져온 후에 사용하는 방법의 예는 아래와 같습니다.

import air.update.ApplicationUpdaterUI;
//그분 모셔오기

var exampleUpdater:ApplicationUpdaterUI = new ApplicationUpdaterUI();
// 업데이트 폼 객체 생성
var configFile:File = new File("app:/update-config.xml");
// 설정 정보를 담은 xml파일을 File 객체로 생성 

exampleUpdater.configurationFile = configFile;
// xml에 담긴 설정 정보를 업데이트 폼 객체에 적용
exampleUpdater.initialize();
//설정 정보에 맞춰 업데이트 폼 객체의 초기화





 업데이트 설정 정보를 담은 update-config.xml는 AIR  패키지를 생성할 때 함께 추가되어 배포될 것입니다. 이 xml 파일은 사용자의 컴퓨터에 설치되어 해당 어플리케이션이 업데이트 정보를 어떻게 확인하고 어디서 확인하는지에 대한 정보를 담고 있습니다. XML 구조는 아래와 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns="http://ns.adobe.com/air/framework/update/configuration/1.0" >
   <url>'update-descriptor.xml'이 있는 경로</url>
   <!-- 최신 업데이트가 있는지 확인할 수 있는 서버측 xml //-->
   <delay>1</delay>
   <defaultUI>
       <dialog name="checkForUpdate" visible="true" />
       <dialog name="downloadUpdate" visible="true" />
       <dialog name="downloadProgress" visible="true" />
       <dialog name="installUpdate" visible="true" />   
       <dialog name="fileUpdate" visible="true" />   
       <dialog name="unexpectedError" visible="true" />
       <!-- 상기 설정에 관한 자세한 정보는 검색을 이용 | 일단 모두 true 설정 //-->
   </defaultUI>
</configuration>



 이렇게 사용자 컴퓨터는 이 xml 설정 정보를 이용해 최신 업데이트가 있는지 확인합니다. 하지만 최신 업데이트가 있는지 확인할려면 서버측에도 업데이트 정보를 가지고 있어야겠지요? 이 역활을 해주는 것이 update-descriptor.xml입니다. 내용은 아래와 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<update xmlns="http://ns.adobe.com/air/framework/update/description/1.0">
    <version>1.0</version>
    // 버전 설정 | 사용자 컴퓨터는 이 버전의 숫자로 파일의 버전을 식별
    <url>최신 업데이트용 패치 파일 *.air</url>
    <description><![CDATA[
        업데이트 내용을 서술하는 곳 | 릴리즈 정보로 나오게 됨
    ]]></description>
</update>



 이제 업데이트 구현을 위한 기본적인 구색은 갖춰졌습니다만 한가지 문제가 있습니다. 서버측에서 최신 버전을 확인하기 위해선 checkNow()라는 함수를 사용하는데 이것을 사용할 때는 initialize() 함수를 실행한 후 서버측 요청이 끝나야 사용가능하다는 것입니다. 쉽게 설명드리자면...

exampleUpdater.initialize();
exampleUpdater.checkNow();



 이렇게 하면 작동이 안된다는 것이지요. 이 문제를 해결하기 위해서는

  1. [업데이트 확인]이라는 버튼을 따로 만들어서 이 버튼을 클릭할 경우에 checkNow()를 실행시키거나 (이 버튼을 클릭할 때에는 이미 업데이트 객체의 initialize가 완료되어 있으므로)
  2. Timer객체를 이용하여 일정 시간 이후에 실행되거나

 둘중 하나를 선택해야할 것입니다.


 저 같은 경우엔 1분 간격으로 서버의 update-descriptor.xml에서 version정보를 주기적으로 읽어들여 사용자 컴퓨터의 버전 정보와 비교 후 같으면 checkNow() 함수가 실행되게 해놨습니다. 자세한건 설명드리 않겠습니다.(나도 먹고 살아야지;;) 한가지 힌트를 드리자면...

 NativeApplication.nativeApplication.applicationDescriptor를 이용해서 해당 어플리케이션의 버전과 이름 정보를 xml로 return 받을 수 있습니다. 여기서 버전 정보를 추출해 서버측 update-descriptor.xml의 버전 정보를 비교하면 되는 것이지요.

 건투를 빕니다.


참고 자료 : http://www.adobe.com/devnet/air/flash/quickstart/update_framework.html

저작자 표시 비영리 변경 금지
Posted by 정 영진

트랙백 주소 : http://www.weblind.com/trackback/101 관련글 쓰기

  1. Subject : 정영진의 생각

    Tracked from buckard's me2DAY 2009/07/21 14:57  삭제

    플래시 AIR 어플 자동 업데이트 기술 개발 완료~ 핵심 기술은 단돈 9원에 팝니다. “5원짜리 한개와 1원짜리 네개를 구하는 정성만 있으면 오픈”

댓글을 달아 주세요

  플렉스 개발자 수요는 많아지는데 공급이 따라가주질 못해서 이들을 채용하는 것이 점점 어려워지고 있습니다. 이런 수급 불균형은 플렉스 개발자의 몸값 상승으로 이어지고 있습니다. 여러 사례를 분석해본 결과, 플렉스 개발자의 몸값은 작년보다 30~40% 가량 인상된 것으로 보입니다. 개인적으로 저는 플렉스 개발자가 미친듯이 증가해서 공급이 수요를 능가하지 않는한 이 문제는 더욱 악화되고 앞으로도 계속 될 것으로 봅니다. 만약, 여러분이 지금 플렉스 개발자라면 최상의 상황에 도달해있는 것입니다. 채용 시장은 굉장히 뜨겁습니다. 현 상황을 즐기세요! 자... 그러면 프로젝트 관리자와 고용주는 어떻게 해야할까요? 개발팀과 회사는 어디서 플렉스 개발자를 채용할 수 있을까요?

플렉스 개발자를 찾지마십시오!!!

컴포넌트/어플리케이션 개발자를 찾으십시오!!!



사용자 삽입 이미지
 플렉스에 경험이 많은 개발자를 찾는 것은 어려운 일이며 공급 또한 제한적입니다. 그들을 찾으려고 하면 여러분은 아마 좌절하거나 반드시 제한적인 성공을 맛보게 될 것입니다. 어플리케이션 개발자들에게 플렉스 학습은 매우 쉬운 일이며 플렉스의 개발 모델 또한 Java, C#, C++, VB, PowerBuilder, Delphi 외에 기타 컴포넌트/클래스 개발 페러다임에 기반한 언어들을 사용하는 개발자들이 사용하는데 적합하도록 되어 있습니다. 저는 어플리케이션 개발에 경험이 많은 개발자를 채용해서 단기간에 플렉스를 훈련시켜 프로젝트에 투입시키는 방법을 적극 추천합니다. 이것이 이상한 사업 전략처럼 보일 수도 있습니다만 역사상 가장 성공적인 플렉스 프로젝트 중에 둘은 플렉스나 플래시 개발 경험이 전무한 팀들로 부터 만들어졌다는 사실을 여러분은 아셔야합니다. 컴포넌트 개발, 객체지향 개발에 해박한 어느 훌륭한 어플리케이션 개발자는 데스크탑 소프트웨어와 플렉스가 놀라울 정도로 비슷하다는 주장을 글로 썼었습니다. 플렉스를 이해하는데 필요한 모든 패턴과 기술들이 그쪽 분야 사람들이 모두 아는 것들이라는 점이 그 이유였습니다. 또한, 이것들은 가르치거나 실제 프로젝트에 배운대로 써먹기에 아주 어려운 기술들입니다.





기사원문

How to find Flex developers!

Finding Flex developers is getting very difficult as demand is far greater than supply. This has induced a rise in rates and salaries for Flex developers. In many cases, Flex developers are seeing salaries and rates some 30-40% higher than last year. Personally I only see the problem getting worse and demand continuing to outstrip supply even as we grow like mad. If you know Flex today, you are in a great spot, the market is white hot, party on! So what are projects and employers to do? Where can a team/company find Flex developers?

DON'T LOOK FOR FLEX DEVELOPERS!!!

LOOK FOR COMPONENT AND APPLICATION DEVELOPERS!!!



 Looking for developers seasoned in Flex is hard and there is a limited supply. You will get frustrated looking for them and you will most likely have limited success. Learning Flex is quite easy for application developers and the development model was designed to fit developers coming from Java, C#, C++, VB, PowerBuilder, Delphi or any component/class based development paradigm. I highly recommend recruiting developers seasoned in application development and training them in Flex for the project at hand. This might seem like a strange tactic but 2 of the most successful Flex projects were built from teams with no prior Flex or Flash development experience. A good application developer who understands component development, object oriented development, and who has written desktop software are an ideal fit for Flex. The key is that they already know all the patterns and skills that are needed to understand Flex. These are also the skills that are very hard to teach and can only be learned on real projects.

Look at Buzzword by Virtual Ubiquity. This team had ZERO Flex experience, ZERO, when they decided to build a document editor in the web and chose to deploy to Flash Player and selected Flex for development. At the time Flex 2 was at Beta 2 and they wrote a prototype and proved that they development model would scale to produce a full document editor on par with desktop software. The team has over 100 years combined development experience building document editors. This team is wildly proficient in C and C++ for real desktop development. This team adopted Flex and has literally taken the development model farther than any team yet. They were application developers with deep knowledge of object oriented development and learned AS3 and Flex easily.

Look at Yahoo Web Messenger. This team had ZERO Flex experience, ZERO, when they decided to build an instant messenger in the web. I met the team while teaching at Yahoo earlier this year and they had 5+ developers on the project with no prior experience with Flex or AS3. The key was the team were all experienced application developers. By my estimate that team went from scratch to release in 6 months implementing the native Yahoo Messenger protocol in AS3 using flash.net.Socket.

Look at many of the top Flex developers and several key evangelists for Flex, they all have come from a component development background. What is even stranger is that many were once upon at time PowerBuilder developers. It is this component based legacy that is a strength in learning/adapting to the Flex development paradigm. If you look closely at Farata Systems and Cynergy Systems you will see several of the leading PowerBuilder developers who migrated to Java and then onto Flex.

Here are 5 skills/experience to look for:

1. Component Development
2. Desktop Application Development
3. OOP Skills - Classes, Interfaces, Composition, Inheritance
4. Languages - Java, C, C++, C#, PowerBuilder, Delphi, VB
5. Compiler skills are a must! (Flex/AS3 are not interpreted, they are compiled)

I am sure we will see a day when there are millions of Flex developers but given the market shortage today, we need to recruit them from other development markets. The best way to do that is to port developers with application skills and experience and teach them Flex. There are 5-10 Million developers out there that qualify and many are already employed in larger organizations. In many companies, there may already be the makings of a great Flex team in house.

There will come a day when recruiting Flex will be easier, but today, focus on finding good application/component developers for your Flex project and train them. I wish it were easier and that Flex developers grew on trees but we are not there yet.

Go Flex!

My 2 cents,

Ted :)

Posted by 정 영진

트랙백 주소 : http://www.weblind.com/trackback/66 관련글 쓰기

  1. Subject : 정영진의 알림

    Tracked from buckard's me2DAY 2009/07/24 15:18  삭제

    플렉스 개발자를 채용하는 방법! 번역하다가 포기… 번역은 쉬우나 의역이 어렵도다. ㅜㅜ 누가 대신 해줄 사람 ㅋㅋ

댓글을 달아 주세요

Flex/AIR Bible

책소개 2008/07/18 16:25
사용자 삽입 이미지
  배송받은지 일주일이 지난 오늘... 드디어 이 책을 다 읽었다. 출판사는 대림이다. 일전에 대림 출판사에서 출간한 [새롭게 시작하는 플래시 CS3 ActionScript 3.0]이란 책과 [Flex 3 Knowhow Bible]이란 책을 읽으면서 해당 출판사의 책만드는 수준은 익히 알고 있었기 때문에 책 상태는 크게 기대하지도 않았는데 역시나... 이 책은 나의 예상을 조금도(x3) 벗어나지 않았다. 맞춤법이 완전히 틀린 점은 이제 어느정도 적응이 되어 그러려니 하는데 책의 신뢰성에 악영향을 미치는 오타와 오제는 여전히 해결되지 않아서 나는 책 읽는 내내 스트레스 받아야만 했다.

 이런 형편없는 작문의 원인을 저자 탓으로 돌릴 수도 있겠지만 개발 전문가인 저자에게 작문실력까지 기대하는 것은 '오버'라고 생각한다. 저자의 작문실력을 보완하기 위해서 출판사가 존재하는 것 아닌가? 명색이 출판사라는 곳이 국문과 졸업생 직원 한명 없겠는가? 거기다 맨 뒤에 키워드 인덱스 부분을 빼버린건 무슨 센스인가? 국내 서적이 외국 서적에 비해 인덱스가 너무 빈약해서 유명무실하다는 것은 모두 알고는 있지만 인덱스를 아예 빼버린 "900페이지 짜리 기술 서적"은 난생 처음 본다. 이 출판사는 출판사가 마땅히 해야할 이런 작업을 전혀하지 않았고 저자의 명성과 실력에 기대어 돈만 챙긴 느낌이 강하다. "야~이~ 도둑 놈들아!"

 형편없는 재책 수준과 달리 책 내용은 상당히 훌륭하다. 일전에 내가 소개한 [Flex 3 Knowhow Bible]은 상당히 실제적이고 실무적이어서 마음에 들었다면 이 책은 플렉스의 근원적인 부분을 많이 다루고 있어서 개발자의 내공을 올려주어 높은 점수를 주고 싶다. 개인적으로 진정한 의미의 Bible 서적이 나온 것 같아서 무척 기쁘다.

 FDS에 관한 내용이 빠져 약간 아쉽지만 플렉스/AIR에 관련한 대부분의 기술들이 소개되었고 개념적인 부분을 부족함 없이 설명했다. 물론, 다른 기술서적과 다르게 개념적인 부분을 집중적으로 설명하다보니 책이 다소 지루하고 답답해보일 수도 있겠으나 개인적으로 이런 서술식의 글이 개념을 잡기에는 가장 좋은 방법이라고 생각하며(적절한 다이아그램만 더 있었어도) 항간에 유망자격증으로 알려진 ACE Flex 2 자격증 준비에도 아직 이것만큼 최적화된 책은 없다고 생각한다. (FDS는 따로 공부하세요.)

 객체지향과 이벤트 모델에 어느정도 익숙한 개발자가 읽어야할 책이며 특히 책 뒷부분의 RPC부분은 네트워크 설계에 관한 사전 지식 없이는 이해하기 힘들 것으로 생각한다. 프로그램 세계에 처음 입문하시는 분들은 C++이나 자바 기초 학습, 네트워크 학습을 충분히 하고 책을 읽어야 할 것이다.

  • 도서명 : Flex/AIR Bible
  • 가   격 : 37,000원
  • 저   자 : 윤 훈남
  • 출판사 : 대림
  • 수   준 : 중급

'책소개' 카테고리의 다른 글

Flex/AIR Bible  (4) 2008/07/18
바닐라로이 Flex 3 Knowhow Bible  (0) 2008/07/03
웹 사용성 중심의 웹 사이트 제작론  (0) 2008/03/20
Posted by 정 영진

트랙백 주소 : http://www.weblind.com/trackback/60 관련글 쓰기

댓글을 달아 주세요

  1. BlogIcon 열이아빠 2008/07/18 17:16  댓글주소  수정/삭제  댓글쓰기

    일주일만에 다 읽으시다니..대단하십니다.ㅁㅁ
    너무 두터워서 차마 손도 못대고 있다는..

  2. 도둑놈입니다 2008/07/24 13:42  댓글주소  수정/삭제  댓글쓰기

    우연히 검색하다 이 글을 보게 되었네요. 좋은 충고 감사합니다.
    사실 저도 이 책은 욕 얻어 먹을 생각을 하고 빨리 냈습니다. 액션스크립트 3.0도 그렇고 Flex Knowhow Bible도 그러했구요.

    돈이나 벌면서 도둑놈이란 소리 들었으면, 기분이라도 좋았을텐데.

    핑계(?)대고 싶은 마음 굴뚝같지만, 하지 않을렵니다.
    하지만 도둑놈은 아니란 말을 하고싶네요.
    나름 이쪽 시장을 사랑하고 남들이 내지 않을려는 책 낼려고 노력했습니다. 저자 명성과 실력에 기대지도 않았다는 것만 말씀 드리고싶습니다. Flex/AIR 전문가들 중에서 윤훈남 저자 아시는 분 있을 것 같으세요? 숨겨진 정말 멋진 분이란걸 알지만, 저자 명성과 실력으로 하지 않았다는 걸 말씀드리고 싶습니다.

    핑계라도 듣고 싶으시다면
    mylovena@msn.com으로 메시지 남겨주세요.
    왜 도둑놈이 아니라고 하는지 말씀드리도록 하겠습니다.

    좋은 충고 가슴속 깊이 남겨놓고
    도둑놈이란 소리 듣지 않도록 많은 노력 기울이겠습니다.
    감사합니다.

    아~ 그리고 시간 되시면 책 집필해 보세요.
    아이템들도 좋은 것 같으시고, 글도 잘 쓰시는 것 같은데.
    당연히 도둑놈의 출판사하고는 일하시지 않으시겠지만.^^ 농담입니다.

    • BlogIcon 정영진 2008/08/01 21:15  댓글주소  수정/삭제

      잠시 인터넷과 단절된 곳에 다녀오느라 미쳐 답글을 못 달아드렸습니다. 이제야 확인했군요.

      제가 도둑놈이라는 표현을 사용한 것은 찬론도 반론도 아닌 어느 교만한 블로거의 배설 정도로 이해해주시길 바랍니다. 지금 다시 읽어보니 이 책의 긍정적인 면이 상당히 많음에도 불구하고 부정적인 면만 너무 부각시킨 것 같아서 미안하게 생각됩니다.

      귀사의 출판물에 대해 매우 부정적인 견해를 포스팅 했음에도 불구하고 제가 최근에 구입해서 읽은 IT서적 4권 중에서 3권은 귀사의 출판물이었을 정도로 귀사의 책을 즐겨 봅니다. 그리고 실질적인 도움도 상당히 많이 받고 있습니다. 즉, 제가 귀사에 대한 악감정이 있는 것은 아니라는 것을 알려드리고 싶군요. 단지 '아쉬움'을 두서없이 배설했을 뿐입니다.

      배설한 글은 심각하게 생각하지 않으셔도 됩니다. 실제 이렇게 IT경향에 민첩하게 발맞추는 출판사에게 재책 수준까지 요구한다는 것은 무리지요. 그런 것을 진지하게 요구하는 사람이 있다면 그 또한 '도둑놈'인 것이라고 생각합니다.

      아무쪼록 이런 두서 없는 글로 인해 귀사의 비전과 자부심에 누를 끼치지 않았으면 합니다. 저는 귀사가 다른 어떤 출판사보다도 잘하고 있으며 앞서 나간다고 생각하고 있으니 흔들리지 말고 자신의 비전을 믿고 더욱 발전하시길 바랍니다. 앞으로 멋진 책 많이 제공해주십시오. 건투를 빕니다.^^

  3. BlogIcon chery 2008/09/11 14:44  댓글주소  수정/삭제  댓글쓰기

    흠.. 책 리뷰 감사합니다. 구매에 많은 도움이 되었어요~ ^^

사용자 삽입 이미지
  기존의 플렉스 책들이 단순히 플렉스를 소개하는 단계에서 그친 반면 이 책은 매우 실제적이다. 책에 나오는 100개 이상의 예제들은 모두 실무에서 사용하고 있는 기술들이며 자체적으로 개발한 컴포넌트 소스까지 공개했고 플렉스 개발에 도움이 되는 각종 툴 노하우까지 넣어놨다. 이정도면 웬만한 원서보다 훨씬 낫다고 생각한다. 일단 플렉스의 기초를 공부한 중급 수준의 사람이 읽어야할 책이며 객체지향에 대한 소양이 없다면 자바 기초문법책부터 공부하고 읽기를 권유한다.

 훌륭한 책이지만 책 상태는 그리 만족할만한 수준은 아니다.

 이 책은 오타가 너무나 많다. 오타 수정은 보통 출판사측의 역량에 달린 문제인데 이 책을 출간한 대림은 자체적으로 오타를 수정할만한 인력도 성의도 없는 것 같다. 예전에 오타와 이해할 수 없는 글로 악명 높았던 [새롭게 시작하는 플래시 CS3 ActionScript 3.0]도 이 출판사의 작품이다. 개인적으로 저자(훈남님)와 같은 카페에 있으면서 저자의 실력과 능력을 충분히 눈으로 보았고 알고 있기에 저자의 명성을 먹칠한 출판사가 참 한심스럽게 보였다. 나도 이 책을 참을인(忍)자를 세번 그리며 꿋꿋하게 읽다가 마지막 100페이지를 남겨놓고 포기했던 기억이 난다.

 이 책은 형식을 너무 안 지켰다. 보통 책을 만들 때는 어느정도 형식 같은 것은 지켜서 만들어야하는데 이 책은 형식을 생략한 부분이 너무 많다. 컨텐츠는 이리도 알차면서 출판사가 담당해야할 [컨텐츠 외의 컨텐츠]는 왜 이렇게 내용이 없을까? 최소한 이 책의 구독 대상이 누군지 정도는 명시해줘야하는데 처음 플렉스를 접하는 사람이 이 책을 구매할 때 받을 혼란에 대한 안전장치가 하나도 없다. 보다 많은 사람에게 책을 팔아먹기 위해서? 나는 이 대림이라는 출판사의 악명과 수준을 알고 있기에 충분히 그럴 수도 있다고 생각한다.

 이번에 아는 형의 소개로 이 책을 사서 보게 되었는데 내가 이제껏 읽어본 4권 중에서는 가장 유익했다고 생각한다.

'책소개' 카테고리의 다른 글

Flex/AIR Bible  (4) 2008/07/18
바닐라로이 Flex 3 Knowhow Bible  (0) 2008/07/03
웹 사용성 중심의 웹 사이트 제작론  (0) 2008/03/20
Posted by 정 영진

트랙백 주소 : http://www.weblind.com/trackback/54 관련글 쓰기

댓글을 달아 주세요