본문 바로가기

Dev Workbooks/Dev for Fun

[Android] 안드로이드 개발시 피해야 할(사용하지 말아야 할) 테크닉

이전 포스트 "[Android 1.5] Early Look SDK 1.5" 에서 소개한 바,
많은 새로운 기능과 버그 수정이 1.5 버전에서 반영되었다.
혹자는 말하길, 1.5 버전에 이르러서야 다른 스마트폰이 제공하는 대부분의 기능을 지원하기에 이르렀다면서
1.5 버전이야말로 진정한 안드로이드의 첫 번째 버전이라고 말하기도 한다.

1.5 버전이 공개되고,
안드로이드를 개발하는 혹은 개발하고자 하는 개발자들은 이제 서서히 이 SDK에 주목해야 하겠는데...
특히 이전 버전의 SDK(1.0 혹은 1.1)로 이미 개발을 한 상태라면 1.5에서도 무리없이 돌아가는지 확인해야 하겠다.

안드로이드 개발자 블로그에
"Future-Proofing Your Apps"라는 포스트가 올라왔다.
이 글의 요지는
  • 안드로이드 마켓에 올라와 있는 인기 있는 어플리케이션을 테스트했고
  • 그들 중 몇몇 어플리케이션이 일부 좋지 않은 테크닉을 활용함을 확인했고
  • 그로 인해 (안드로이드 1.5 버전에서) 깨지거나 정상 작동하지 않는다
라는 얘기다.

이러한 상황을 피하기 위해 5가지, 피해야 할 테크닉을 소개하고 있다.
자세한 내용은 해당 포스트를 참조하면 된다.
(번역 능력이 없어 내용이 잘 전달되지 않을지 모르겠다.
원본 포스트에는 자세한 내용과 사례가 잘 담겨 있으므로 여기서는 간략히 내용만 확인하는 것이 좋을 것이다.
각 상황에 맞는 몇 가지 조언들도 첨부되어 있으니 좋은 가이드가 될 것이다.)

피해야 할 테크닉, #1: 내부 API를 사용하는 것
: 원인 : 지원하지 않는 API나 내부 API를 사용한다.
: 사례 : 많은 개발자들이 내부 밝기 조절 API나 블루투스 전환 API를 사용한다. 1.0과 1.1에서는 퍼미션 요청 없이 이들 API를 사용할 수 있었는데, 이는 버그이다.
: 결과 : 이러한 API를 사용한 어플리케이션들은 1.5에서 깨질것이다.

피해야 할 테크닉, #2: 설정을 직접 조작하는 것
: 사례 : 많은 어플리케이션들이 사용자에게 고지하지 않고 시스템의 설정을 변경한다. 예를 들어 일부 어플리케이션은 사용자에게 묻지 않고 GPS를 켠다거나 데이터 로밍 기능을 켤 수도 있다.
: 결과 : 어플리케이션은 더이상 특정 시스템 설정을 직접 변경하지 못하게 될 것이다. 이러한 테크닉을 사용한 어플리케이션은 깨지지는 않겠지만 아무 동작을 하지 않게 될 것이다.

피해야 할 테크닉, #3: 레이아웃에 너무 많은 것을 담는 것
: 사례 : 이유 없이 너무 깊거나 너무 광범위하게 레이아웃을 구성하는 것은 문제를 일으킬 수 있다. 
: 결과 : 만약에 어플리케이션이 너무 복잡한 레이아웃을 갖고 있다면, 좀 더 간소화할 필요가 있다.

피해야 할 테크닉, #4: 잘못된 하드웨어 점유
: 전제 : 안드로이드 1.5는 소프트 키보드를 탑재하고 있고, 물리적 키보드를 갖지 않은 다양한 장치들이 나올 것이다.
: 결과 : 어플리케이션이 물리적 키보드를 가지고 있다는 전제하에서 실행되는 경우, 그 어플리케이션이 소프트 키보드만으로도 유연하게 움직임을 확인해야 할 것이다.
 
피해야 할 테크닉, #5: 부주의한 회전
: 전제 : 안드로이드 1.5 혹은 이후 버전이 실행되는 장치는 사용자가 장치를 위치한 방향에 따라 자동으로 화면을 회전시킬 수 있다.
: 사례 : 이 기능은 종종 방향 전환에 따른 의도하지 않은 결과가 나올 수 있다. 물리적 키보드가 노출되었을 때만 스크린이 회전될 수 있다거나 할 때 종종 일어난다.
: 결과 : 개발자는 어떤 상황에서도 개발한 어플리케이션이 방향 전환을 부드럽게 다룰 수 있음을 확인해야 한다.

이와 같은 다섯 가지 피해야 할 테크닉은 이미 안드로이드로 개발을 했거나, 앞으로 개발을 하게 될 개발자들이 눈여겨 봐 둬야 할 내용인 것 같다.

초창기에 비해 요즘은 "안드로이드 개발자 블로그"를 통해 좋은 정보들이 잘 정리되어 많이 제공되고 있으니
안드로이드 개발에 관심이 있다면 꼭 주기적으로 살펴봐야 할 것 같다.

(내용상 잘못이 있는 부분은 알려주시기 바랍니다.)