본문 바로가기

iPhone / iPod / iPad

개발자 입장에서 본 아이폰 프로그래밍의 매력

제목을 써 놓고 보니 무언가 찜찜하네요.
어플리케이션은 사용자를 위한 것인데 개발자의 입장에서 아무리 매력이 있어도 사용자로 부터 외면을 받으면 아무 소용도 없는데 말이죠. 그러나 아직은 아이폰이 스마트폰 시장에서 외면당하고 있지 않다는 점과 아이폰이 지원해주는 여러 리소스를 활용하여 아이폰 사용자에게 유용한 어플리케이션을 제공한다면 이 또한 아이폰 사용자에게는 반가운 일일 것입니다. 물론 타 플랫폼 제품 사용자에겐 상관없는 이야기겠지만요. 아무튼 마음에 들지 않는 제목 이야기는 이쯤  하고 아이폰이 개발자에게 주는 여러가지 매력에 대해 이야기해 보겠습니다.

1. 애플의 폐쇄성이 개발자를 매우 편하게 합니다.

흔히 "폐쇄성"이라는 단어는 부정적인 의미를 내포하고 있습니다. 그러나 애플의 폐쇄성은 꼭 부정적인 의미만은 아닌 것 같습니다. 관련 내용은 "기분 좋은 연구소"에서 "애플의 폐쇄성과 구글의 개방성"(http://goodlab.blogspot.com/2010/01/blog-post.html) 이라는 내용으로 설명을 잘 해주셨으니 여기서는 언급하지 않겠습니다.
그렇다면 애플의 폐쇄성이 왜 우리 개발자를 편하게 하는 것일까요? 이유는 간단합니다.
애플에서 개발한 모든 시스템과 플랫폼, 어플리케이션은 애플이 만든 제품에서만 작동되도록 설계되고 구현되어 있습니다.
Mac OS는 애플의 맥 컴퓨터에만 작동되도록 하고 다른 컴퓨터에서 설치되는 것을 허락하지도 지원하지도 않습니다.
아이폰 OS 또한 오로지 아이폰에서만 작동되며 다른 단말기에서 작동되지 않습니다.
즉, 개발자는 자신이 개발한 어플리케이션을 아이폰에서만 테스트를 하면 된다는 것입니다.
그게 뭐 그리 개발자를 편하게 하는가 하시는 분도 있으시겠지만, 필자는 과거에 윈도우 모바일 어플리케이션을 수 차례 개발한 경험이 있습니다. 윈도우 모바일을 탑재한 스마트폰은 샐 수 없이 많습니다. 각 단말기마다 몇 가지  형태로 나누어져 있긴 하지만 해상도도 각기 다르며, 단말기의 특성, 이통사와 제조사의 정책에 의한 미세한 차이도 있습니다. 개발자 여러분들은 잘 아실 것입니다. 같은 OS 버전임에도 불구하고 단말기마다의 미세한 차이가 얼마나 개발자를 괴롭히는지...  개발완료 이후 테스트 단계에서 각 유명 단말기의 호환성 테스트는 정말이지 만만치 않은 시간과 인력이 투입되지요.
이런 면에서 볼 때 완전히 같은  해상도와 완전히 동일한 스팩을 가진 아이폰의 폐쇄적인 정책은 다른 단말기에 대해 호환성 테스트를 진행하는 시간에 보다 유용한 기능을 어플리케이션에 적용하는 연구를 해 볼 수 있는 더 많은 시간을 우리 개발자에게 제공합니다.


2. 개발자는 좋은 아이디어로 개발만 하십시오. 판매와 유통은 앱스토어에서 다 합니다.

실력이 뛰어난 엔지니어들이 획기적이고 뛰어난 제품을 개발하고도 마케팅과 영업, 유통에 막혀서 좋은 제품이 꽃을 피우지 못하고 그대로 사장되거나 다른 업체에 인수되어 최초 기획의도와는 달리 전혀 엉뚱한 방향으로 전개되는 현상을 수 없이 보았습니다. 이러한 문제 때문에 많은 개발자들이 자신의 아이디어를 구현한 뛰어난 어플리케이션으로 독립하기를 두려워하고 있는 것도 사실입니다. (필자를 포함하여)
이러한 개발자의 고충을 알았는지 몰랐는지는 모르겠지만 애플은 앱스토어라는 것을 만들어 놓았습니다.
개발자는 자신의 아이디어를 어플리케이션으로 구현하여 앱스토어에 올려 넣으면 전세계의 아이폰 이용자들이 앱스토어어에 들어와서 개발자가 올려놓은 어플리케이션을 구매하는, 어찌보면 아주 단순한 시스템입니다.
이 단순한 시스템이 개발자가 해야할 엄청난 양의 일을 대신해 주고 있습니다.
모든 어플리케이션의 노출이 앱스토어에서 이루어 지므로 관련 경쟁 유사 제품의 동향 파악이 용이하고,
아이폰 사용자와 접할 수 있는 유일무이한 공간이므로 따로 마켓플레이스를 찾을 필요가 없으며,
배포와 설치 그리고 업그레이드까지 정해진 시스템 안에서 한 번의 터치로 이루어지니 배포 설치 문제의 고민이 없어집니다.
무엇보다도 아이폰에서 언제 어디서나 쉽게 앱스토어에 접속할 수 있도록 해둬서 어플리케이션을 등록하는 자체로 바로 광고효과를 볼 수 있다는 것입니다.
물론 지금가지의 이야기는  ISV에게나 적합한 내용이지 SI 분야에는 적용되지 않습니다.


3. 사용자 인터페이스를 위한 기본 SDK 제공

물론 윈도우모바일을 포함한 다른 OS에서도 SDK를 제공합니다.
그러나 단말기의 장점을 극대화 시킨 것은 아이폰 SDK 밖에 없습니다. 물론 이것은 앞에서 말한 폐쇄성과 개방성의 문제와도 결부되긴 하지만요.
구체적으로 한두가지만 예를 들어 보겠습니다. 아이폰의 장점 중 하나가 터치감입니다. 특히 뷰에서  손가락 하나로 뷰의 아무곳이나 갖다대고 올렸다 내렸다  하면 스크롤이 됩니다. 확대와 축소는 더 환상적이죠.
반면 윈도우 모바일에서는 뷰의 좌측에 스크롤바를 생성하고 그걸로 이동을 해야 합니다. 손가락으로 하다보면 짜증납니다.
만일 윈도우모바일에서 아이폰에서와 같은 스크롤을 구현하려면 각 뷰에대해 일일히 구현을 해야 합니다.
아이폰에서는 SDK에서 기본적으로 모두 제공합니다. 스크롤, 애니메이션 등...
그외에도 GPS, 기울기 센서, 와이파이, 블루투스, 웹 등등...
하나의 SDK로 하나의 단말기에서의 인퍼에스 구현으로 자신의 아이디어 어플리케이션을 극대화 시키면 그 기능의 한계는 정말 무궁무진 합니다.


4. 글을 마치면서.

사실 필자가 아이폰에 끌리는 가장 큰 이유는 위의 두 번째 항목입니다.
개발자는 개발에 충실하게 해주어서 좋은 것 같습니다.

안드로이드폰 경우 윈도우 모바일 처럼 아니 윈도우 모바일 보다 더 개방적으로 오픈소스를 지향하고 있습니다.
그렇게 되면 단말기 마다 OS의 수정이 이루어 질 경우 그 호환성 테스트는....  아 생각만 해도 끔찍합니다.
개발자 입장에서 분명 반가운 일이 아닙니다.
차라리 특정 단말기에 한정지어서 어플을 배포하는게 나을 것 같습니다.