2012/09/17 Google Android 개발자 간담회 후기 by 오리대마왕

어쩌다 하루에 두 번의 세미나에 참석하게 되었네. 오후 1시부터 9시까지의 강행군. 게다가 절반이 영어 세션이라 집에 오니 매우매우 피곤하더라.

이번 Google Android 개발자 간담회는 구글의 안드로이드 엔지니어들이 직접 진행하는 세미나였다. 구글+의 안드로이드 관련 소식들에서나 보던 엔지니어분들이 직접 진행을 했다. 와우~굳!

각 세션은 30분씩 진행되었고, 다음 세션이 진행되었다.

- Definitive Android Design
- What's new in Android
- In App Billing
- How to get featured on Google Play

난 가벼운 맘으로 갔는데 순선님이 네번째 세션을 잘 기록해보라는 미션을 주셔서 네번째 세션을 열과 성을 다해 들었는데, 발표자분이 속사포 래퍼셔서 굉장히 힘들었다. 제대로 알아들었나 몰라. :-D

- Definitive Android Design

안드로이드 디자인 가이드를 잘 읽은 사람이라면 대부분 아는 내용을 짚어보는 시간이었다. 나에게 인상깊었던 대목은 low density 디바이스를 위한 resource도 제공해야 한다는 부분이었다. 대게 hdpi 로 맞춰 이미지를 준비해버리면 이보다 낮은 밀도의 디바이스에선 이를 scale down해서 괜찮게 보여주긴 하는데, 이 때 마다 bitmap을 scale down하는 처리 비용이 들고, 낮은 밀도 디바이스는 대게 성능이 떨어지므로 가혹한 처사라는 것이다. 가뜩이나 머리 나쁜 놈한테 골머리 썩히는 이미지 처리를 더 시키는 꼴이니. 

그리고 화면 좌우의 gap은 폰을 손에 쥐었을 때 손가락이 화면의 가장자리에 닿으면서 의도치않은 터치 이벤트가 발생하는 것을 막기 위함이라고 설명했다. 그런데 listview의 경우 대게 화면 전체를 차지하지 않나? 그리고 여기 onItemSelected 이벤트를 먹이면 row 전체가 이벤트를 먹는데. 흠, 질문해 볼 껄. 지금와서 궁금해지네.

그 외엔 액션바, up/back navigation등을 다뤘는데 대부분은 안드로이드 디자인 가이드를 보면  알 수 있는 내용들이었다. 그리고 안드로이드 앱 개발자라면 숙지하고 있어야 할 내용들이기도 하다.

- What's new in Android

이번 세션에선 젤리빈에서 추가된 내용을 주로 다뤘다. rich notification과 project butter 위주로 설명했다. 
rich notification에선 터치 제스처를 인식하는 notification view의 expand, notification view에 부가적인 action button 달기 등을 설명했다. 근데 난 아직 젤리빈 실제 기기 구동되는 걸 못봐서 (에뮬로 돌려보면 되긴 하는데...흠...) 실제 구동되는 걸 보고싶다. 그리고 notificationCompat 을 언급을 했는데, 난 그 전 까지 이 라이브러리는 4.1 기반으로 notification을 구현해도 하위 버전에서 무리없이 동작하는 것만을 보장하는 줄 알았는데, 하위 버전에서도 rich notification의 기능을 제공해 준다고 설명하였다. 윽, 내가 잘못 알고 있었나. 옆에 앉으신 병권님이 jake wharton 대인배의 notification compat2 가 더 낫다고 얘기해 주셨다. 이것도 살펴봐야 할 듯.
project butter는 빠다같이 부드러운 UI를 구현하기 위한 프로젝트이다. vsync와 cpu 처리 동기화, triple buffer, vsync를 이용한 input latency 제어 등을 다뤘다. vsync, triple buffer 얘기는 듣긴 했지만 대충 넘겨버렸는데 설명을 아주 잘 해 주어서 머리에 쏙쏙 들어왔다. 간단히 얘기하면 vsync와 cpu처리 동기화는 vsync 시그널 오자마자 cpu->gpu 처리를 시작해서 프레임 만들어내는 시간이 되도록 밀리지 않게 만드는 기법, triple buffer는 double buffer에 하나의 버퍼를 더 추가해서 프레임 그리다 밀렸을 때에도 크게 어색하지 않고 부드럽게 화면을 그려나갈 수 있게 하는 기법, vsync를 이용한 input latency 제어는 기존엔 input 처리에 시간이 걸리면 input이 계속 되면 latency가 점점 커졌는데 이젠 vsync로 어느 이상 latency가 발생하면 끊어버리는 다는 것으로 이해했다(아, 요건 다시 봐야겠다.) 여튼 이 기법 덕분에 input이 많아져도 1 frame 이상 뒤쳐지지 않으며, 하드웨어의 제약으로 이미 5 frame 정도의 뒤쳐짐이 발생하기 때문에 더 이상 소프트웨어 때문에 생기는 프레임 밀림 현상은 발생하지 않는다고 했다.
triple buffer 에서 인상깊었던 것은 triple buffer라고 해서 매번 3개의 버퍼를 사용하는 게 아니고 일반적인 double buffer로 처리하다 frame 그리는 게 밀리면 이때 3번째 버퍼가 개입을 한다는 것이었다. 하지만 빠다를 쓰던 뭘 하던 하여간 1frame에 해당하는 16ms 이내에 그리기 처리를 끝내야 한다는 조언이 뒤따랐다. 으으...

