어도비는 샌프란시스코에서 개최되는 구글 개발자 컨퍼런스인 I/O 10에서 안드로이드 OS에서의 플래시 플랫폼 지원과 관련된 두 가지 중대한 발표를 할 예정입니다.
한가지는 익히 알려진 것처럼, 안드로이드 차기 OS인 Froyo에서 Flash Player 10.1의 지원 인데요. 그간 여러 Feature Phone에서 지원되던 Flash Lite와는 달리 Desktop에서 지원되는 Native API를 모두 지원하는 스마트폰 플레이어 탑재 소식을 발표할 예정입니다.
어도비는 Flash Player의 저변 확대를 위해, Open Screen Project(http://openscreeproject.org)를 운영하며 수년 전부터 많은 협력사들과 노력해오고 있었는데요. 특히 이번에 Froyo에서 탑재되는 Flash Player 10.1에서는 퍼포먼스 비롯하여, 베터리, ARM DSP 이슈들을 해결하기 위해 많은 공을 들였다고 합니다.
이와는 별도로 어도비에서 재밌는 소식을 발표하였는데요. 바로 Android OS의 AIR Runtime도 함께 발표하였습니다. AIR Runtime에 대해서는 이후에 자세히 설명할 예정인데요.
즉, Flash나 Flex를 이용해서 안드로이드 애플리케이션을 제작할 수 있고, 안드로이드 마켓 플레이스나, T store와 같은 오픈마켓에 자신의 애플리케이션을 판매할 수 있게 되었습니다.
Adobe AIR가 무엇인가요?
Adobe AIR는 2008년 Flex 3 릴리즈와 함께 발표된, 어도비의 새로운 플래시 플레이어 런타임 기술입니다. 이전까지는 코드네임 Apollo로 흔히 알려졌었는데요. AIR는 플래시 플랫폼을 기반으로(Flash, Flex, HTML, Ajax) 애플리케이션을 저작하여 다양한 플랫폼을 지원할 수 있는 런타임 환경 기술입니다.
Adobe AIR는 현재 공식적으로 윈도우 OS, Mac OS, Linux 등을 지원하고 있는데요. AIR의 가장 큰 장점은, 이처럼 웹 애플리케이션을 그대로 데스크탑 애플리케이션으로 이식 할 수 있을 뿐만 아니라, 다양한 OS에도 대응하여 돌아갈 수 잇는 런타임 환경을 지원한다는 점입니다. 또한, 데스크탑 애플리케이션에 걸맡게 네이티브 드래그앤 드롭, 파일 시스템, Local DB(Sqlite)등도 지원하고 있습니다.
현재 Adobe에서 공식적으로 제공하고 있는 런타임의 버전은 1.5.3이며, Mass Storage 지원이나, 멀티 터치를 지원하는 2.0 버전은 어도비 랩스(http://labs.adobe.com)에 베타2까지 공개 되어 있습니다.
이처럼 어도비에서는 플래시 플랫폼의 다양한 저변 확대를 위해 Flash Player, Flash Lite, AIR로 런타임 환경을 세분화 하여 제공하고 있으며, 이들 런타임 환경은 모두 별도의 게런티 없이 전세계 사용자들에게 무료로 제공되고 있습니다.
그리고 이번에 구글 I/O에서는 Android OS용 AIR Runtime가 발표되었습니다. Android OS용 AIR Runtime는 Android OS 2.1 이상 환경을 지원할 예정인데요.
사실 최근 어도비와 애플의 미적지근(?)한 관계 때문에 이번 발표가 급조된 것이 아니냐 라고 말씀하실 수 있으시겠지만, 어도비에서는 2008년 부터 AIR Runtime의 Android 지원 계획을 코드네임 “Zephyr”로 명시하고 있었습니다. 또한 작년에는 Windows Mobile을 지원하는 별도의 런타임 환경인 adobe distributable player을 공개했었는데요. 현재는 Adobe AIR 프로젝트와 통합되어 개발이 진행되고 있습니다.
안드로이드에서 어도비 AIR 애플리케이션이 돌아가는 모습은 위의 동영상으로 보실 수 있습니다. 아울러 안드로이드 AIR 런타임은 현재 내부에서 많은 개발자들과 함께 테스트를 진행하고 있는데요. AIR 기반으로 제작된 안드로이드 애플리케이션들은 링크를 참고하시면 좋을 것 같습니다.
아울러 어도비에서는 안드로이드 OS를 비롯하여, 윈도우 폰7, Palm OS등을 지원하는 AIR Runtime을 개발 하고 있으며, 이들 런타임은 내년 1분기 경에 정식적으로 공개될 예정입니다.
Flash, Flex로 어떻게 안드로이드 앱을 개발 할 수 있나요?
Adobe AIR는 현재 Flash, Flex에서 개발 환경을 모두 지원하고 있는데요. Android 애플리케이션도, 플래시 플랫폼을 저작하던 환경이라면 어디든지 개발 할 수 있습니다. 위의 그림을 보면 쉽게 이해 하실 수 있으실텐데요. AIR 애플리케이션은 플래시 형태로 제작된 swf 파일과 애플리케이션의 실행 정보를 담은 디스크립션 파일을 함께 묶어 패키징을 하게 되면, 단일 설치파일 형태로 제공되게 됩니다.
재밌는 점은 Adobe AIR는 Flash, Flex를 전혀 경험해보지 않은, AJAX 개발자를 위한 개발 환경을 지원하고 있습니다. 즉, 자바스크립트와 HTML로도 AIR 애플리케이션을 개발 할 수 있습니다. 이와 관련된 국내 참고서적은 오창훈님의 오픈 API를 이용한 매쉬업 가이드를 참고해보시면 많은 도움이 되실 것 같습니다. 아울러 AIR for Android에서도 HTML 개발 환경을 마찬가지로 지원하고 있는데요. 즉, 자바스크립트와 HTML 기반으로 안드로이드 애픒리케이션을 저작 할 수 있습니다.
그럼, Flash Pro를 이용해서 간단히 안드로이드 애플리케이션을 저작하는 방법에 대해 살펴보겠습니다.
Flash Pro CS5에서 AIR 프로젝트를 생성 하였습니다. Android용 AIR 애플리케이션은 AIR 2.5 이상부터 지원하므로, SDK 폴더에 AIR 2.5를 덮어씌워야 합니다. 현재는 간단히 리뷰할 용도로 생성한 프로젝트 이므로, 별도의 코딩이나 작업 없이 간단히 “Hello Adobe AIR, Android!” 정도만 Stage에 생성해 넣었습니다.
그리고 애플리케이션 개발이 완료되었다면, 간단히 swf 파일만 export 해준 다음에 Flash Pro를 빠져나옵니다. 현재는 내부 테스트를 진행중인 관계로 별도의 패키징 인터페이스 없이 Console에서 직접 ADT를 실행하여 패키징을 하여야 합니다. 사이닝에 필요한 인증서 파일과, 생성될 APK 파일, 디스크립터 파일, SWF 파일을 입력한 후 엔터를 눌러 패키징을 진행합니다.
패키징 이후 에뮬레이터에 돌아가는 모습입니다. 실제 디바이스에서도 현재 잘 지원되고 있습니다. 만약 디버깅이 필요하시다면 trace()를 적절히 활용하시어, Logcat을 살펴 보시면 됩니다.
아울러, AIR 2.0 이상에서는 GPS, 멀티터치 등 디바이스 제어와 관련된 API들도 제공하고 있는데요. 이들 API를 이용하여, LBS 애플리케이션이나, 증강현실 애플리케이션도 개발 할 수 있습니다.
제약사항은?
현재 안드로이드의 AIR 런타임이 개발중인 단계라 제약사항은 변화 할 수 있습니다.
다만 현재까지의 제약사항은 Android OS 2.1 이상이어야 하고, Eclair MR2이 지원되는 디바이스라면 모두 지원이 가능합니다.
아울러, 얼마 전 까지는 ARM DSP 이슈로 인해 마이크와, 카메라가 지원되지 않는 이슈가 있었는데요. 현재는 이러한 이슈들이 모두 해결되어, 마이크와 카메라를 지원하는 애플리케이션을 모두 사용하실 수 있습니다.
현재까지는 아쉽게도, Push Notification이나, 근접 알림과 같은 API는 지원하고 있지 않은데요. 아직 AIR “Zephyr”가 릴리즈 되기 까지 많은 시일이 남은 만큼, 정식 릴리즈 될 때 쯤이면 정식적으로 지원하지 않을까 생각하고 있습니다.
그리고 마지막으로 개발하시면서 주의하셔야 할 점이 있는데요. 안드로이드 AIR 애플리케이션을 제작 하실 때에는, 데스크탑 AIR 애플리케이션과 달리 런타임의 샌드박스는 철저히 Android Platform에 맞춰서 따른다는 점 입니다. 즉, 파일을 접근할 수 있는 Storage에는 제한이 있으며, 이러한 제한에서 벗어날 경우 샌드박스 에러가 발생하게 됨으로, 유의하셔야 합니다.
지금까지 AIR 런타임의 안드로이드 지원 소식을 알려드렸는데요. 현재 내부에서 테스트가 활발히 진행중이고, 정식으로 릴리즈 될 시기는 내년 1분기로 예정되어 있습니다.
(다만, 현재 애플과의 껄떡지근한 관계로 릴리즈 시기가 다소 앞당겨 질 수도 있을 것 같습니다.)
아울러, 안드로이드 OS를 비롯하여, 윈도우폰, 팜OS등 다양한 Device를 지원하는 AIR 런타임의 소식 또한 속속 발표될 예정이라고 합니다.
구글과 어도비의 긴밀한 협력이 안드로이드 플랫폼에 어떤 영향을 미칠지 사뭇 기대됩니다.



