2010년 10월 8일 금요일

Intel, iOS용 ARM → x86포팅 도구를 준비하다.

 MacWorld의 기사에 따르면Intel이 iOS1 응용프로그램을 다른 모바일 운영체제 - 특히, 이 반도체 거인이 밀고 있는 MeeGo2 - 로 쉽게 변환 해 만들수 있는 개발 도구를 만들었다고 지난 수요일에 발표했습니다.

 iPhone이나 iPad의 운영체제인 iOS는 ARM의 칩에서 동작하는 운영체제로, Intel칩과는 호환되지 않으며, 실제로 많은 모바일 제품들에서 ARM계열 CPU이 사용되어지고 있어 Intel 칩이 비집고 들어갈 틈은 그다지 많지 않은 것이 사실입니다.


 다시 말해, Intel이 모바일을 공략하기 위해 Atom을 내놓았지만, 이미 모바일 시장을 장악하고 풍부한 앱과 기기들을 가지고 있는 상대하기 힘듭니다. 현재 iPhone이 인기를 끌고 있는데는 뛰어난 디자인의 H/W도 한몫하겠지만, Android등 경쟁OS보다 월등히 많은 앱의 수도 큰 이유일겁니다. 실제로 iPhone과 Galaxy S등을 비교하면 H/W적 사양은 엇비슷합니다만, 앱의 숫자를 비교하면 압도적으로 Apple의 iPhone이 유리한 것이 사실이죠.


 몇년전에 처음 등장해 나름 앱의 보유수를 늘린 Android와 달리 MeeGo는 올해 2월 MWC에서 처음 발표되어, 5월에 첫번째 버전이 등장해 기반이 여러모로 부족한 것이 현실이죠. 이는 MeeGo와 Atom이라는 두축을 통해 모바일 시장에 뿌리를 내리고자 하는 Intel의 계획에서 보면 큰 문제일겁니다.



 이번 포팅 도구는 기존 iPhone등에서 앱을 개발해온 사용자들을 MeeGo로 끌어들이기 위한 제법 솔깃한 유혹일 겁니다. 해당 OS 및 플랫폼에 맞게 새로 코드를 짤 필요없이 포팅 도구를 통해 손쉽게 변환이 가능하고, x86기반의 풍부하고 편리한 다양한 개발 환경을 이용이 가능하다는 것도 큰 매력이니까요.


사실 사용자들이나 개발자 입장에선 ARM에서 동작하는 iOS앱을 x86용으로 변환해주는 도구보다 비 Mac기반에서 iOS용 앱을 개발할수 있는 환경을 더 기대할 겁니다. Apple의 폐쇄적인 정책으로 인해 iOS용 앱을 개발하려면, Macintosh를 구입하거나 기존 PC에 해킹한 Mac OS X을 올린 일명 Hackintosh를 사용해 Apple이 제공하는 개발도구를 사용해야 합니다. 이는 Objective-C로 구현된 SDK외 다른 개발환경이나 다른 언어에서의 개발은 사실상 불가능한 것이 현실이죠.3


 최근 Apple이 다른 개발환경에서도 iOS용 앱을 개발할 수 있게 하겠다는 뉘앙스의 말을 흘리고 다녀 한때 개발자를 흥분시키기도 했습니다만, Apple측에서의 공식적인 발표나 행동은 없으며 개발도구 업체측 역시 Apple의 눈치를 볼 뿐 여전히 iOS용 개발도구를 찾아보기 힘든 것이 현실이죠.

 개발자에게 수익을 배분하는 생태계를 제공하는 정책으로 Apple은 iPhone등 다양한 제품에서 성공을 보여왔습니다. 그 뒤를 Android를 비롯한 경쟁자들이 개발의 편리성 및 자유도를 무기로 그 뒤를 추격하고 있는 현실입니다.

 일부 사람들은 과거 Apple이 개방적인 IBM PC와의의 경쟁에서 패배했듯이 또다시 폐쇄적인 정책으로 인해 경쟁자들과의 경쟁에서 패배할지도 모른다는 우려를 보이기도 했죠. 지금 현재 Apple의 App-Store시장이 가장 커 개발자들이 iOS용 앱을 제작하고 있지만, 경쟁자들의 App-Store의 규모가 Apple과 비슷해지면 개발이 용이하고, 제한이 적은 쪽으로 옮겨가게 될지도 모릅니다.

 Google은 최근 운영체제를 가리지 않고 웹상에서 앱을 쉽게 개발할 수 있는 App Inventer4같은 누구나 앱을 개발할 수 있는 환경을 만들려는 노력을 하는 등 조금이라도 앱 개발의 접근성을 높이는 경향임을 감안할때 Apple의 보여주는 현재의 폐쇄적인 정책은 마땅히 고쳐져야 할 것이다.

[1] Apple의 모바일용 OS. iPhone과 iPod Touch, iPad등에서 사용중이다. Mac OS X에서 파생된 유사 Unix 운영체제이다.
[2] Intel과 Nokia가 공동개발한 모바일 OS. 별도로 진행되던 Intel의 Moblin과 Nokia의 Maemo를 합친 것으로 Linux기반이다.
[3] 그런 이유로 일부 개발자들은 컨버터를 사용하는 편법을 사용하기도 한다. 즉, 다른 환경에서 만들거나 Flash된 프로그램을 컨버터를 통해 iOS용 코드로 변환하는 것이다. 그러나, 컨버터의 종류가 그다지 많지 않아 이 역시 사용에 제한적이다.
[4] 프로그래밍 언어를 공부하지 않은 일반인들도 쉽게 Android용 앱을 개발할 수 있게 만든다는 개념의 도구이지만, 실제 사용해 본 경험으론 완전 생초보자들이 앱을 만들 수준은 아니라고 본다.
 물론, 프로그래밍 언어의 문법를 공부할 필요없이 해당 블럭을 조립하는 것 만으로 코딩 문제가 해결된다는 것은 직관적이고 쉽긴 하다.