개발환경
안드로이드는 자바, 아이폰은 오브젝티브-C 또는 C언어, 당연히 개발은 안드로이드가 쉽다. 자바가 쉽다는 것이 아니라 VM환경의 개발과 C언어로의 개발이 뭐가 다른지는 두가지다 심각하게 해본 사람은 알 수 있다.
애플의 앱스토어는 프로그램을 등록하려고 하면 심사를 받아야 한다. 1주일정도 소요된다. 단순패치는 빨리 해준다는 얘기도 있지만 보장은 없다. 애플의 정책과 맞지 않으면 등록되지 않는다. 안드로이드는 심사가 없다. 무조건 등록된다.(그러므로 프로그램은 즉각적으로 등록되면 하루메 몇번이라도 프로그램 업데이트를 할 수 있다.) 사후에 문제가 발생하면 대처한다. 사용자 신고 또는 저작권자의 신고 등등으로 움직인다. 이부분도 개발자가 편한 부분이다.
아이폰 개발은 맥에서만 가능하다. 안드로이드 개발은 거의 아무데서나 된다.(자바라서 그렇다.)
아이폰은 해상도가 하나다.(지금은 아이폰4가 나왔으니 두가지다) 아이폰3에 맞춰서 만들면 아이폰4도 잘된다. 아이폰4의 해상도가 4배가된 이유다. 해상도가 하나니까 프로그램 디자인이 쉽다. 안드로이드는 결정된 크기가 없다. 데스크탑 프로그램 만들듯이 해야 한다. 폰마다 맞춘다는 것은 불가능하고 아무 해상도라도 잘 되는 프로그램을 만들어야 한다. 다만 최소 해상도 정도는 생각하고 만들어야 하겠다.
해킹
스마트폰은 범용컴퓨터이다. 하드웨어나 OS나 모두 데스크탑에 근접하는 성능을 가졌다. 그렇지만 전화기이기 때문에 데스크탑처럼 자유롭게 쓰지 못하게 한다. 그러다 보니 해킹을 한다. 아이폰은 jailbreak라고 하고 안드로이드는 rooting이라고 한다. 아이폰은 적극적으로 해킹을 막는다. 안드로이드는 해킹을 허용한다. 다만 해킹을 하면 폰에 표시가 되고 워런티 문제가 발생한다. 아이폰은 3GS 새 부트롬에서 부터 jailbreak를 하면 폰을 완전히 리부트 할 경우 다시 jailbreak하지 않는한 복구모드에서 정지한다. 즉 폰을 사용할 수 없다. 안드로이드는 부트로더를 언락할수 있는 기능이 들어있다. 부트로더가 언락되면 아무 롬이나 설치할 수 있다. 다만 부팅시 열쇠가 열림 모양의 그림을 표시함으로써 폰이 언락되었음을 표시한다. 사용하는데 아무지장 없으나 워런티가 없어져서 A/S를 받거나 폰을 팔때 문제가 발생한다. 최근에 부트로더를 언락하지 않고 rooting을 하는 방법이 공개되었다. 안드로이드 부트체계는 부트로더, 리커버리롬, 메인롬 세개로 구성되는데 어떤 수단으로 부트로더를 언락하지 않고 리커버리롬(OS를 업데이트 하는 놈이다)을 한번만 바꿔 놓으면 계속 루팅된 상태로 업그레이드가 가능하다.(영원히 될지는 모른다.)
해킹을 하는데는 여러가지 이유가 있겠으나 폰의 기능에 자신이 필요로하는 기능이 없을때 고려하게 된다. 문제는 해킹을 하면 편해지는 것도 있지만 불편한 것도 많다. 가장 불편한 것은 자동으로 OS를 업데이트 할 수 없고 매번 수동으로 해야 한다는 것이다. 특별한 이유가 없다면 일반사용자에게 해킹은 독이다.
역사/미래
1977년 스티브워즈니악, 스티브잡스등은 Apple II라는 최초의 개인용컴퓨터를 만들었다. 거대한 사무실 또는 공장안에 있던 컴퓨터를 개인 책상위로 옮겨 놓았다. 멈청난 인기를 끌었으며 현재의 개인용 컴퓨터 시대를 여는 단초를 제공했다.(얘 때문에 내가 이 업계에 있게 되었다.) 그런데 우리가 사용하는 이른바 PC는 애플에서 온것이 아니다. IBM PC에서 왔다. IBM PC는 1981년에 선보였고 오픈 플랫폼으로 누구나 PC를 만들 수 있도록 했다. 많은 회사에서 PC를 생산했고 지금 보듯이 거의 대부분의 개인용 컴퓨터는 우리가 그냥 PC라고 부르는 IBM PC를 모태로 하는 개인용 컴퓨터이다. 물론 현재의 매킨토시 컴퓨터가 바로 Apple II가 변신의 변신을 거듭하면서 만들어 졌다.
2007년 스티브잡스는 새로운 역사를 쓴다. 이번에는 책상위의 컴퓨터를 주머니로 옮겼다. 거의 동시에 안드로이드 플랫폼도 선보였다. 애플의 iOS는 철저히 자신의 기계에만 탑재해서 팔고 안드로이드는 소스를 오픈하고 누구나 쓸수 있게 했다.(Apple II와 IBM PC가 생각나는 대목이다) 지금은 아이폰이 혁신을 일으킨 주체로 Apple II가 그랬듯이 시장을 열고 있지만 시간이 지나면 평범한 사람들의 주머니에는 싸구려(?) 안드로이드 폰이 차지할 것으로 예상된다.(PC가 그랬듯이) 많은 생산자가 만드는 제품은 혁신을 일으키고 경쟁을 통해서 가격이 싸지지만 애플을 원한다면 애플 뿐이다. 매킨토시는 매킨토시고 어떤 것도 그것을 대치할 수 없다. 사든지 말든지다. PC는 싸구려 제품을 사고자 한다면 싼것들도 많고 비싼것도 많다 이회사가 맘에 안들면 저회사도 있고 또다른 회사도 있다. 선택은 소비자가 한다. 애플의 제품은 애플이 선택한다. 소비자는 단지 사던지 말든지 둘중에 하나들 선택할 수 있다.
질문들
문. 스마트폰이 난리인데 어느쪽으로 프로그램을 개발해야 될까요?
답. 심각하게 스마트폰 시장을 본다면 당분간은 양쪽 다 해야 할 것이다.
문. 한쪽만 선택해야 한다면?
답. C의 달인이 아니라면 새로 프로그램을 배워 볼 모양이면 안드로이드다. 당장에 게임을 만들어서 돈을 만져봐야 겠다면 아이폰이다.(C에 달인이어야 하겠다.)
문. 프로그래머 아니고 그냥 사용자인데 어느것을 사야?
답. 해킹을 않는다고 가정했을 때(위에서 이야기 했듯이 일반인은 해킹을 하지 않는것이 좋다. 좀더 강하게 이야기 하면 절대 하면 안된다.) 전화통화목록을 수정해야 하거나, SMS 스팸을 차단해야 하거나, 어디서 공짜로 프로그램을 얻어서 깔고 싶거나 전화기를 USB스토리지로 쓰고 싶거나(아무 파일이나 넣어다녀야 한다는 이야기) 한다면 아이폰은 아니다.(즉, 안드로이드다) 당장 재미있는 프로그램을 많이 받아서 써보는것이 목적이면 아이폰이다.
문: 스마트폰을 써야 하나?
답: 밖에 나가서 이메일을 보거나, 웹을 보지 못하면 불편하다고 생각한다면 필요하다. 그렇지 않다면 필요없다.
문: 스마트폰으로 웹이나 이메일만 하는건 아니고 게임도 하고 다른 응용프로그램도 많이 있던데?
답: 게임기를 사거나(위도 있고 PSP도 있다.) 아이팟터치를 사거나 오드로이드(안드로이드 게임기)를 사거나 선택의 여지는 많다. 게임을 할때는 게임기가 좋다. 폰은 불편하다.
잡담
안드로이드를 비판하는 사람들이 많이 이야기 하는것이 마켓이다. 애플을 비판하는 사람들이 가장 많이 이야기하는것은 앱스토어다. 앱스토어는 위에서 잠깐 이야기 했듯이 독재시장이다. 누군가 선택하고 심사하고 정제한다. 뭔가 잘 정돈되어 있다. 마켓은 그냥 인터넷이다. 아무나 등록하고 관리하는 사람이 없으니 그냥 인터넷 같다. 쓰레기도 많도 저작권 위반도 밥먹듯하고 음란물 조차도 마구 돌아 다닌다. 어느것이 좋다 나쁘다는 의미가 없다. 관리가 잘되는 체제도 좋은 점이 있고 난장판도 좋은 점이 있다.
내 생각? 인터넷이 세상을 바꿨다. 싫거나 좋거나 인터넷없으면 못살게 되었다. 인터넷에 음란물이 넘쳐 난다고 해서, 저작권을 위반하는 게시물이 널렸다고 해서 인터넷에 글을 등록할때 누가 심사해야 한다고 생각하지 않는다. 좁게는 내가 프로그래머라 치고 어떤 놈이 내 프로그램 심사하는 하는 꼴은 보고 싶지 않다. 내 프로그램 사용자가 무슨 욕을 해도 내가 먹는다. 누가 중간에서 관리해 줄 필요가 있다고 생각치 않는다. 그래도 세상에는 그시절이 좋았다면서 독재를 그리워 하는 사람도 있다.