본문 바로가기
[Android/안드로이드] IME 보다 먼저 BackKey 를 감지하는 방법. 안녕하세요 돼지왕 왕돼지입니다. Back 키를 통해 IME 를 사라지게 할 때, 이 순간을 감지하는 방법에 대해 알아봅니다. ( Sample Code 도 마지막에 포함되어 있습니다. ) 처음에는 당연히 onDispatchKeyEvent 나 onKeyDown 등의 Callback 으로 Back Key 에 대한 Key Event 가 들어올 줄 알았습니다. 하지만!! IME 녀석이 Event 를 Consume 하고 다음 타자에게 전달하지 않는 바람에, 저런 것들로는 들을 수 없었습니다. 그럼 어떻게 듣느냐? ViewGroup.dispatchKeyEventPreIme( KeyEvent event ) 바로 요 녀석입죠. 말 그대로 IME 전에 미리 Key Event 를 듣는 것입니다. 요 녀석만 활용하면, 이제 .. 2012. 3. 13.
[Design Pattern/Java] Comparable 인터페이스의 구현을 고려하자. 안녕하세요 돼지왕 왕돼지입니다. 오늘은 "Comparable 인터페이스의 구현을 고려하자." 라는 주제로 이야기하고자 합니다. 이 글은 "Effective Java" 를 정리한 내용입니다. - compareTo 메소드는 Object 클래스에 정의되어 있지 않으며, 대신에 Comparable 인터페이스에 유일하게 존재하는 메소드이다. Object 의 equals 메소드와 유사한 특성을 갖는다. 차이점이라면, 두 객체가 동일한지를 비교하는 것과 더불어 순서까지 비교할 수 있으며, 제네릭 타입을 지원한다. Comparable 에 대해 조금만 더 설명해봐. - 자바 라이브러리의 모든 값 클래스들은 Comparable 인터페이스를 구현했데. - 알파벳 순, 숫자 순, 날짜 순과 같은 자연율을 갖는 값 클래스들은 .. 2012. 3. 13.
[Design Pattern/Java] clone 메소드는 신중하게 오버라이드 하자. 안녕하세요 돼지왕 왕돼지입니다. 오늘은 "clone 메소드는 신중하게 오버라이드 하자" 라는 주제로 이야기하고자 합니다. 이 글은 "Effective Java" 를 정리한 내용입니다. - Cloneable 인터페이스는 복제를 허용하는 객체라는 것을 알리는 목적으로 사용하는 믹스인 인터페이스( Mixin interface ) 이다. Cloneable 이놈은 뭐하는 놈이야? - Clonable interface 는 아무런 추상 메소드도 가지고 있지 않다. - Object 클래스의 protected 메소드인 clone을 사용할 것인지의 여부를 결정한다. 어떤 클래스에서 Cloneable 인터페이스 implement 하고, clone 메소드를 호출하면, 그 클래스 객체의 복제본을 만들어 반환한다. 이 때 복제 .. 2012. 3. 12.
[Design Pattern/Java] toString 메소드는 항상 오버라이드 하자.  안녕하세요 돼지왕 왕돼지입니다. 오늘은 "toString 메소드는 항상 오버라이드 하자" 를 주제로 이야기 해보겠습니다. 이 글은 "Effective Java" 를 정리한 내용입니다. - java.lang.Object 클래스는 toString 메소드를 구현하고 있다. 그러나 그 메소드에서 반환하는 문자열은 클래스 사용자가 원하는 형태가 아니다. ( 보통 클래스명@hashCode 형태 ) - toString() 은 println, printf, 문자열 접합 연산자 +, assert, debugger 출력 등에 쓰일 경우 자동 호출된다. toString 도 보편적 계약이 있어? - 응. "간결해야 하고, 사람이 읽기 쉬운 형태의 정보를 표현해야 한다" 라는 계약이 있어. - 추가적으로, "모든 서브 클래.. 2012. 3. 12.
[Android/안드로이드] ICS ( 아이스크림 샌드위치 ) 에서 Menu Button 이 안 나와요. 안녕하세요 돼지왕 왕돼지입니다. Android ICS ( 아이스크림 샌드위치 ) 버전부터는 Menu Button 이 나오지 않습니다. ( 사실은.. HoneyComb ) Galaxy Nexus ( 겔럭시 넥서스 ) Soft Key 의 경우가 대표적이라고 할 수 있는데 왜 그럴까요? Menu Key 가 사라진 이유. Android SDK 10 초과. 즉 3.0 HoneyComb 부터 Menu 키가 사라지는 효과가 나옵니다. 이는 Action Bar 의 등장 때문인데요.. Action Bar 가 Menu 의 역할을 해오기 때문에 minSDK 가 11 이상일 경우는 Menu 키가 필요없다고 여겨져 나오지 않게 됩니다. ( 사실 HoneyComb 부터 이 규칙이 적용되는데, HoneyComb 은 Phone 에 .. 2012. 3. 12.
[Android/안드로이드] 프로를 위한 팁 ( ProTip ) - 부제 : Featured App 만들기 안녕하세요 돼지왕 왕돼지입니다. 오늘은 Android 프로를 위한 팁 ( ProTip ) 에 대한 Video Clip 을 보았습니다. 이 Video Clip의 내용은 결국 Featured 된 App 을 만들자는 것인데, 간단히 이야기하면 "좋은 앱"을 만드자는 내용이지요. 영어가 매우 빠르고, 강연자의 사투리때문에 알아든느데 쪼끔 어려운 점은 있지만, 내용은 매우 좋습니다. 어려워도, 머리 아파도 끝까지 한번쯤은 보신다면 다음번에 앱을 설계하실 때는 professional 하게 만들 수 있지 않을 까 생각합니다. 다양한 SDK 지원하기. 다양한 SDK 지원하기 Backward Compatibility ( 하위 호환성 ) 에 기인하며, 보통 new API 때문에 발생하곤 합니다. 예를 들어 HoneyCom.. 2012. 3. 7.
[Android/안드로이드] Memory Management For Android. 안녕하세요 돼지왕 왕돼지입니다. 오늘은 Memory Management For Android 라는, 구글에서 제공하는 Video Clip 을 시청하고, 살짜쿵 감동을 받아 이렇게 글을 써봅니다. 매우 유용한 정보가 많으니, 꼭 video clip 을 처음부터 끝까지 한번 보시길 바랍니다. Heap Size Limit 안드로이드 앱에는 Heap Size 의 Limit 가 존재합니다. Heap Size 의 Limit 은 Device dependent합니다. 단말마다 다른 heap size limit 을 가지고 있다는 것이죠. 최초의 안드로이드 단말 G1 의 경우는 어플리케이션 하나가 가질 수 있는 heap memory 는 16MB 였습니다. 다시 말해, 어플리케이션 하나가 16MB 이상의 Heap 을 사용하.. 2012. 3. 7.
[하드웨어&소프트웨어] 소수계산의 Accuracy 에 대한 고찰. * 소수 계산의 경우 Accuracy 가 떨어진다. 예를 들어 0.333333333 이 있다면 이것을 2진수로 완벽하게 표현하지 못한다. 즉 10진수 소수를 완벽하게 matching 되는 2진수로 convert 가 불가능 하기 때문에 ( 가능한 경우도 물론 많다. ) 소수연산으로 equal 연산 ( == ) 을 할 경우 원하는 결과가 나오지 않을 수 있다. 2012/02/29 - [프로그래밍 놀이터/Tips] - [하드웨어&소프트웨어] 컴퓨터가 계산을 틀리게 하는 이유. 로그인 없이 추천 가능합니다. 손가락 꾸욱~ 2012. 2. 29.
[하드웨어&소프트웨어] 컴퓨터가 계산을 틀리게 하는 이유. * 컴퓨터도 계산을 틀리게 하는 경우가 있다. 주 원인은 Overflow, Precision floating point이다. * 예방방법 1. 근사값에 만족. ( 정확한 값을 추구하기보다는 어느 정도 오차를 감안하여 근사값을 사용하도록 함 ) 2. 정수로 바꾸어 계산. 로그인 없이 추천 가능합니다. 손가락 꾸욱~ 2012. 2. 29.
반응형