반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형
Posted on . Written by


Improved Android audio


우리 엔지니어들한테 물어보면 디바이스의 오디오 관련해서 아무런 문제 없이 다루는 것이 어렵다고 말합니다. 애플조차도 그렇게 하지는 못합니다. 다만 다른 것들 보다 문제가 덜 생기도록 만들죠.

daily build 942에서부터 우리의 오디오 backend로 Android 2.3+ 디바이스에 있는 OpenSL-ES 를 사용하기 시작했습니다. 이 back-end 는 뭐하는 걸까요?







처음 듣는 분들을 위해 말씀 드리자면 오디오가 작동되지 않는 디바이스(e.g. the Vizio, one of the Samsung SII models, etc)의 고질적인 문제 점들을 수정했다는 얘기입니다. 또한 아주 미묘한 performance 개선 사항들이 있습니다. 예를 들어 동시에 여러 sound를 play 할 경우 hisses and pops 같은 것들이 찌그러지는 경우가 있는데 이런 부분들이 살짝 개선됐습니다.


만약 안드로이드의 ‘EggBreaker’ sample 을 play 하면 객체가 튕기는 시점에 튕기는 소리가 나지 않는 것을 느끼실 수 있을 겁니다. 이것은 longstanding latency 문제 때문인데요. 안드로이드 초창기부터 있어 왔던 겁니다. 즉 안드로이드 OS와 관련한 이슈중 하나죠. 최근 이 부분이 아주 살짝 개선되기는 했습니다. 이번 개선사항 중 가장 중요한 것은 안드로이드의 Core OS change 로 부터 온 것 입니다. Android 4.1 인 JellyBean 부터 적용됐습니다.



New Widgets!


저희들은 widget framework 을 좀 더 개선하고 cleaning up 하기 위해 많은 노력을 기울였습니다. initial framework을 생성했을 때 오리지널 코드를 상하기 쉽도록 하는 많은 것들(brittle, fragile, and just unmaintainable)을 접합니다.

widget framework 에 대해 개선하고 싶은 부분들이 아주 많이 있지만 간단하지 않은 부분들 또한 많이 있습니다. 저희들이 하기로 한 부분은 각 widget들의 어떻게 해야 제대로 작동하는 것인지에 대해 rethink 해 보기로 했습니다.





기존 widget에 rewrite 하는 부분은 위험도가 있습니다. 저희들은 새로운 widget을 먼저 만들고 이 부분이 확실하게 동작하면 이 새로운 widget들을 이전의 widget들과 바꿀 겁니다.


Daily build 942 에는 새로운 몇개의 widget들이 선보입니다.


  • On/Off Switch. 3가지 형태로 나옵니다.: an actual on/off switch, a checkbox, and a single radio button.
  • Spinner. The canonical use-case is lots of photos being download asynchronously. Note if you make a blocking API call (e.g. a luasocket call), this will not animate. For that case, you should use native.setActivityIndicator().
  • Stepper. You tap ‘+’ or ‘-’ and the values go up and down within a predefined range.
  • Progress view. A bar that goes from 0% to 100% filled.


좀 더 많은 정보들은 API docs 의 daily build 942 snapshot 부분에서 보실 수 있게 될 겁니다. 또한 이번 빌드에서 업데이트된 WidgetDemo sample app 을 제공해 드릴 겁니다. 


다음에 저희들이 작업할 widget들은 segmented controls 와 search fields 입니다.


A Teaser


Finally, I’m going to talk about something that I’m not really going to talk about — yet. What I mean is, this topic deserves a post of its own, so we’re saving that for next week. What am I talking about?

마지막으로 지금 얘기할 것은 이번 글에서 다루지는 않을 겁니다. 무슨 얘기냐 하면 이 이슈는 따로 글로 작성해서 보여드릴 거라는 겁니다. 다음주에 이와 관련해서 말씀 드리겠습니다. 


단지 daily build 942 에서 이와 관련된 기능을 살짝 맛 보실 수 있습니다.


Android: Added local/scheduled notification support.


이와 관련해서 아주 많은 부분들의 작업이 있었습니다. 코로나 같은 cross-platform development framework을 사용하는 잇점을 제대로 느끼실 수 있을 겁니다.



notification은 platform 마다 완전히 다릅니다. 코로나는 이 완전히 다른 사용법을 한가지 방법만 취하면 구현 가능하도록 간단하게 여러분께 길을 제공해 드릴 겁니다.


저희들은 여러분들이 해야할 일들을 줄이기 위해서 여러 복잡하고 어려운 부분을 줄이는 여러 큰 일들을 꾸준히 진행하고 있습니다.


감사합니다.






반응형