Adobe AIR2011.09.12 23:23

  Flash Builder 에서 Flash Project, Flex Project 그리고, Actionscript Project 를 생성하여 Adobe AIR 어플리케이션을 개발 할 수 있습니다. 결과물은 .air 확장자 또는 윈도우에서는 .exe, 맥OSX 에서는 .dmg 로 설치 파일을 만들수 있습니다. 


 Adobe AIR 의 단점중 하나가 AIR Runtime 이 설치 되어 있어야 동작 한다는 점 입니다. 하지만 .exe 나 .dmg 로 설치 파일을 패키징 하게 되면 설치 파일에 AIR Runtime 을 포함 시킬수 있기 때문에 사용자가 따로 AIR Runtime 을 찾아서 설치 안해도 된다는 장점이 있습니다. 얼마 전까지만 해도 Android OS에서 동작 하는 Adobe AIR 어플리케이션을 패키징 하는 옵션에 AIR Runtime 을 포함시키는 옵션이 없었는데 AIR 3.0 에서 추가 되었다고 하니, 이제 Android 에서도 AIR Runtime 을 따로 설치 하는 수고를 하지 않아도 될것 같습니다. 



 웹을 기반으로 하는 서비스들은 개발사 측에서 새로운 버전을 웹에 배포 하면 새로운 버전을 바로 사용할 수 있습니다. 하지만 Adobe AIR 기반의 데스크톱 또는 모바일 설치 서비스들은 개발사가 따로 업데이트를 구현해 줘야 합니다. 친절하게도 Adobe 는 업데이트를 아주 쉽게 구현할 수 있는 클래스를 제공해 주고 있습니다. 


import flash.fileSystem.File;

import flash.desktop.Updater; 
var updater:Updater = new Updater();// applicationStorageDirectory에 설치파일이 저장되어있다고 가정

var airFile:File = File.applicationStorageDirectory.resolvePath("새로운설치파일이름");

var version:String = "새로설치될버전";

updater.update(airFile, version);

 

 새로운 설치 파일을 다운로드 받은 후에 위와 같이 Updater 클래스를 이용하면 알아서 새로운 버전으로 업데이트를 하게 됩니다. 하지만 Updater 클래스는 .air 로 패키징 되어 설치된 어플리케이션만 사용할 수 있습니다. Native Installer (.exe 또는 .dmg)로 패키징 된 어플리케이션은 사용할 수 없습니다.



(Export 옵션에 AIR package, native installer 등을 제공 하고 있다)


Updater 를 이용한 업데이트 코드를 Native Installer 로 패키징되어 설치된 어플리케이션에서 실행 시키면 에러를 발생 시킵니다. 



0 : This method is not supported in this profile 



Updater 클래스의 isSupported 역시 false 로 나오게 됩니다. Reference 를 보면 다음과 같이 기술되어 있습니다.



 Updater 클래스는 데스크톱 프로파일에서만 지원되며, 확장 데스크톱 응용 프로그램(기본 설치 프로그램을 사용하여 설치한 응용 프로그램)과 AIR 모바일 프로파일 또는 AIR for TV 프로파일에서는 지원되지 않습니다. Updater.isSupported 속성을 확인하십시오.



 Reference 에 떡하니 안된다고 기술되어 있습니다. Updater 클래스라고 해서 당연히 Native Installer 에서도 될거라 생각했던 제가 순진했던 거였습니다. 그리고 친절하게 다음줄에 Native Installer 에 대한 내용이 기술 되어 있습니다.



확장 데스크톱 응용 프로그램(기본 설치 프로그램으로 설치한 응용 프로그램)에서는 새로운 버전의 기본 설치 프로그램을 다운로드하여 File.openWithDefaultApplication() 메서드를 통해 실행할 수 있습니다. 


힌트만 알려줄 뿐 업데이트 방법에 대해서는 나와 있지 않습니다. (레퍼런스 어딘가에는 존재 하더군요) 

 Native Installer 로 패키징된 어플리케이션을 업데이트 시키는건 의외로 간단 합니다. 하지만 왠지 찝찝하게 느껴지는 업데이트 입니다. 일단 업데이트 시킬 파일을 다운로드 받습니다. 그리고 실행 시킵니다. 구체적인 코드를 다음과 같습니다. (파일을 다운로드 받는 과정은 생략합니다.)



if(NativeProcess.isSupported) {                        

var nativeProcessInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();

// file 은 설치파일을 나타내는 FIle 객체

nativeProcessInfo.executable = file;

nativeProcessInfo.arguments = new Vector.<String>();

nativeProcessInfo.workingDirectory = file.parent;

// NativeProcessStartupInfo 를 통해 실행

var process:NativeProcess = new NativeProcess();

process.start(nativeProcessInfo);

NativeApplication.nativeApplication.exit(0);  

}  


 

 위의 코드를 실행 시키면 실행 되고 있는 어플리케이션은 종료 되고 새로 다운 받은 어플리케이션 파일을 실행 합니다. 해당 파일이 실행 되면 다음과 같은 설치 화면이 나타나고 바꾸기를 클릭하면 새로운 버전으로 설치 됩니다.





 업데이트라고 하기에는 좀 빈약해 보이는 방법 입니다. 좀 더 깔끔하게 설치 및 업데이트를 하고 싶다고 하면 설치 및 제거 업데이트를 구현한 인스톨러를 만들고 그 안에서 Native Installer 로 패키징된 파일을 설치 하는 방법을 사용해야 합니다. AIR 자체적으로는 위의 화면을 바꾸는 방법이 아직까지는 제공되지 않고 있습니다. Daum 마이피플이 인스톨러를 이용하여 설치/제거/업데이트를 하는 경우에 속 합니다.





 Adobe AIR 가 원소스 멀티플랫폼이라는 장점을 내세우면서 홍보를 하고 있는데요. 아직 까지는 설치 호환성에서 다소 문제가 보입니다. 물론 사용자 컴퓨터 환경이 너무 다양해서 테스트 못하는 점도 이해 하지만 모바일에 신경 쓰기 이전에 데스크탑용 AIR Runtime 의 설치 호환성을 좀 더 보완해 줬으면 하는 바램 입니다.



 




