저에겐 큰 가르침이였지만... 많은 분들에겐 죄송하다는 말씀을 먼저 해야하지 싶습니다.
검색이 지원되는 새끈한 tv팟 애플리케이션을 적어도 한주 정도는 더 기다려 주셔야 하지 싶습니다. (배포되었습니다!) 자그마한 실수(?)로 한주를 더 기다리시게 만들어서 죄송하다는 말씀밖엔... 나름 여러분들이 사랑해주셔서 드디어 CS까지 받아보는 기쁨(?)을 누리고 있습니다. 이전
포스팅에서 조금 자랑을 했지만 정말 검색 잼있습니다. 제한적이지만 양질의 컨텐츠라서 실망이란게 없는 것이죠. :) 물론 검색결과가 안나오는 경우는 대실망을 해야하지만 말입니다.
머 어찌되었든 죄송하게도 한주 더 기다리셔야만 합니다. (정말 입니다!) 대충 개발자 분들은 감을 잡으셨을텐데 말입니다.
네... 바로 오늘 아침 이런 메일을 받았습니다.
Daum tvPot: Application Submission Feedback
예! 결과는...
Your application, Daum tvPot,
cannot be submitted
to the App Store
예! 보기좋게 거부당했습니다.
그 아래에는 이유가 있었습니다.
Applications must adhere to
the iPhone Human Interface Guidelines
as outlined in iPhone SDK Agreement.
바로 애플이 제시하는 인터페이스 가이드라인을 따르지 않았다는 것입니다. 그럴리가요. 정말 기본 컴포넌트에 충실히 개발했으며 장난질을 칠 수 있는 부분도 하지 않았으며 거기다가 UI팀의 피드백까지 무시해가면서 일반적인 애플리케이션처럼 보일려고 노력에 노력을 했는데 말입니다. (그래서 그런지... 국산같이 안보인다는 비아냥을 들었습니다만 말입니다.)
내용을 읽어보니 정말 처음에 화가 났습니다.
받아들일 수 없는 이유라는 것이... 테이블에서 하나를 선택하였을 때, 계속 선택된 상태로 남아있는 경우는 새로운 정보를 보여주던가 그 선택된 것에 변형이 있을 때가 아닌 경우에는 즉각적으로 반응을 해야만 하여 그 반응 후에는 선택된 상태로 남아있으면 안된다. 는 것이였습니다.
무슨 이야기인지 몰라 한참 고민했는데.... 바로 tv팟 테이블뷰에서 선택하면 바로 동영상이 재생되는 것은 GOOD!이지만... 재생을 마치고 돌아왔을 때, 그 동영상 셀이 선택된 상태로 남아있는데 거기에 아무런 변화가 없으니 그건 위반이라는 것이였습니다.
바로 이 주된 테이블 뷰가 문제였습니다.
다시 말하면... 애플리케이션 작동에는 전혀 문제가 없는데, 이 부분은 가이드에 적힌 것이니 왜 안따랐냐! 이거죠. 발끈발끈! 별 희안한 이유로 거부한다! 라고 열을 냈습니다만... 바로 1,2분 후 창피해졌습니다.
모바일이 다른 플랫폼과 다른 점이라는 것은 정말 한도끝도 없이 많지만 가장 중요한 것 중 하나는 "개별 어플 실행시간이 매우 짧다"는 것입니다. 즉 어플에 학습이라는 것이 들어가게 되면 이미 그 어플은 망한거라는 이야기입니다. 즉 학습이라는 것이 끼어들 여지가 없다는 것입니다.
기능 제공자는...
"이 기능은 너무 훌륭해! 조금 어렵지만... 유저는 결과물에 감동해서 사용할 것이라니깐!"
현실은...
"음 모르겠내. 지울까? 안지워지네"
애플의 아이폰은 그런 의미에서 매우 훌륭합니다.
모든 UI요소가 강제가 되어 있어서 참 디자이너들은 불쌍하지만... 어플의 입장에서는 학습이라는 것이 필요없다는 것입니다. 여기서 테이블을 배웠으면 당연 모든 테이블은 예상하는데로 움직여야 하고 거기에 예외는 없다는 겁니다.
애플은 자사 소프트웨어에 한하지 않고 그것을 서드파티 즉 저같은 개발자에게도 강제하고 있는 것이죠. 그리고 그 강제라는 것이 말만 그렇게 하는 것이 아니라 모든 어플에서 지켜지는지 감시하고 감독하는 것입니다. 예! 데스크탑에서는 그게 오버일수 있습니다. 그렇지만 모바일에서는 분명 큰 미덕입니다. 유저에게 혼동을 주지않고 그리고 디바이스에 신뢰도를 높히는 방법이니까요.
이렇게 작은 위반요소도 잡아서 강제해주는 모습에 적잖게 당황했지만 무척이나 감동했습니다. 이런 것들이 결국 신뢰도 그리고 일관성 궁극적으로는 간결함을 얻을 수 있게 해주니까요.
결국 얻은 평범한 교훈이란...
- 간결함이라는 궁극의 미덕을 얻기 위해서는 일관성이 필요하다.
- 일관성이란 강력한 룰이 있어한다.
- 룰이란 것은 말뿐인 것이 아니라 지켜야만 한다.
- 룰이 지켜지려면 누군가 확인하고 집행해야만 한다.
이번에 확인된 것은 애플은 이 모든 것을 하고 있다는 것입니다.
그럼 다른 플랫폼들은 어떤가요? 무엇이든지 좋다는 마이크로소프트도 이번에 방향을 선회했습니다. 모바일7부터는 선택한 자에 선택한 디바이스만 허용하는 방향으로 말입니다. 이제 안해보던 일을 해볼려고 하는 것이지요. 구글은? 잘 모르겠습니다. 고민이 많겠죠. 하위레벨만 관여하게 되면 구글폰이라는 것이 의미없게 될 것이고 상위레벨까지 관여하게 된다면 구글폰이라는 것은 남겠지만 단말기 제조사는 짜증낼 것이니까요. 머 삼성, LG는 모르겠습니다. 개인적으로 무슨 답을 낼 수 있을까? 궁금하기만 합니다. 룰을 만들어 본 적도 없고, 따르기 보다는 날짜맞추면 땡이고, 일관성은 그러니 찾아볼 수도 없고, 당연 결과물은 덕지덕지 eyecandy의 조합일 뿐이고... 당쵀 학습이란걸 기대할 수도 없고...(아 물론 학습해야만 하는 것들의 양은 상상을 초월할 정도로 많습니다!)
하여간 이 일이 하필... 해외에서 관련 손님이 오셨을 때 이런 일이 터졌고, 또 밤에 그분이랑, 찬진님이랑, 엄사장님이랑 저녁식사를 하기로 한 날에 터져서, 물론 애플 씹을 일이 있어서리 즐거웠습니다만 (제가 아침부터 11번 이상 투덜거렸다고 하시더군요.).... 정말 부끄러워서 그랬답니다. 이해해 주실꺼죠?
오늘 정말 보람찬 하루였습니다! 제 기분이 조금이라도 전해졌으면 좋겠내요.
수정) 어제 회사에서 급하게 해당사항을 수정하여 올리고 하루도 지나지 않아서 바로 accept되었습니다. 나름 애플답지 않은 빠른 처리에 역시나 적잖게 놀라고 있습니다. 함박눈에 즐거운 소식까지!!! 즐거운 하루가 되지 싶습니다. :)
아! 여기서 떡밥을 하나 뿌려야 겠군요.
iPhone Developer's Cookbook 한국어판의 부록으로 tv팟 어플을 만들면서 느꼈던 것들을 정리해서 넣기로 했습니다. 거기에는 조금 더 길고, 조금 더 정리된 버젼으로 만나뵙겠습니다. :) 아! 참... 그리고 추천글은 이찬진님이 써주시기로 했답니다. (이제 도망 못가십니다. ㅋㅋ)
ps) 역자는 책이 많이 팔린다고 돈 버는게 아니니... 이 정도 떡밥은 그냥 귀엽게 뵈주셔요. ㅋㅋㅋ