- In App Billing

내가 네오위즈 인터넷에서 마지막으로 맡았던 작업이 IAP 연동이라서 주의깊게 들은 세션이었다. 이번 세션을 간단히 요약하면 "몇 가지 예외사항이 있긴 하지만, google play에 배포한 앱에서 내부 결제엔 google play IAP만을 써야 하며, 이는 DDA(뭐의 약어인진 잘 모르겠지만 하여간 앱 등록 시 동의하는 약관)에도 나와있다." 라고 할 수 있겠다. 추가로 이런 제약은 구글이 돈벌이에 혈안이 되어서라기 보단 1. 구글 뿐 아니라 통신사가 함께 수익을 share하는 구조라야 안드로이드 생태계가 안정적으로 유지될 수 있으며. 2. 개발자 입장에선 출시 국가마다 payment 사업자와 직접 계약하지 않고도 결제를 구현할 수 있으니 이득이 있으며, 3. 타 국가에선 사용할 수 없는 UI 때문에 발생하는 fragmentation도 막을 수 있는 이점이 있다 (ex. 한국판에선 다날 결제를 띄우는데 미국판에선 빼기 등등) 고 설명하셨다. 음, 여기 전적으로 동의하느냐 여부는 각자의 판단에 맡겨야 할 듯. 난 심정적으론 동의하는데, 3:7 이란 수익 share도 있고, IAP가 쓰기가 어렵고 inventory 관리가 어려운 부분이 개발사가 play의 IAP만을 사용하는 데 걸림돌이 되지 않나 생각한다. 물론 DDA에 나와있으니 따르는 게 맞겠지만.

- how to get featured

드디어 내가 정리를 맡은 세션. 어잇쿠, 근데 진행하시는 분 영어가 속사포라 정리하기 매우 힘들었네. 순선님이 세션 시작에 앞서 개발사 대표들은 가장 관심있어 하던 세션인데 개발자분들이라서 이 세션에 대한 선호가 좀 낮은 게 재밌었다고 이야기하셨는데, 사실 나도 딱히 내색은 안했지만 나도 이 세션이 제일 궁금했어!!! 

뭔가 구체적인 기준이 있기 보단 4가지 주요 고려사항을 이야기해 주었다. 그 전에 앞서 진행자 분들은 review team으로, featured app을 선정하는 작업을 하며, app check 작업을 all day 한다고 언급했다. 하하.

전반적으론 "think about user /think like user" 관점을 고수해야 하며, ui가 좋아야 하고, 좋은 feedback을 담은 comment가 많아야 한다고 했다. 음, 너무 막연한데.

좀 더 구체적으로 4가지 기준을 언급했다.

1. DDA를 준수할 것.(compiant DDA)
특히 우리나라 사람은 약관을 잘 안 읽는데, 약관은 반드시 지켜야 할 듯 하다. 또 연령대 제약사항도 잘 준수해야 하고.

2. 멋들어진 앱 상세 페이지(great looking app detail page)
good icon, big banner. 보이기 좋게 꾸미며, 앱 등록 시 배너 이미지는 optional이긴 하지만 꼭 넣어라.
앱 설명도 잘 만들어라. 적절한 서머리, 상세한 feature 설명. 앱 설명 자체의 structure도 잘 만들어라. 
그리고 앱 설명에 "연관키워드- 카카오톡, 프로야구, 무료통화, 페이스북" 이런 식으로 장난치지 말라고.
비디오는 특히 premium game app에선 매우 중요함.

3. 안드로이드스럽게 만들어라(think "pure android")
특히나 백버튼 처리 제대로 해라 -> game의 경우 back 버튼을 어떻게 처리할지는 google I/O 의 game 세션을 확인해보라는 커멘트가 있었다.

4. 그 밖에 우리가 고려하는 것들(other things we look for)
- 1Mb 넘는 앱은 sd card로 옮길 수 있어야 할 것
- user rating > 4.0 이상이어야 할 것
- offline에서도 사용 가능하면 좋음: 이건 앱 성격에 많이 좌우되는데, 나중에 이 부분을 개인적으로 질문해 보니 게임등에 많이 고려한다는 커멘트가 있었다. gmail 앱의 경우 배터리 빵빵하고 wifi 물렸을 때 동기화해서 데이터를 로컬에 떨구는데 이런 부분 고민해보라고. (근데...이거 잘 하기 너무 어려운데Y_Y)

질의응답 시간엔 아직 국가 별 다른 스크린샷 넣는 기능은 제공하지 않는다고 대답해주었다.

이번 세미나는 안드로이드의 아주 구체적인 이슈들을 다뤄서 좋았고, 70여명이 참석했는데 많다면 많지만 어찌보면 또 오붓하기도 해서 굉장히 편한하게 들을 수 있어 좋았다. 진행자 분들이 영어도 꽤 천천히 말씀해주어 좋았고. 자리를 마련해 주신 권순선님과 구글 여러분, 그리고 강연자 여러분에게 감사의 말씀을 전한다.

@개인적인 욕심으론 featured app에 넣어달라고 막 울면서 조르고 싶었지만 사회적 체면도 있고 해서(-_-;;) 참았다.

덧글

  • 2012/10/14 19:52 # 삭제 비공개

    비공개 덧글입니다.
※ 로그인 사용자만 덧글을 남길 수 있습니다.