Posted by Flash 동강
Adobe AIR2011.04.24 19:34

 얼마 전에 Adobe AIR 기반으로 다음 뮤직의 음원을 다운받는 어플리케이션을 개발했습니다. AIR 기반으로 어플리케이션을 개발한다는것 이 많은 사례를 가지고 있지 않았고 국내에는 2권 정도의 AIR 개발 서적밖에 존재 하지 않아 구글링에만 의존해서 여러가지로 고생을 했습니다. 


  지금부터 작성할 포스팅은 제목 그대로 AIR 개발을 하기 전에 알아 두면 좋은 것들입니다. 제가 몰라서 실수 했던 것들은 정리 한다는 의미가 더 크니 읽기 전에 참고 하세요.


 AIR 기반으로 개발한다는것은 사용자 컴퓨터에 설치 후에 실행되는 어플리케이션을 만드는 것 입니다. Flash Player 기반은 주로 웹에 올려져서 사용되고 브라우저 라는 종속된 공간 안에서 실행 되는 것이기 때문에 사용자에게 영향을 미치는 범위가 AIR 에 비해 작습니다. 그래서 AIR 개발시에는 Flash Player 기반으로 개발 할 때는 하지 않았던 Applications & Installer Setting 작업을 하게 됩니다. 이번 포스팅에는 Application Setting 에 대해 다루겠습니다. 


 Flash IDE 나 Flex/Flash Builder 를 보면 어플리케이션과 설치할때 사용되는 인스톨러를 셋팅하는 패널이 있습니다. 이 패널 셋팅을 통해 기본적인 내용과 세부적인 내용을 셋팅 합니다. Flash IDE 에서는 위의 패널을 통해 셋팅을 하고 어플리케이션이 컴파일 될때 -app.xml 파일에 해당 내용이 포함되어 컴파일 됩니다. Flash Builder 에서는 -app.xml 파일을 직접 셋팅해서 어플리케이션과 인스톨러를 셋팅합니다. 셋팅된 내용들은 결과 적으로 -app.xml 파일로 작성 되는데 기본적인 내용들은 다음과 같습니다.




	AirTest
	AirTest
	AirTest
	v1
	
	


-app.xml 이 많은 설정 값을 가지고 있기 때문에 모든 노드에 대해 설명하는건 의미 없을것 같고, 주의 해서 봐야할 부분은 다음과 같습니다.


1. <id></id>

어플리케이션의 고유 이름이다. 다른 어플리케이션과 겹치게 하면 절대로 안되며, 고유성을 유지 해야 한다. 배포시 변경했을 경우 새로운 어플리케이션으로 인식 되므로 업데이트가 안된다. 브라우저에서 어플리케이션을 실행 시킬때도 이 id 값을 이용한다.


trace(NativeApplication.nativeApplication.applicationID);


2. <version></version>

어플리케이션의 버전이다. 어플리케이션을 업데이트 할때 사용되며, 설치 파일을 생성할 당시 설정한 Version 과 Updater 클래스를 이용하여 업데이트 할때 전달하는 버전 정보가 다를때 업데이트를 실패 한다.


var descriptor:XML = NativeApplication.nativeApplication.applicationDescriptor;
var air:Namespace = descriptor.namespaceDeclarations()[0];
var currentVersion:String = descriptor.air::version;


3. <programMenuFolder></programMenuFolder>

프로그램 메뉴 설정 옵션이고 아래는 Daum 뮤직 다운로드 매니저를 <programMenuFolder>Daum</programMenuFolder> 에 설정한 화면이다.



4. <installFolder></installFolder>

기본 설치 폴더를 설정하는 옵션이다. 아래는 Daum 뮤직 다운로드 매니저를 <installFolder>Daum</installFolder> 에 설정한 화면이다.



 다음으로 다룰 내용은 어플리케이션 인증에 관한 부분입니다. AIR 기반의 어플리케이션은 사용자 컴퓨터에 설치 되고 악의적으로 사용자의 컴퓨터를 조작할 수 있는 기능들을 가질수 있기 때문에 사용자로 하여금 설치 전에 해당 어플리케이션이 안전한가를 인증서를 통해 입증 하는 것 입니다. 아래는 인증서 설정 탭 입니다.



 인증서는 어플리케이션 설치 파일을 만들때만 사용됩니다. 이 인증서는 설치 파일이 배포된 후에 어플리케이션을 배포한 사람 외의 개발자가 어플리케이션을 임의로 수정하여 배포 하는 것도 방지해 줍니다. 실제로 AIR 개발 결과물인 .air 파일은 .zip 파일로 확장자만 바꾼다면 그 안에 포함되어 있는 .swf 파일 등을 볼수 있기 때문에 이 설치 파일을 임의로 변경 한다면 파일이 손상되어 어플리케이션이 설치 될 수 없다는 에러 메시지가 나타나게 됩니다.




인증서 발급 기관

