음.. 이건 UX에 관한 심각한 고민입니다.
평소 확인(OK) 는 무조건 왼쪽에 취소(Cancel) 는 왼쪽 이라고 믿고 살아 왔습니다.
MS 윈도우의 다이얼로그도 무조건 이 방식이였고 모든 앱을 그렇게 만들고 있었죠.
안드로이드 기본 다이얼로그에서도 positive 는 왼쪽 negative 는 오른쪽으로 되어 있구요.
ICS 에 오면서 혼란이 생겼습니다. 확인(ok)이 오른쪽으로 붙었습니다.ㄷㄷㄷ
맥에서는 확인이 오른쪽에 있죠....
ICS 사용자들이 왜 확인이 왼쪽에 있느냐고 항의를 하십니다.
ICS 쓰는 사람은 다이얼로그가 뜨고 긍정적이다 생각 하면 무의식적으로 오른쪽을 누를 것이기에 고민이 깊습니다 -ㅠ-
기존앱에 대해서 위치를 바꾸는건 무리인 것 같습니다. 사용자들의 원성이 하늘을 찌를듯..
새로운 앱은 어떻게 만들지 고민이 생깁니다.
이건 그냥 100% 구글탓입니다 -_-;
다이얼로그에서 setLeft/RightButton도 아닌 setPositive/NegativeButton 으로 API를 만들어서 아무런 의심없이 사용하게 만들어놓고
ICS로 업데이트되니 레거시와 섞여서 뒤죽박죽 됐죠 ㅡㅡ;
지금은 과도기라 어쩔 수가 없이 개발자가 고생해서 왼쪽 오른쪽을 안드로이드 버전별로 다르게 가져가던가 그냥 레거시 놔두고 과도기가 지나가기를 바랄 수 밖에 없을 것 같습니다 ㅠㅠ (근데 안드로이드는 맨날 과도기야.. 흑)
ICS 이상에서는 오른쪽, ICS 이전에서는 왼쪽. 그러나 갤스2처럼 ICS로 업그레이드된 폰은 방법 없으므로 포기. ICS UX에서 가장 저를 많이 분노하게 만든 변화죠. 머 view의 위치를 굳이 알아내서 동적으로 처리할수 있을지는 모르겠네요
아무래도 오른손과 가까운 곳에 확인을 두는 편이 좋을 것 같습니다.
컴퓨터 화면은 넓은 시야를 필요하므로, 좌측에서부터 객체를 인식하기 때문에 좌측에 두는 것이 편하지만,
스마트폰류는 요구되는 시야범위가 작기 때문에 좌측우선인식이 아니므로,
오른손 잡이에게 가까운 오른쪽에 두는 편이 용이하다고 생각합니다.
구글 가이드라인을 보면,
사람이 왼쪽부터 오른쪽까지 다 읽고 터치를 하게되면, 초점이 오른쪽으로 가 있을 것이기 때문에,
확인 버튼을 오른쪽에 배치하는게 효율적이라고 되어 있습니다.
근데, 우리가 왼쪽에 확인 버튼이 있는게 너무 익숙해 있어서... ^^;;;;
As a rule, the dismissive action of a dialog is always on the left whereas the affirmative actions are on the right.
망할 구글놈들 ㅠㅠ
Build 에서 안드로이드 버전 찾아서 버전에 따라 위치를 바꿔주는게 최선 같네요.
다행히 DialogFragment 를 사용해서 가능 할 것 같습니다.
여러 문서를 찾아보면 mg2000님 처럼 시선이 Z 자로 흐르므로 최종적으로 눌러야 하는게 오른쪽 아래에 있어야 된다고 나오는데... 사람들은 이미 많은 교육(?) 으로 왼쪽이 Ok 라고 생각 할 수 있어요.
오른손 잡이가 오른손 하나만으로 폰을 잡았을때 엄지로 오른쪽 보다 왼쪽 버튼을 누르기가 쉽기도 하구요..
답은 없는것 같습니다. 그래도 OS 하던거 따라가야지 ㅠㅠ
저도 ICS에서 이게 바뀐게 마음에 안듭니다만, 저는 굳이 위치지정을 하려 애쓰기 보다는 OS가 하는대로 놔두는게 좋다고 봅니다.
이걸 일부러 바꾸면 해당폰의 다른 모든 앱(내장앱 포함)과 달라져서 사용자가 더 혼란스러울 것 같습니다.
오히려 손가락을 굽혀야 하므로 오른손잡이에가 불편하다고 말하는 사람들이 많습니다. 화면의 크고 작음도 사실도 별 상관없을것 같네요. 화면큰 맥은 옛날부터 오른쪽이었고, 윈도는 옛날부터 왼쪽이었죠. UX상으로 어디가 좋으냐라는 논란은 옛날부터 있던거지만 사실 어디에 있는게 사용자에 익숙하느냐가 중요합니다. 논리는 중요한게 아니죠. 그렇기에 버전별로 다르게 처리하는게 최선입니다. AlertDialog를 쓴다면 Theme로 어떻게든 커버 가능할 것이고 그렇지 않은 것들은 버전별로 처리합니다,
갤럭시S3의 ICS는 오른쪽에 OK가 있지만 갤럭시S2의 ICS는 왼쪽에 가서 붙어있는것도 새폰과 기존 폰의 업데이트한 것과 정책이 달라진것으로 결국 사용자가 업데이트 이후에 혼란 스러워하는 것을 막고 기존 앱들의 호환성을 위해 삼성의 어쩔수 없는 선택이었을것으로 보입니다. 사실 논리적인 설명은 이해하지만 기존 수억 사용자와 수십만 앱을 혼란스럽게 만드는 것은 UX문서에 나오는 그런 논리만으로 이해할수 없는 결정이었죠. 제가 굳이 좋게 봐주는 부분은 논리적인 당위성보다 모바일 웹쪽도 아이폰처럼 오른쪽에 확인이 있는 경우가 많은데 이제 안드로이드도 오른쪽으로 가버리니 앱이고 웹이고 모두 확인은 오른쪽이 표준이 될겁니다. 윈폰은 윈도가 왼쪽이니 왼쪽으로 갈수 밖에 없는데 혼자 어색하게 동떨어져버리는거죠.
ICS에 이런결정이 많습니다. 꼭 바꿀 필요는 없는데 굳이 바꿔서 호환을 깨고 프레크멘테이션을 심화시키는 것들이요. 이번에 구글IO에서도 도저히 못맞추겠다 apk를 나눠야 하는거냐? 라는 질문을 누가 공개적으로 했더니 그건 공개적으로 답안하고 나중에 따로 와서 물어보라고 하더군요. 오늘 버젼 관련 세션은 못들어가서 무슨 이야기를 했는지는 모르겠는데 유튭 확인해봐야겠네요.
버전에 맞는 표준대로 하세요.
ICS 부터는 긍정적인 버튼이 오른쪽에 있어야 합니다. 다음/확인 같은 버튼 말이죠.
다이얼을 커스텀해서 쓰시는 거라면 values-v14에서 string으로 버전 구별해 주는것이 좋죠.
3rd party app 개발자에게 있어서 더 혼란을 줄 수 있는 변수가 하나 더 있습니다.
분명 ICS 부터는 X Window나 맥과 같이 버튼 배치가 바뀐게 맞습니다만
업그레이드가 아닌 ICS를 기본으로 달고 나오는 단말들을 보면
이게 또 제조사 마다 어디는 ICS를 따라가고 또 어디는 예전처럼 싹 바꿔 버리는 것입니다.
이렇게 되면 아예 단말 자체에서 사용자마다 달라져 버리게 되죠.
3rd party app에서 어느쪽이든 정해서 해놓았는데 이것이 단말과 다르다면 또 항의글이 줄줄이 달릴 것이고
ICS 기본으로 따라가도록 처리하면 또 누구꺼는 이래 나오는데 왜 내꺼는 이래 나오냐 하는 항의글이 있을 수 있을것입니다.
팬택 단말들이 그렇게 출시되고 있는걸로 알고 있는데
제조사 차원에서 이렇게 상이하게 되면 3rd party app 개발자들은 계속해서 골치아파 지겠군요...
카톡이나 네이버앱이나 이런 대표적인 앱 따라하는 것도 괜찮은 것 같아요^^
사람들이 그만큼 익숙하게 쓰는 UX 라고 할 수 있으니까요.. 아마도^^;;