Kitkat 버전의 관전 포인트

Android 4.4 Kitkat 버전에서 많은 것이 바뀌었는데 대부분이 기술적인 진화였다면 일부 사항은 정책의 변화로 읽을 수 있습니다.

특히, SMS Provider라고 불리우는 부분의 변화는  Launcher 나 Browser같이 기존에 Intent 기반의 동작에 의해서 사용자에게 default application 설정을 물어보는 것이 아니라, SMS라는 특수한 기능에 대해서 default application을 설정하는 최초 사례라는 점에서 눈여겨볼 필요가 있다고 생각합니다.

default_home_screen

기존 Android 버전업과 달리 Kitkat에서 이러한 정책 변화가 왜 시작되었느냐를 따져보았을때, Google Hangout에서 SMS/MMS를 본격적으로 지원하기 위한 목적으로 SMS Provider라는 기능이 추가되었다는 점입니다.

(Credit: Jason Cipriani/CNET, http://goo.gl/nFH7Tb)

Google이 Hangout에서 SMS/MMS를 지원하기 위해서는  제조사별/기기별/통신사별 파편화를 극복해야 합니다. SMS/MMS를 지원하려면 극복해야 하는 파편화의 대표적인 문제점은 아래 2가지입니다.

  • ContentProvider의 URI가 제조사별/단말별로 각기 다른 문제 : URI가 다르면 메시지를 읽어올 수 없기 때문에 각 단말별 파편화된 URI 목록을 경험에 의해서 수집해야 합니다.
  • ContentObserver로 전달하는 URI 파라미터와 동작이 다른 문제 : SMS/MMS database에 추가/변경/삭제가 발생하는 경우 3rd party application이 이를 감지해야 하는 경우가 있는데 단말별로 동작이 다를뿐 아니라 정상적으로 동작하지 않는 단말이 있어서 정상적인 기능을 수행하지 못하는 경우도 있습니다.

이와 같이 3rd party application이 SMS/MMS를 지원하려면 엄청난 고통이 수반되고 그나마도 100% 호환성을 유지하지 못하기 때문입니다.  Google도 Hangout에서 이런 문제에 봉착했고 결국 Android의 규격을 변경하는 방법을 택한 것으로 보입니다.

이는 Google 서비스에 대한 노골적이고 직접적인 지원이고, Google이 Android를 본격적으로 자사에 유리하게 활용하기 시작했다고 의심하기 충분합니다.

  1. Google의 Hangout이 SMS/MMS 기능을 포함하는 시점에 Android 규격이 변경되었다.
  2. Platform과 Hangout application이 동시에 배포되었다.
  3. 여타 다른 배포와 달리 Kitkat SMS Provider는 Sample code가 제공되지 않아서 3rd party가 따라가는데 시간적인 장벽이 존재한다.

특히, 2번은 Microsoft가 Windows 버전 업그레이드시에 새로 포함된 기능이 Office에 바로 적용되던 나쁜 관행이 Android에서 재현되는 것 같아서 상당히 우려스럽습니다. GO SMS나 Handcent같은 SMS application이 아직 Kitkat을 지원하지 못하고 있는 상황에서 Hangout이 Platform의 기능을 선점해서 사용하는 것은 출발점이 다른 불공정한 경쟁이기 때문입니다.

추가적으로, SDK를 이용해서 날짜를 선택하는 Dialog를 띄우면 아래와 같이 날짜 선택 화면이 보여집니다.

Screenshot_2014-01-15-18-13-14

그런데, Kitkat에 기본 탑재된 달력에서 날짜를 선택하는 UI는 아래 보이는 화면처럼 상당히 직관적이고 개선된 Dialog를 사용합니다.

Screenshot_2014-01-15-18-09-39

3rd party application과 Google의 기본 탑재 application이 기본 UI에서부터 공정하지 못한 경쟁을 하고 있다는 것입니다.

이런 상황에서 제조사/통신사들은 경쟁을 위한 차별화만을 추구하면서 파편화를 심화시켜 Android 생태계가 위태로워지고 있습니다. 스타트업을 포함한 3rd party 개발사들이 파편화에 대응하는 비용이 계산이 쉽지는 않겠지만 작지 않은 비용이라고 어렵지 않게 추측할 수 있을 것 같습니다. 가뜩이나 Android 개발의 주도권이 Google에 있다보니 Google과 Android의 경계를 구분하기 어려워지고 있는 이 시점에 Google의 영향력에서 벗어나 자생력을 가지는 방향으로 시장 참여자들의 진지한 고민이 필요하다고 생각합니다. 국내 제조사와 통신사들이 경쟁에만 몰두하지 않고 생태계를 위한 아름다운 합의를 통해서 새로운 규격을 만들거나 기존 파편화 문제를 해결하는 노력을 한다면 Google의 영향력 못지 않은 영향력을 발휘할 수 있는 기반을 갖추고 있다고 보기 때문입니다.

예를들면, 아래와 같이 Launcher 아이콘에 표시되는 badge같은 사례가 될 것 같습니다. 비록 Android 표준은 아니지만 삼성/LG 단말에 이미 구현되어 있는데 해당 기능이 표준화되어 있지 않고 3rd party에게 열려있지 않아서 제조사 탑재 기본 어플과 제조사와 제휴를 맺는 일부 업체만 해당 기능을 사용하고 있기 때문입니다. 유용한 기능이라면 삼성/LG가 규격을 표준화해서 Google의 표준화 여부와 상관 없이 단말에 기능을 탑재해서 출시한다면 결국 표준으로 자리 잡지 않을까요?

facebook icon

2 thoughts on “Kitkat 버전의 관전 포인트”

  1. sms provider는 파편화 문제 이외에도 여러가지 보안문제 때문에 이렇게 변경된 것으로 보입니다.
    제 개인적인 생각으로는 지금까지는 sms/mms 대신 인터넷 메신저(행아웃 등)를 쓰게 유도하려고 sms관련 API를 정리하지 않고 파편화되게 내버려두었는데, 이게 여의치 않자 정리한게 아닌가 싶습니다. 다만 행아웃을 밀어주기 위한 의도가 있다는 부분은 동의합니다.
    저는 이제라도 정리가 된게 다행이라고 봅니다.

    그리고 구글과 상관없이 삼성/LG가 규격을 만들어서 단말에 탑재한다고 정식표준이 될지는 모르겠습니다. 구글이 비슷한 기능을 하는 다른 API를 플랫폼에 넣어서 해당 기능을 박살내려고 하지 않을까요?

    1. Android의 파편화가 하루 이틀 이야기도 아니고 SMS에만 국한된 문제가 아닌데 SMS에 대해서만 규격 변경이라는 대안을 내놓았기 때문에 의심하기에 충분하다고 봤고, 현재도 파편화를 방지하려면 Google에서 CTS를 강화하거나 보완하면 쉽게 해결이 되는 문제입니다.

      표준이라는 것이 특별한 것이 아니고 제조사와 3rd party application들이 많이 사용하면 표준이 되는 것이 아닐까요? 지금까지는 구글에 표준화를 의존했는데 현재 삼성과 엘지의 전세계 점유 물량으로 봤을때 두 회사만 합의해도 3rd party application들이 사용할 것이고 그렇다면 구글이 표준으로 정하는게 의미가 없을 수도 있을 것 같습니다.

      장기적으로는 Google의 서비스에 위협이 될만한 사항들은 구글이 의도적으로 배제하려 노력하겠지만 굳이 대놓고 해당 기능을 박살내려고까지 할 것 같지는 않습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.