VeriSign ( http://www.versign.com )

thawte ( http://www.thawte.com ) 


인증서가 없어도 개발자가 본인의 인증서를 만들어 사용할 수 있습니다. 하지만 공인 인증 기관에서 발급하지 않은 인증서는 위의 이미지와 같이 제작자 ID 가 알수 없다고 나오게 됩니다. 또한 어플리케이션을 출시한 뒤에 정상적으로 서비스를 하는 도중 인증서를 바꾸게 되면 기존에 서비스 하고 있는 어플리케이션이 새로운 버전의 어플리케이션으로 업데이트 할 수 없습니다.


오랜만에 쓰는 글이라 역시 힘드네요. 다음 포스팅에서는 업데이트에 대해 다룰 예정 입니다. 잘못된 내용이나 AIR 개발 중 고민하고 있는 부분들은 댓글을 통해 공유 주세요~ 

Posted by Flash 동강
Adobe AIR2011.02.18 14:22

 최근들어 Adobe AIR 기반으로 되어 있는 데스크톱 어플들이 하나 둘씩 나오고 있는데요. FlashPlayer 기반의 개발보다 자료가 없어서 개발하면서 검색하는 시간이 점점 늘어만 가네요. 그중 하나 BrowserInvokeEvent 사용시 arguments 값에 대한 이야기를 해 보려고 합니다.


AIR 기반 어플리케이션은 일반적으로 아이콘 클릭으로 실행 시키는 방법과 함께 브라우져에서 사용자 이벤트 (마우스 또는 키보드)가 발생 했을때 실행 시킬수 있는 기능이 있습니다. 자세한 내용은 아래 링크에 있는 설명서를 참고하세요.


웹 페이지에서 AIR 응용 프로그램 설치 및 실행


이때 어플리케이션이 실행 되었을때 아이콘을 클릭해서 실행이 되면 InvokeEvent, 브라우저에 의해서 실행이 되면 BrowserInvoke 이벤트가 발생하게 됩니다. 

브라우저에서의 실행은  air.swf 파일 로드를 통해 그안에 정의 되어 있는 메소드의 installApplication 과 launchApplication을 이용합니다. 이 두 메소드의 쓰임은 위의 링크에서 브라우저에서의 AIR 응용프로그램 설치, 브라우저에서 설치된 AIR 응용 프로그램 시작 에서 확인할 수 있습니다. 

이 두 메소드는 설치후에 어플리케이션이 실행되었을때 파라미터를 전달해 주는 arguments 값을 설정해 줄수 있는데요. 이 arguments 값이 Array 형으로 전달 되는데 Array 안에 들어 갈수 있는 데이터형이 문자형(String) 으로 제한 됩니다. 보안상에 이유로 인해서 제한을 두고 있는것 같지만, 문제는 문자형도 제대로 넘어가지 않습니다. 예를 들어 URL 은 배열안에 넣고 전달 하려고 해도 아에 launchApplication 이나 installApplication 이 호출된 후에 AIR 어플리케이션이 실행 되지 않습니다. 그 이유는 문자안에 영문 문자열이 아닌 다른 문자가 포함되어 있을때 이러한 문제가 발생 합니다.

해결 방법은 전달해야 하는 문자들은 Base64로 인코딩 한 후에 전달하고 어플리케이션에서 디코딩해서 사용하면 됩니다.
Flex SDK 를 사용한다면 기본으로 Base64Encoder, Base64Decoder 가 포함되어 있으니 사용하시면되고, 다른 프로젝트라면 as3crypto (http://code.google.com/p/as3crypto/)라이브러리를 사용해 보는것을 추천합니다.

비교적 많은 기능을 가지고 있는 AIR 플랫폼이지만 제약도 많습니다. 다만 다른 플랫폼에서는 없는 기능과 사용자 편의성을 몇개 가지고 있다는게 메리트가 느껴집니다. 



Posted by Flash 동강
Adobe AIR2010.09.25 19:59

 Adobe 에서는 Openscreen project의 일환으로 Android OS 에서 돌아가는 Adobe AIR Runtime for Android 를 개발중에 있다. AIR for Android 는 Adobe AIR 를 설치한 Android OS 기반 디바이스에서 설치형 어플리케이션을 운영할 수 있게 해주는 기술(런타임) 이다. 






왜 Adobe AIR 인가?



Adobe AIR 란?


 Adobe AIR는 운영체제에 상관 없이 데스크톱에서 RIA(Rich Internet Aapplications)를 개발 및 배포할 수 있는 런타임입니다. 여러분은 전통적인 데스크톱 개발 기술을 배우지 않고도 기존에 사용하던 웹 기술(HTML, Javascript, Adobe Flash®, Adobe Flex™, Ajax)로 개발한 웹 어플리케이션을 데스크톱에서 실행할 수 있습니다.  (출처 : adoberia.co.kr )



 이전 글에서도 언급했듯이 Flash platform을 이용하여 데스트톱 앱이나, 모바일 앱을 개발하면 높은 확장성을 가질수 있다는점이 가장 큰 장점이다. 데스크탑 환경이나 모바일 환경등 여러가지 플랫폼이 존재하는 상황에서 개발하려고 하는 프로그램이 여러 플랫폼을 커버 할수 있어야 한다면 Adobe AIR 를 도입해 보는것이 좋다. 예를 들어 보면, Twitter 클라이언트로 인기를 끌고 있는 TweetDeck ( http://www.tweetdeck.com/ )은 AIR로 개발한 데스크톱 프로그램으로 Window, Mac, Linux 에서 모두 실행 가능하다. AIR를 사용하지 않는다면 각각의 플랫폼(OS)에 맞춰서 따로 개발해야 하지만, AIR를 이용하여 하나의 결과물로 여러 플랫폼에 설치되는 프로그램 개발이 가능 하였다.



AIR for Android (http://labs.adobe.com/technologies/air2/android/)


 현재는 Adobe AIR 2.5 상태이고, Adobe 에서는 2011년 상반기 릴리즈를 예정으로 Android OS ( 넥서스원, 겔럭시 A,S 디자이너 등과 같은 )를 탑재한 디바이스에서 AIR 어플리케이션을 실행 시킬수 있게 하는 런타임을 개발하고 있다. 현재 프리 릴리즈 상태로 개발자 프로그램에 가입하면 개발중인 버전을 테스트 할 수 있다. 필자가 기대하고 있는건 기존 데스크톱 환경에서 이미 구축되어 있는 게임이나 컨텐츠들을 비교적 쉽게 모바일 환경으로 가져올수 있다는 점이다. 



 하나의 소스를 이용하여, 거의 모든 플랫폼을 커버 할 수 있는 컨텐츠 개발이 가능하다. 



그러기 위해서는 앞으로 가야할 길이 많이 남아 있지만, 앞으로 데스크톱, 모바일 환경에서 Adobe AIR의 가능성은 상당히 기대가 된다. 



Posted by Flash 동강
Flash platform2010.09.19 14:53

 몇일전 Apple 이 아이폰 앱 개발 정책 약관을 변경에 따라 다시 Flash CS5 를 이용하여 아이폰 앱 개발이 가능해 졌다. 정책이 바뀌기전 심사 중이었던 플래시로 만든 앱들도 심사 완료 상태가 되었다. 


 이 문서에서는 두가지,  Flash CS5 의 Package for iPhone 으로 개발하는 아이폰앱과 Adobe 에서 2011년 상반기 런칭을 목표로해서 개발하고 있는 Android for AIR 에 대한 소개 및 가능성에 대해 다룰 것이다. 


 먼저 Package for iPhone 이다. Flash Pro CS5를 이용해 만든 결과물이 아이폰 설치 파일인 .ipa 로 나온다. 개발자는 맥에서 xcode 와 object-c를 이용하여 개발한 .ipa 를 테스트하는 방법과 동일하게 자신의 아이폰에 설치 할 수 있다. 



(출처 : http://www.mikechambers.com/blog/ )


 단순히 Flash 툴을 이용해 ( Actionscript3.0 ) 만든 코드를 LLVM ( Low Level Virtual Machine ) 을 통해 .ipa 로 컴파일하는 것이다. 


 몇 가지 테스트를 해보니, 아이폰에서 제공하는 네이티브 API 를 사용하지 않는 컨텐츠라면 데스크톱 환경에서 사용하고 있는 소스를 아이폰 용으로 컴파일해서 사용해 보니 크게 퍼포먼스가 떨어지지 않는다. 다만 폰(스마트폰)이라는 디바이스적인 한계가 있기때문에 최적화가 필요 하다. 


최적화에 대한 내용은 어도비 에반젤리스트인 마이크챔버스의 블로그 내용을 참고하라.



 장점은 데스크톱에서 사용하는 플래시 컨텐츠의 소스를 그대로 가져다 쓸 수 있다는 점이다. 다만 데스크톱은 마우스를 이용하고 폰은 터치를 이용하는 점이 다를 뿐이지 소스를 전반적으로 수정할 필요는 없다. UI 를 구성하는 뷰단과 이벤트 처리만 바꿔준다면 손 쉽게 서비스가 가능한 앱을 만들수 있다. 




 단점은 굳이 플래시를 가지고 개발을 할 필요가 없다는 것이다. LLVM 의 성능이 향상된다면 컴파일되서 나오는 결과물의 퍼포먼스도 빨라지겠지만 xcode 와 object-c 를 이용하여 개발한 앱이 같은 기능을 한다면 더 빠르다. 그리고 데스크톱 자원을 사용해서 무리 없이 실행되던 게임들도 아이폰에서 실행 시키면 느릴수 있다. 아니 느리다. 퍼포먼스 튜닝이 반드시 필요한 부분이다. 하지만 모바일 용으로 퍼포먼스 튜닝을 한다면 데스트톱에서는 더 빠르게 실행 시킬수 있기 때문에 그 소스는 더 경쟁력이 생길 것이다. 


위의 단점들을 보면 굳이 Flash를 이용하여 아이폰 앱 개발을 할 필요성을 못느낀다. 하지만 같은 소스로 Android 앱까지 개발할수 있다면 생각이 달라질 것 같다.


현재 prerelease 상태로 Android OS 에 설치되는 AIR Runtime 이 개발 중에 있다. 아이폰 앱 개발과는 방법이 조금 다르지만 Flash CS5를 이용하여 안드로이드 앱을 개발하는 건 같다. 다만 안드로이드 OS 2.2 버전 이상에서 설치되며 폰에 AIR Runtime 을 설치해야만 Flash 로 개발한 앱을 설치 할 수 있다. 


자세한 개발 방법은 아래 사이트를 참고 하라.



위의 링크에서 확인할 수 있듯 많은 앱들이 이미 개발 되었다. 아직 prerelease 상태이기 때문에 Flash CS5 Android extention을 설치해야 한다. 설치는 AIR for Android prerelease program 에 가입한 후에 해당 사이트에 가면 다운로드 받을수 있다. 


Adobe AIR 가 폰에 설치되어 있어야만 Flash 로 만든 앱들을 설치 할 수 있다는 단점이 있지만, 이 부분은 정식 릴리즈가 되는 시점에서 해결책이 나올 것으로 본다. 몇가지 앱들을 넥서스원(Android 2.2)에 설치 해봤는데 성능이 기대보다 좋다. 개인적으로 아이폰 앱 보다는 안드로이드 앱 개발의 가능성이 높게 느껴 진다. 


다만, 아이폰과 안드로이드 해상도가 다르기 때문에 같은 뷰를 보여 주기 위해서는 소스 변경이 불가피 하고 안드로이드가 탑재되는 스마트폰도 역시 폰에 불가하기 때문에 성능 최적화가 필요 하다. 하지만, 이를 제외 하면 상당히 괜찮다. 아니 나쁘지 않다. 큰 리소스를 필요로 하는 앱이라면 네이티브 코드를 이용하여 개발하는게 휠씬 좋겠지만, 가벼운 컨텐츠 개발이라면 상당히 매력적인 기능이 될 것이다. 


하나의 코드를 이용하여, 데스트 톱( Windows, Mac, Linux), 모바일 ( 아이폰, 안드로이드 그리고 추가적으로 확장 예정인  OS ) 에서 모두 실행 될 수 있는 앱을 개발할 수 있다는게 Adobe가 내세우는 장점이고 나에게도 큰 장점으로 다가 온다. 다만 아직 갈 길이 많이 남아 있다. 퍼포먼스 측면에서 HTML5를 이용해서 개발한 것과 별 다를게 없다면 HTML5의 확장성에 밀리게 될게 뻔하기 때문이다. 하지만 네이티브 API가 접근 할 수 있다는 것 만으로도 상당히 큰 장점이 될 것이다. 그리고 소스를 재사용할 수 있다는 점은 인력 부족 상태에서 하나의 대안으로 자리 잡을 수도 있을것 같다. (또한 아직 prerelease 다 )


다음은 웹에서 서비스 하고 있는 소스를 이용해 뷰만 바꾼것을 아이폰과 안드로이드 앱으로 컴파일해서 설치해본 영상이다.






'Flash platform' 카테고리의 다른 글

Flash App Performance : Image Sprite Sheet  (0) 2012.01.25
[Mobile] Flash Platform for Mobile  (0) 2010.09.19
Flex for Mobile Devices  (0) 2009.11.06
Flash / Flex 로 만든건 느리다?  (2) 2009.09.08
Posted by Flash 동강
Actionscript3.02009.08.25 10:27


목차

  •  Flash platform 에 대해서
  •  Flash 와 Flex 그리고 AIR
  •  Actionscript 버젼벌 정보
  •  Flash player 버젼별 정보


Welcome to "Flash platform"




Flash platform 이란?

Flash 컨텐츠를 개발 하기 위한 방법은 여러 가지가 있다. Flash IDE (CS3, CS4) 를 이용하는 방법이나, Flex Builder 나 Flash Builder 를 이용하여 MXML 이나 Actionscript Project 를 컴파일 하는 방법, 또는 FDT 를 이용하여 컴파일 하여 SWF 를 생성하는 방법이 있다. 이 모든 Flash 컨텐츠의 결과는 SWF 형식으로 되어 있고 이러한 작업들은 Flash 컨텐츠 개발이라 한다. (곧 Flash Catalyst 가 정식 배포 되지만, 논외로 하겠다.)


얼마 전까지만 해도 Flash 와 Flex 의 네이밍은 따로 따로 존재 했다. 애초 부터 Flex Builder 라고 개발툴을 만들고, Flex 개발 방법을 강조해 오던 Adobe의 잘못으로 인해, Flex 를 새로운 툴이라고 생각하는 사람들이 많다. 하지만, Flex Builder 의 차기 버젼으로 준비되고 있던 Flex 4가 Flash Builder로 네이밍을 변경하여 나오게 되고, Flash IDE 와 Flash Bulder  그리고 Flash Catalyst 등을 이용하여 Flash 컨텐츠를 만드는 모든 것들을 Flash platform 이라고 통합 되었다.


Flash 와 Flex 그리고 AIR 는 무엇인가?



Flash 를 처음 시작 하는 사람이 가장 궁금해 하는 것이 "Flash 와 Flex 그리고 AIR가 무엇인가" 하는 것이다. 우선 AIR 에 대해 말하면 Flash player 와 같은 역할을 하는 환경을 말한다. Flash player 는 웹 브우저나, 모바일 디바이스에서 실시간으로 SWF 를 실행할 수 있는 환경을 제공해 주는데, AIR 는 데스크톱에서 Flash platform 환경에서 만들어진 어플리케이션을 설치하여 실행 시키는 환경이다. Flash player 와 같은 Runtime 환경이므로 Flash IDE 를 이용하여 만들든 Flex framework 를 이용하여 만들던 AIR 환경에서 돌아 가게 만들수 있다. 단 AIR 로 만드면 Flash player 에서 제공되지 않고, 제약 사항이 많았던 환경에서 벗어나서 여러 가지 장점을 가질 수 있다.


Flash 와 Flex 는 무엇인가? 많은 사람들이 Flash IDE (Flash 툴)로 만든 것을 Flash 컨텐츠라 하고 Flex Builder 로 만든 것을 Flex 컨텐츠 라고 알고 있다. 일부는 맞고 일부는 틀리다. Flex Builder 란 Flex framework를 구현하여 Flash 컨텐츠를 만들기 위한 툴이지만 Flex Builder 에서 Flex framework 를 사용하지 않고도 컨텐츠를 만들수 있다. 다만 Flex framework 를 사용하기에 편하게 만들어져 있다. Flex 란 단지 Framework 인데, 이 사실을 잘 알지 못하고 Flash 는 디자이너가 하는거고 Flex 는 개발자가 하는거다 라는 잘못된 생각을 가지게 된 것이고, Flash 와 Flex 가 전혀 다른 컨텐츠라고 생각하게 되는 오류를 발생한 것이다. 결론 적으로 Flash IDE와 Flex Builder는 같은 SWF 를 만들어 내는 툴이다. 다만 Flex Builder 는 Flex Framework 를 사용하기 쉽게 되어 있을 뿐이고 Flash platform 개발을 할때 코드를 짤 수 있는 비교적 편한 환경을 제공해 준다. (이클립스 기반으로 만들어져 있다.) 

Flash platform 개발언어인 Actionscript

Actionscript는 초기 Actionscript1.0 버젼을 시작하여, 현재 3.0 버젼까지 나왔다. Flash 버전 별로 나타낸 표는 다음과 같다.

 Flash player

Flash IDE

Actionscript 
 Flash player 4
 Flash 4
 AS1.0
 Flash player 5  Flash 5
 AS1.0
 Flash player 6
 Flash MX
 AS1.0
 Flash player 7
 Flash MX2004
 AS2.0
 Flash player 8
 Flash 8
 AS2.0
 Flash player 9
 Flash CS3
 AS3.0
 Flash player 10
 Flash CS4
 AS3.0

위의 표와 같이 Actionscript 는 Flash player 의 변화에 맞추어 버전업을 하였다. 버전이 2단계 밖에 바뀌지 않았지만, Actionscript1.0 과 3.0 의 차이는 전혀 다른 언어라고 봐도 될 정도로 다르다. 이 때문에 디자이너나 비 전공자가 Actionscript3.0을 시작하기 어려운 이유이기도 하다. 하지만  그리고 AS1.0 , 2.0 과 AS3.0 은 스크립트를 해석하여 컴파일 하는 엔진 자체가 다르다. Actionscript는 AVM(Actionscript Virtual Machine)에서 돌아가는데, 1.0과 2.0 은 AVM1 에서 돌아 가고 3.0은 AVM2에서 돌아 간다. AVM2가 AVM보다 엄청나게 좋은 퍼포먼스를 내므로 AS3.0 은 1.0, 2.0에 비해 몇배에서 몇십배 백배 차이가 나는 퍼포먼스를 낼수 있다.


Actionscript 의 버전별 언어 형식은 다음과 같다.


AS1.0 언어 형식

on(release){

    // 마우스가 클릭했을때 실행 되는 이벤트

}


AS2.0 언어 형식

객체.onRelease  = function(){

   // 마우스가 클릭했을때 실행 되는 이벤트

}


AS3.0 언어 형식

객체.addEventListener(MouseEvent.CLICK, hnClick);

function hnClick(e:MouseEvent):void{

   // 마우스가 클릭했을때 실행 되는 이벤트

}

 



 

AVM

Actionscript Virtual Machine(액션스크립트 가상 머신) Flash player 포함된 Actionscript 만들어진 SWF 재생하는 엔진이다. Java 실행되려면 JVM 있어야 하듯, Actionscript Java 실행되는 원리와 같다. Flash player(AVM) 설치되어 있다면 어느 디바이스라도 SWF 실행할  있다.


Flash player 에 대해

 위와 같이 Actionscript 버전이 바뀌었다고 해서, 상위 버전의 Flash player에서 AS1.0과 AS2.0 을 실행할 수 없는건 아니다. Flash player 들은 하위 호환성에 맞게 제공 되고 있으므로, 버전에 관계 없이 실행 가능 하다. 하지만, Flash player의 하위버전 즉, Flash player 9 이전 버젼에서는 Actionscript3.0 으로 만든 Flash 컨텐츠를 실행 할 수 없다. 실행 했을때는 상위 버전의 Player 를 설치하라는 경고창이 뜬다. 


'Actionscript3.0' 카테고리의 다른 글

Actionscript3.0의 DisplayList  (2) 2009.09.22
What is "Flashplatform" ?  (3) 2009.08.25
OpenCV in Flash  (2) 2009.08.21
Flash player 의 보안  (17) 2009.06.24
Posted by Flash 동강
Adobe AIR2008.12.11 15:40

Flashbug 에 이어 쓸만한 debugger 를 소개 합니다. Arthropod : AIR 로 만들어진 Flash 와 AIR Debugger 입니다. 

Get it all:

Bundle in a ZIP

I just want the AIR app:
Only the AIR application

I lost my Debug class:
Only the Debug class 

우선 위의 경로를 통해서 AIR 어플리케이션을 설치를 합니다. 해당 파일에는 Debug.as 라는 클래스가 존재 하는데 이 클래스를 통해서 디버깅 코드를 입력하게 됩니다. 보통 Flash 에서는 trace 문을 많이 사용하지만, 서버에 올린것을 테스트 하거나 할때에는 trace 문을 볼수 없으니 이 어플리 케이션을 사용하면 도움이 됩니다.  
Arthropod 를 실행 한후에 작업을 시작합니다. 사용가능한 메소드 종류는 다음과 같으며 trace 를 쓰듯이 Debug.log("this is a simple"); 
과 같이 테스트를 합니다. log 는 일반 메시지를 출력하는 메소드이며 그 밖에 Document 를 보시면 다른 메소드의 쓰임도 알수 있습니다.

Available methods: 더 자세한 정보는 여기를 클릭하세요
Check out the “Documentation” section for further explanation.

  • log
  • warning
  • error
  • object
  • memory
  • array
  • bitmap
  • clear

public static function log(message:String,color:uint=0xFEFEFE) :Boolean

public static function error(message:String) :Boolean

public static function warning(message:String) :Boolean

public static function clear ( ) :Boolean

public static function array ( arr:Array ):Boolean

public static function bitmap ( bmd:BitmapData ):Boolean

public static function object ( obj:*) :Boolean

public static function memory ( ) :Boolean

몇몇 메소드에서는 색깔을 지정할수 있는 옵션이 붙어 있어서 가독성을 높이는데 도움을 주고 있습니다.  

 
  1. import com.carlcalderon.arthropod.Debug;
  2.  
  3. var obj:Sprite = new Sprite();
  4. var arr:Array = new Array();
  5. arr = ["1","2","3","4","5"]
  6.  
  7. var bmd:BitmapData = new BitmapData(80, 30, false, 0xFF0000);
  8.  
  9. Debug.clear();
  10. Debug.log("this is a simple",Debug.BLUE);
  11. Debug.warning("warning : Arthropod test");
  12. Debug.error("error : Arthropod test");
  13. Debug.object(obj);
  14. Debug.memory();
  15. Debug.array(arr);
  16. Debug.bitmap(bmd);
  17.  

 

Debug.clear(); 는 어플리케이션에서 출력되는 값을 지워주는 역할을 하고 log, error, warning 은 문자를 색깔 별로 출력해 줍니다. object 메소드는 모든 객체들에 대한 속성 값들을 출력해 주고 array 메소드는 array 값을 받아서 왼쪽 패널에 값을 따로 출력해 줍니다. 마지막으로 bitmap 메소드는 BitmapData 를 받아서 아래 패널에 실제 만들어 지는 객체를 출력해 줍니다.  

- Flash 에서 AIR 어플리케이션 작업을 할시 Flash debugging 모드로 들어 가지 않으면 trace 문이 안나와서 항상 debugg 모드로 들어

가야 된다는 단점이 있습니다. 안그래도 버벅 거리를 컴퓨터 debugg 모드로 들어 가면 더 버벅 거리지요. 이 어플을 사용하면 그러한

단점을 줄일수 있고, AIR 어플을 만들때 뿐 아니라 서버에서 테스트를 할때에도 동일하게 적용됩니다. 실제로 이전에 소개 했던 Flashbug보다 더 활용도가 좋은거 같습니다. Flashbug 는 꼭 Firefox 에서 Firebug 를 사용해야 한다는 단점이 있지요. 이러한 단점을 모두 없앨수 있는 유용한 어플입니다. 

어플을 실행 하신 뒤에 : http://dongkang.ivyro.net/testfolder/AIRTRACER.html 에서 테스트 하시면 위와 같은 결과를 출력합니다. 

Posted by Flash 동강
Portfolio2008.12.11 12:14

 

BookSearch . Mashup
2007.11

  

책 검색 OpenAPI 를 이용한 d_s BookSearch

Flash 를 기반으로 해서 책 검색을 도와 주는 air 어플리케이션 입니다. 네이버의 실시간 책 검색 순위와, 다음의 책검색 API 교보문고의 다음 책 검색과 연계된 쇼핑 api 를 사용하여 Flash 특유의 UI와 다이나믹한 검색 환경을 고려 하여 제작 하였습니다.  

 

 

 

 

Actionscript 3.0 을 배우고 처음으로 제작해 본 어플리케이션이라, 제작 도중 시행 착오도 많이 하였고, SSU-NHN Web professional 과정을 이수 하면서 그전에는 신경을 덜 썼던 UI 부분에 좀더 비중을 두어 제작을 하였습니다. 이미지 로드 시 크로스 브라우징 처리와, Flash 자체의 보안 샌드 박스에서 문제가 발생하여, Flash 보안 처리가 굉장히 불편하다고 투덜투덜 거린게 생각 나네요.

 

 

기능

기본적인 책 검색 기능과, 실시간 인기 도서를 바로 접근할수 있는 기능, 자신이 찾아봤던 책에 대한 History 기능, 고른 책들에 대해 교보문고로 접근하여 구매 하는 기능 등이 있습니다. 
 

제작 하면서

Actionscript 2.0 을 사용하다 새롭게 3.0 이라는 녀석을 사용해 보고 놀랐던 때가 어그제 같은데, 벌써 1년이라는 시간이 지났습니다. 이제 와서 이 소스를 보면 부끄럽기 짝이 없는 코드들 투성이지만, Actionscript 3.0 에 재미를 붙이고, 밤을 새면서 버그를 잡던게 생각이 남니다. Flash 의 화려함에만 현혹되어, 그 동안 사용자 편의성을 무시 하고 있었다는 것을 알게 되었습니다. 화려함과 기능 이전에 존재 해야 하는 것이 바로 사용자 편의 성인데, 이 프로젝트를 개기로 UI 에 대한 생각이 바뀌었습니다. 기술이 있고 사람이 있는 것이 아니라 , 사람이 있어야 기술이 있는 것이고, 아무리 멋지고 좋은 기능을 가지고 있어도, 정작 사용하지 못하면 없는거나 다름 없다는 것을 깨닫게 해 준 프로젝트 였습니다.  

다운 로드

http://mfiles.naver.net/9746a27f6c305ae9c19e/data26/2008/1/24/70/bookload.air

'Portfolio' 카테고리의 다른 글

i tree  (0) 2008.12.11
Yahweh mini bible  (0) 2008.12.11
Who is 'dongkang'?  (0) 2008.12.11
BookSearch  (0) 2008.12.11
Posted by Flash 동강
TAG Air, Flash, RIA, 동강
Adobe AIR2008.12.11 12:07

오늘 부터 AIR 문서 정리를 시작하였습니다. 처음 하는 번역이라, 머리로는 그려 지는데 말로 쓴다는게 만만치 않더군요;; 영어 공부도 할겸해서 시작했는데, 언제까지 할수 있을지 걱정 입니다. 이제 꾸준히 할당 분량을 채워 가야 지요..ㅎㅎ   

Chapter 23: About the HTML environment

Adobe AIR 는Safari 와 같이 HTML 이나 Javascript 를 파싱(parse : 해석) 할 수 있습니다. AIR API 에는 HTML 관련 기능이 있는데, 이를 이용해서 여러분은 HTMLLoader (AIR 에서 HTML 을 다루기 위해 사용되는 객체) 나 HTML 코드 또는 Javascript 를 프로그래밍 할 수 있습니다. 대부분의 HTML 페이지나 어플리케이션을 약간의 변경(HTML , CSS, DOM , Javascript 를 벗어난 웹 언어일 경우 변경해야 됩니다.) 을 하여 사용하여야 합니다. 왜냐하면 AIR 어플리케이션은 desktop 에 존재하는 file system 에 관여 하는데, HTML 컨텐츠의 보안모델은 웹 브라우져의 보안모델 보다 더욱 엄격하게 적용되기 때문입니다. AIR 에서는 어플리케이션이 설치된 경로에서 로드된 컨텐츠만이 application sandbox 에 존재 하게 됩니다. (application sandbox : AIR API 에 접근하기 위한 가장 높은 권한을 부여 받는다.) AIR places other content into isolated sandboxes based on where that content came from.

File system 에서 로드된 파일들은 local sandbox 에 위치 합니다. http : 나 https : 와 같은 프로토콜에서 로드된 파일들은 remote server 도메인을 기반으로 하는 sandbox 에 위치 하게 됩니다. Non-application sandbox 에 위치한 콘텐츠는 AIR API 의 접근을 하지 못합니다. 그리고 runs much as it would in a typical web browser.  

Contents

“Overview of the HTML environment” on page 243
“AIR and Webkit extensions”on page 246
See also
“Programming in HTML and JavaScript” on page 258
“Handling HTML-related events” on page 274
“Scripting the HTML Container” on page 279  

Overview of the HTML environment

Adobe AIR는 HTML , DOM, Javascirpt 을 해석하는 완전한 Javascirpt 환경을 제공한다. Javascript 는 HTMLLoader class로 재 구현이 되고, (HTML 문서를 불러와서 Flash 에서 다시 컴파일 한다) 이 HTMLLoader object 는 모든 HTML 내용과, NativeWindow object를 포함한다. SWF 컨텐츠에서 HTMLLoader class 는 Sprite class 를 상속받아 다른 display Object 와 비슷하게, 객체들을 추가 할 수 있다(addChild 가 가능하다 : DisplayObjectContainer 로 쓰인다) 이런 Actionscript 의 특징을“Scripting the HTML Container” on page 279 Flex 3 ActionScript Language Reference 에서 설명하고 있다.

Flex framework 에서 AIR HTMLLoader class 는 mx:HTML 컴포넌트에 속해 있다. mx:HTML 컴포넌트는 UIComponent class 를 상속받아 컴포넌트에서 사용하거나, 포함 시킬수 있다. mx:HTML 컴포넌트에 포함된 Javascript 환경에서도 마찬가지 이다.  

Contents

“About the JavaScript environment and its relationship to AIR”on page 244
“About security” on page 245
“About plug-ins and embedded objects”on page 245 

About the JavaScript environment and its relationship to AIR

아래 Diagram 은 Javascript 환경과 AIR-run-time 환경간의 관계를 보여주고 있다. 하나의 window 뿐만 아니라, 여러 windows 도 포함하여 보여 줄 수 있다. ( 그리고 하나의 window 는 여러 HTMLLoader object 를 포함할수 있다)  

AIR Apolication

 

 : Javascript 환경은 자기 자신의 Document 와 Window objects 를 가지고 있다. Javascript 코드는 AIR-run-time 환경(runtime, nativeWindow, htmlLoader 속성과 AIR-run-time 이 서로 작용한다.)과 상호작용할수 있으며Actionscript 코드는 Javascript 환경(HTMLLoader 속성과 Javascript 가 서로 작용한다. : Javascript)과 상호 작용할 수 있다. 또한, Actionscript 와 Javascript 모두 AIR 와 Javascript object 에서 발생한 이벤트에 반응할 수 있다.  

Runtime 속성은 AIR API classes 에 접근 뿐만 아니라, AIR object 를 만들고 static class 멤버들에게로의 접근을 제공한다. AIR API 를 사용하기 위해서는 runtime 속성에 package 와 class 이름을 추가해야 한다. 예를 들어 File object 를 만들기 위해서 아래와 같은 코드를 사용할 것이다 :  

var file = new window.runtime.filesystem.File();

Note : AIR SDK 는 대부분의 AIR class 에서 보다 편안하게 클래스를 정의할 때 쓰이는 AIRAliases.js 라는Javascript file 을 제공한다. 파일을 import 할때 window.runtime.package.Class 를 사용하는 대신에 air.Class 로 줄여서 사용할 수 있다. 예를 들어 new air.File(); 로 파일 생성이 가능하다. (원래는 window.runtime.package.File(); 로 생성해야 될것이다 ) 

NativeWindow object 는 desktop window 를 제어 할수 있는 속성을 제공한다. HTML 페이지 에서 당신은 NativeWindow object 를 포함하는 객체를 window.nativeWindow 를 사용하여 접근할수 있다.

HTMLLoader object 는 콘텐츠를 어떻게 불러와 지고 rendering 되는지에 대한 함수와 이벤트를 제공한다. HTML 페이지에서 당신은 window.htmlLoader 를 사용하여 HTMLLoader object 의 부모를 접근할수 있다.(?)

Important : 오직 설치된 어플리케이션의 부분으로서 존재하는 페이지만이htmlLoader, nativeWindow, runtime 속성을 가질 수 있고, 최상위 도큐먼트 레벨에서만 가능하다. 이 속성들은 도큐먼트가 frame 이나 iframe 에 불러와질때는 추가 되지 않는다. ( 단지 위의 경우에만 가능하다 ) ( 자식 도큐먼트는 부모 도큐먼트 속성들을 접근 할 수 있을 뿐만 아니라, 같은 보안 sandbox 에 존재 한다. 예를 들어 frame 에 불러와진 도큐먼트들은 parent.runtime 을 이용하여 그 부모의 runtime 에 접근할 수 있다. 

About security 

AIR 의 모든 코드는 소유자의 보안 sandbox 에서 실행된다. 어플리케이션이 설치된 경로에서 컨텐츠를 불러오는 것이 제한된 어플리케이션 컨텐츠는 어플리케이션 sandbox에 위치하게 된다. run-time 환경에 접근하는 권한과 AIR API 는 오직 sandbox에서 동작하는 HTML 와 Javascript 에서만 이용가능하다. 모든 Javascript 의 실행은 모든 페이지를 로드하는 핸들러 들이 return 되고 난후에 막히게 된다. 당신은 어플리케이션 페이지를 frame 이나 iframe 에 불러오는 방법으로 어플리케이션이 아닌 sandbox 에 넣을 수 있다. 그리고 AIR에서 frame 의 속성인 sandboxRoot 와 documentRoot를 지정해 줘야 한다. sandboxRoot 의 값을 정해 주므로 보안을 피해 갈수 있다. 당신은 해당 소유자의 sandbox의 컨텐츠들 간의 cross-script를 할 수 있다. 이 방법은 매쉬업 어플리케이션과 같이 페이지를 불러와야 할 경우에 유용하게 쓰인다.

application 의 내용과 non-application 의 내용을 서로 cross-sript 할 수 있게 해주고 non-application 내용이 AIR API 에 접근 할 수 있게 하는 또 한가지 방법은 sandbox 통로를 만드는 것이다. 부모와 자식간에 통로는 iframe 이나, 자식 frame , window 에 있는 콘텐츠의 접근을 허락하고, 접근 방법을 제시 한다. ( application sandbox 에 정의 되어 있다 )

거꾸로 자식과 부모와의 통로는 접근 방법을 제시하고, 자식 sandbox 에 정의 되어 있다. Sandbox 통로들은 window object 에 있는 parentSandBridge와 childSandboxBridge 를 셋팅하므로 쓰여지게 된다.

“HTML security” on page 75 and “HTML frame and iframe elements” on page 253. 에 추가 정보가 있다.  

About plug-ins and embedded objects

AIR 는 Adobe Acrobat 플러그 인을 지원한다. 사용자는 PDF를 위한 Acrobat 이나 Adobe Reader 8.1 ( 또는 그 이상)가 설치되어 있어야 한다. HTMLLoader object는 사용자 시스템이 PDF를 지원하는지 체크 한다. SWF 파일 역시 HTML 환경에서 보여질수 있다. 그러나, 이 기능은 AIR 로 만들어질때만 가능하고, 외부 플러그 인에서는 사용할수 없다. 

See also
  “HTML security” on page 75

“HTML Sandboxes” on page 247

“HTML frame and iframe elements” on page 253

“JavaScript Window object” on page 251

“The XMLHttpRequest object” on page 247

“Adding PDF content” on page 293

  

번역자 동강 : http://www.ddongkang.com

Posted by Flash 동강
Mashup.OpenAPI2008.12.11 11:56

여러분들이 생각하시기에 매쉬업 하면 뭐를 생각하십니까? 검색 API ? 지도 API 나사진 API를 조합해서 만든 사이트? 보통 이런 생각을 많이 하고 계실 겁니다. 하지만, 매쉬업이란 것은 이런 좁은 콘텐츠에 한정되지 않은 하나의 흐름입니다. 포털 사이트나, API를 제공하는 사이트에서 제공 되는 API를 쓰지 않았다고 매쉬업이 아니라고 말할 수는 없습니다. 이와 같이 어떤 방법이라고 정의할 수 없는 “매쉬업” 이란 단어는 기존에 이미 존재하는 서비스 및 컨텐츠들간의 조합을 통해 전혀 다른, 새로운 서비스 및 콘텐츠를 생산하는 작업 모두를 말합니다. 그럼 왜 매쉬업을 하는 걸까요? 최근 매쉬업을 이용한 사이트가 점점 늘어 가고 있고, 이러한 추세는 하나의 트렌드로 자리 잡아 가고 있습니다. 왜? 매쉬업의 정의를 다시 보면, 기존의 서비스를 조합하는 행위입니다. 현재 로서는 웹상에 없는 콘텐츠가 없을 정도로 엄청나게 많은 콘텐츠가 존재 하고 있습니다. 어떻게 새로운 것을 창조 할 수 있을까요? 그 길은 매쉬업에 있습니다.

1 + 1 = 2 가 맞지만, 매쉬업을 함으로서 얻어 지는 이익은 2가 되는 것이 아니라, 엄청난 시너지 효과를 나타나게 합니다. 한 가지 예를 들면, 예전에는 대략적인 위치만 나타내고 있었던, 인터넷 부동산 사이트가 최근에는 구글맵이나, 네이버 맵을 이용하여, 사용자에게 더욱 편안한 서비스를 제공하고 있습니다. 또, 개인 블로그의 경우에도, 개인이 만든 매쉬업을 자신의 블로그에 삽입함으로서 많은 홍보 효과를 보이고 있습니다. 이처럼, 일반 사용자들도, API를 제공하는 회사의 거대한 DB를 사용할 수 있고, 그 방대한 자료들을 이용하여 새로운 콘텐츠가 창조 되는 것입니다.

RIA 라고 들어 보셨습니까? 먼 생뚱맞게 RIA 가 매쉬업이랑 먼 상관있냐? 라고 말하시는 분들도 있겠지만, 우선 RIA 란 무엇인가부터 소개 하겠습니다. RIA 란 ( Rich Internet Application ) 부자 인터넷 프로그램입니다. 90년대 말까지만 해도 “웹 브라우징”은 온라인에 접속하여 텍스트를 읽고 정적인 이미지를 보는 것을 의미했습니다. 하지만 이 모델은 한계가 있었습니다. 더 많은 사람과 비즈니스가 웹에 접속하게 되면서 사용자 들은 편한 것을 원했으며 빠른 것을 원했습니다. 그래서 나온 것이 RIA환경입니다. RIA 는 사용자 인터랙션 디자인에서 모범 사례를 추려 내어 Adobe 의 Macromedia® Flash®, HTML 및 JavaScript 와 같은 웹 기반 기술과 결합함으로써 보다 편안한 인터넷 환경을 제공 합니다. 이 RIA 안에 AIR 가 있습니다. RIA를 거꾸로 읽으면 AIR 가 되지요? 의도한 건지는 모르겠지만, AIR 는 이러한 RIA를 개발 할 수 있고, 배포 할 수 있는 런타임 환경입니다. 어떤 의미일까요? 지금까지의 어플리케이션은 java 나 c 등의 언어로 제작되고, 그것을 기반으로 하고 있습니다. 하지만 air의 기반은 웹에서 사용되고 있는 언어 그 자체입니다. HTML Javascript에서부터 Actionscript3.0, 드림위버로도 간단한 에어 어플리케이션을 만들 수 있습니다. 이러한 air 어플리케이션을 이용하여, 매쉬업을 한다면 얼마나 멋진 매쉬업이 나올까요? 브라우저를 열고, 사이트 주소를 치고, 로그인하는 번거로움을 없앨 뿐만 아니라, 로컬 DB의 사용으로 훨씬 빠른 환경을 제공해 줍니다. 또한

우리가 알고 있고, 제공 되고 있는 OpenAPI 는 모두 air 환경에서 구현이 가능합니다. 

 

 

 1. AOL mashup : Top 100 Videos
사용된 오픈 API : AOL OpenAIM
AOL 의 뮤직 비디오를 air 어플리케이션에서 볼수 있다.

참고 사이트 :  http://www.adobe.com/cfusion/showcase/index.cfm?event=casestudydetail&casestudyid=383991&loc=en_us&promoid=BTLNO

 링크가 짤린 뮤직 비디오가 좀 많은게 안타깝다.  

 2. ebay desktop
사용된 오픈 API :  eBay openapi
참고 사이트 : http://www.adobe.com/cfusion/showcase/index.cfm?event=casestudydetail&casestudyid=383833&loc=en_us&promoid=BTLNW 

ebay 에서의 쇼핑을 air 로 즐길수 있다. 깔끔한 ui 와 편한안
사용자 처리로 정말 물건을 사고 싶게 만든다.

 

 

 

3. twitter

OpenAPI : https://twitter.com/help/api

Flash / Actionscript Developers 를 위하여 as 로 제작된 라이브러리를 제공하고 있다.트위터라는 블로그 서비스를 하는 사이트에서 사용자들의 편안한 블로그 사용을 위해 만들어 졌다. 사이트에 접속할 필요도 없이 포스팅 하기, 리플 확인하기, 등록된 친구들 확인 등 뭐든 할수 있고,
실시간으로 내가 올린 포스트에 달리는 댓글 들을 확인할수 있다.

 

 

 

4. yahweh desktop ( 2008 매쉬업 경진대회 특별상 ) 사용된 openapi : 다음 블로그 api, 다음 인증 api, 네이버 맵 api, 네이버 동영상, 사진 api 로컬 db 로 만들어 진 성경과 블로그를 결합하여 쉽게 성경에 대한 생각을 공유

할수 있도록 만든 air 어플리케이션이다.  

http://dongkang.ivyro.net/yahweh/yahweh.zip

 

더 이상 매쉬업이 브라우저 많을 위한 전유물이 아니 라는 말입니다. 브라우저의 불편한 점을 거치지 않고, 어플리케이션으로 바로 자신이 원하는 콘텐츠를 즐길 수 있고, 브라우저에 한정된 콘텐츠가 아니라, 가능성을 가진 콘텐츠가 만들어 지는 것입니다.  

다시 한 번 강조 하면 매쉬업이란 검색 API를 가지고 하는 것이다. 라는 생각을 가진 분들이 많은데, 위에서 보여 드렸던 것과 같이, 모든 콘텐츠가 API 가 될 수 있고, 검색 API 는 그중 하나일 뿐입니다.

또한 air 기반의 매쉬업을 만드는 건 그렇게 어려운 일이 아닙니다. 기존에 존재 하고 있는 사이트에 air 포장지는 덮는다고 생각하세요. 그럼 air 가 완성 됩니다. 사용해 보세요. 지금 제공되고 있는 수많은 API를 이용해서 자신만의 매쉬업을 만들어 보세요. 



Posted by Flash 동강