GUI : Mac vs. Windows


요샌 Android까지 가세를 했지만, 여전히 MS와 Apple이 OS를 만들 때, 고려하는게 세세하게 차이가 나고 그 세세한 차이가 사용감에 영향을 미치는 것을 본다. 종종 이런 것들은 지극히 직관적인 영역이라 누군가 “맥이 왜 더 좋은데?” 하면 그 순간 생각이 안나기도 한다. 하지만 그런 것을 사용하는 순간이 되면 “아! 이거였지!”하는 생각이 든다.
Apple의 제품을 좋아하는 사람들과 Windows나 Android를 좋아하는 사람들의 차이를 보면 그런데 있다. 세세하지만 중요한 차이를 보느냐 보지 못하느냐 하는 것 말이다. 그리고 후자는 물어봤을 때 기억이 안나 대답을 못하면 ‘몰라서 그런다’ 혹은 ‘아무 것도 아닌데 괜히 트집이다’라는 식의 태도를 보인다. 나는 Windows, Mac, Unix를 오랬동안 사용해 온 사람이고 각 플랫폼 위에서 프로그래밍을 해왔다. 지금도 Windows와  Mac에서 동시에 일하고 있다. 그러므로 나는 MS의 설계 방향이나 철학도 이해하고 Apple의 방식도 이해한다. 때론 어떤 게 더 좋다고 말하기 힘들다. 두 회사의 지향점이 다르기 때문이다. 하지만 그래도 선호하는 쪽은 있게 마련이다. 나도 사람이기에.

자, 한번 보자.
Mac과 Windows에서 언어 선택을 하는 화면이다.

language-selection-on-mac

Mac에서 언어 선택

windows-language-choice

Windows에서 언어 선택

차이점이 보이는가?
둘다 나는 영어로 GUI가 표시되게 하고 쓴다. 영어로 된 화면이 더 보기 편하고 프로그래머들끼리 소통하기 좋아서이다.
그런데 보자.
Mac에서 현재 영어로 화면이 보여진다. 그런데 설치된 언어를 보면 다음과 같이 되어 있다.

  1. English – English (US)
  2. 한국어 – Korean

반면 Windows에선 다음과 같이 되어 있다.

  1. English (United States)
  2. 한국어

둘 사이에 차이가 보이는가?
문제를 볼 수 있는가? 만약 당신이 이 둘 사이에서 문제를 볼 수 있다면 당신은 UI Experience에 감각이 있는 사람일게다.

Mac에서는 우선 해당 언어의 자체의 표기로 그 언어의 이름을 보여준다. 그리고 그 다음 줄엔 현재 GUI가 그려지는 언어(Primary 언어)로 그 언어가 어떤 것인지를 보여준다.
즉 “한국어 – Korean”에서 알 수 있는 것은 한글로 표현했을 때 한국어가 어떻게 표기되는지 그 이름을 한글로 보여주고, 그 다음 현재 OS의 언어로 그 언어가 어떻게 불리는지를 보여준다. 즉 Korean으로.

반면 Windows에선 해당 언어로만 각 언어의 이름을 보여준다.

혹시 아직 감이 안오는가?
자 여러분이 어떤 개발의 목적상 다른 언어, 즉 당신이 전혀 인지하지 못하는 언어, 예를 들면 스웨덴 어로 GUI를 표시하고 싶다고 하자. 그리고 당신은 현재 영어를 안다. 그리고 당신의 시스템은 영어로 표기되어 있다.
Mac에서는 스웨덴어는 ” <스웨덴 어로 표시한 ‘스웨덴 어’라는 명칭, 즉 Suomi>-Swedish”라는 식으로 표기되지만, Windows에선 “<스웨덴 어로 표시한 ‘스웨덴 어’라는 명칭, 즉 Suomi>”만 표기 된다.
여러분은 스웨덴 말로 스웨덴어를 Suomi라고 하는 것을 모른다. 더욱이 안타까운 것은 사우디어같은 거로 변환하고자 한다면 사우디어를 몰라도 글자 생김새가 아주 다르기 때문에 뭐가 사우디 어를 선택할 수 있는 것인지 알 수 있지만 라틴 알파벳에 기초한 나라들, 하지만 여러분이 생소한 나라의 것들은 문제가 된다.

즉 맥에선 Suomi – Swedish로 표기가 되어, Suomi를 몰라도 Swedish인 것은 파악이 되서 그걸 선택하면 되겠구나하지만, Windows에선 Suomi가 뭔지 모르니 어떤게 스웨덴 어인지 선택할 수가 없다.

Apple은 현재 사용자가 바꾸려고 하는 언어를 이해 못해도, 현재 표기어는 이해할 수 있다고 가정한다. 즉 둘 중의 하나만 이해하고 있으면 어떤 언어로 바꾸면 되는지 파악을 사용자가 할 수 있다.
하지만 MS는 바꾸려고 하는 언어를 이해하고 있다는 가정하에, 바꾸려고 하는 언어로 그 항목을 보여준다. 그러므로 사용자가 그 언어를 이해하는 경우만 뭘 선택해야 할지 알 수 있고, 그렇지 않은 경우는 낭패에 빠진다.

이게 별일이 아니라고 생각하는가?
실제 이런 일이 비일비재하게 발생한다.
내가 현재 개발하는 프로그램은 11가지의 언어를 지원한다. 한 표현을 다른 언어로 표현할 때, 그 길이가 달라지기 때문에 UI 요소들의 폭을 다르게 해야 할 필요가 있다.
그게 제대로 되었는지 확인하기 위해서 종종 그 언어로 시스템 언어를 바꾸고 확인한다.
그런데 그러고 나서 다시 내가 사용하는 언어로 바꾸고자 할 때, 맥에서는 아무런 문제가 없이 되돌릴 수 있지만 윈도우즈에선 그러지 못하다.

우리 사무실에 한문을 이해하는 사람은 나뿐이다.
미국인들이 이 로컬라이즈 문제를 할당 받으면, 이 문제에 봉착해서 나에게 어떤 걸 선택하면 좋냐고 물어 본다.

작은 차이, 하지만 큰 차이를 불러오는 UI적 요소이다.
이 차이를 아는 이들이 Mac의 UI를 만들었고, 그 차이를 모르는 이들이 Windows UI를 만들었다.
이런게 어디 이거 하나 뿐인가?

Advertisements

Difference in screen lock handling between iOS and Android


Most people compares one platform with another platform by specs like how much memory they have, how much higher pixel density their screen have, and so on. Well, that’s one measure for comparing ‘Hardware’ but not for ‘Platform’. Even pundits don’t seem to understand the differences between ‘platform difference’ and ‘hardware difference’.

So, to them Android is same to iOS. But to me, they are whole lot different.

I have an iPad mini 2 and Motorola Moto-X gen 2. I’m a person who are on multi platform from PC era and use them very fluently. I’m actually a S/W engineer on Linux ( and other Unix), Mac and Windows ( and iOS).

People I run into in the US are not really multi platform-savvy developers. They write code in their own style. I’m different. I write Mac code which look like Apple’s code, and Windows code like MS’s code. It’s based on the understanding of different philosophy of such platforms. What’s funny is that interviewers who interviewed me tried to judge me with their own standard, but once I worked with them, I found out that they lack such kind of thing, and they are very obstnate and doesn’t admit that there are better ways to do. Usually they think ‘inside of a box’ rather than ‘outside of a box’. So, that’s why they don’t learn from Apple’s coding style, MS’s coding style, Google’s coding style and so on. There is no one good solution, but there are reasons why things are written such a way especially with APIs they use.

Then.. those people usually are not good at comparing platforms and stick to ‘hardware spec’ based comparison usually. They will not understand what the humanity means when Steve Jobs said Apple understood the technology and the humanity and it’s good at combining them.

It’s that they consider how people think, how people react, how people behave and so on when they use apps.

For example, on a login web page on iOS, if the virtual keyboard pops up, the web page is slided up to prevent the virtual keyboard doesn’t hide ID and password fields. However, on Android, it usually don’t . They don’t care whether the virtual keyboard hides those fields or not. Usually the keyboard is drawn on top of those fields.

Apple cares such thing. So, they put such behavior in the underlying system, not giving the responsiblility to app developers.

How lock screen works shows such differences. On the both Android and iOS, you can set what minutes later it wil lock the screen.

[Fig. 1] Screen Lock setting on iOS

[Fig.2] Screen Lock setting on Android


However, there are differences.

On Android, if you press the power button or don’t do anything, then it wil lock the screen. To access the home screen, you should unlock it.

However, on iOS, it actually wait for the minutes/seconds you choose whether you hit power button or the iDevice goes to sleep mode automatically due to no access for the given duration of time. So, even though you hit the power button to turn off the screen, if you hit it again, you can immediately access the home screen or the front-most app you were using.

If you need more security, then you can lower the time to wait or you can lock it immediately.

Which one is more convenient to use while provide security? It’s iOS, not Android.

Especially when you wear gloves, it’s very inconvenient to use Android.

There are this kind of differences between iOS and Android. If the engineers only compare hardware spec, they can’t close the gap, although it doesn’t mean that they can’t sell Android phones.(Because there are people who don’t see the differences. Do you thin it’s because it’s not inconvenient? Well, if you think so, think again. )

차량용 내비게이션 콘트롤러 중 최고..


몇년전에 어느 IT 매체에서 제일 후진 콘트롤 장비로 BMW의 내비게이션 놉을 뽑았는데, 난 반대다. 사용해 본 것 중 제일 좋았고, 운전중 내비로 목적지까지 가는 거리 중 얼마나 왔는지, 다른 경로는 없는지, 쉽게 확대/축소해보기 너무 좋다.

반면에 Apple의 Map이나 Google Map은 바로 코 앞의 것만 보여주니 (물론 물어 볼 수는 있다.) 도대체 전체 경로 중 얼마나 왔는지, 시각적인 파악이 힘드며 (손으로 확대 버튼을 운전중 하는 것은 정말 위험 천만하다), 꼭 GPS를 따라가야만 하게 만든다.

Apple은 Siri가 융통성이 좋으니, 적어도 확대/축소, Panning 등에 대해서 음성 메시지가 있으면 좋겠다.
Google은 답답한데.. 그래도 최근 지도의 기능 자체들은 훨씬 좋아졌다. offline 지도 기능도 이전의 숨겨진 기능에서 이제 실제 사용하기에도 좋을 만큼 개선 되었지만, 여전히 운전 중 조작은 힘들다.

예전의 애플이라면 충분히 이 문제에 대해서 생각할 텐데, 요샌 애플이 그다지 제품에 집중 못하는 분위기다.
도대체 iLife, Pro apps, Mac의 각종 내장 앱들, iOS의 앱들에 대한 팀이 따로 없나?
상당히 많이 정체가 되어 있다.

Android, Google Play Book 앱의 문제


Google GUI.
참.. 어쩌라는 건지.
Google Play book 앱에서, 페이지의 상단에 있는 문단을 선택하고 노란색으로 마킹해 두려고 할 때, 위에서 툴바가 스르륵 내려온다.
그러면 본문부분도 밀려서 내려가 줘야, 사용자가 선택하려는 글을 눈으로 보면서 확인해 가면서 선택 부분을 조절해 줄 수있을 거 아닌가?

근데 이게 뭐야. 지금 이게 버젼 1.0도 아니고..

사람이 만든 것에 문제 없는 것이 없지만, 구글은 그래도 한때 소프트웨어 잘만들던 회사인데, 최근 몇년 전부터 곳곳에서 문제를 본다.

물론 시간 지나면서 좋아지기야 하겠지만, 입력기도 그렇고.. 참 문제 많다.
Android가 좋다는 사람들.. 이런 문제를 못 보는 것일까?

Screenshot_2014-07-12-16-52-33

한 플랫폼에서 spec이 다가 아닐 때


전문가인 척하거나 할 때, 특히 한국 사람들…
사람도 스펙만 따지다 보니, 기계도 스펙만 따지는 사람들.. (반대인가?)

OS/플랫폼을 이야기할 때, 스펙 보다 더 중요한게 있다.
작지만 큰 세심한 고려. 바로 그것들이다.
지난 20년 넘게, 사람들이 플랫폼 X의 뭐가 플랫폼 Y보다 좋냐고 물어 볼때, 스펙상의 기능은 물어 보는 사람들도 아니, 정말 사용하면서 영향을 끼치는 작지만 큰 기능들을 언급했다. 그들은 대개 궁금해서 물어보는게 아니라 도전하기 위해서 물어 보는 것이기에, 전체적인 이야기를 해 주면 거짓말하는 것이라던가 혹은 인정하지 않는 분위기다.
콕 집어서 뭐가 있다라고 말해 주어야만 한다.

근데, 문제는 이런 작지만 큰 기능은 쓸 때는 느끼는데, 쓰고 난 후엔 잘 기억이 나질 않는다는 거다. 그러면 다른 이들은 이렇게 묻는다. 별 기능 아니니 그런거 아니냐? 천만에. 오히려 정반대다. 사람의 무의식적 사용에 관한 부분이기 때문이다.
그래서 재작년 쯤엔간, 그런 기능을 느낄 때마다 적어 둬 보자라고 했는데, 막상 그 절실함을 느끼고 나면, “이거 뭐 당연한 거”란 생각에 안 적어 놓았다.. 결국 “아.. 그거 뭐더라”하게 된다.

그래서 한번 적어 보자.

Mac에서의 언어 세팅

Mac에서의 언어 세팅

 

Windows 7에서의 언어 세팅

Windows 7에서의 언어 세팅

Windows 7의 세팅 윈도우는 그 이전의 버젼들과 같다. MS가 그렇지만, 실제 디테일한 것들은 안 바뀌고 데스크탑에서 척 보이는 부분들만 바꾸는.. Windows 8/8.1은 좀 달라졌지만, 기본 성격은 같다.

Mac OS X와 Windows의 차이가 보여지는지?

극명한 차이가 있다. 아무래도 전통적으로 Mac 사용자들이 여러가지 언어를 사용하는 경향이 있어왔고, Unicode도 그 가능성을 Apple이 WorldScript로 열어 준 것이다. 한국 신문에도 대서특필 되었었는데, 그 이전엔 세상의 언어를 한 코딩 체계로 표현한다는 것을 불가능하다고 했는데, WorldScript로 애플이 가능하다는 것을 보여 주었으니까.
그리고 그 후에 Unicode가 만들어졌고.

Mac에서는 부팅 없이 언어를 바꿀 수도 있다. 하지만 Windows는 8에 와서야 좀 더 편해졌는데, 여전히 로그아웃/로그인을 해야 한다. 아무튼..

그래서였을까? Mac의 사용자 환경에선 언어를 세팅하게 해주는 목록에서 타겟 언어가 항상 “그 언어 자체 표기 – 현재 OS 언어로 된 그 타겟 언어 표기”로 되어 있다.
반면에 Windows에선 “현재 OS에 활성화 된 언어”로 타겟 언어를 기술해 놓았다.
이게 왜 문제일까?

사용자가 개발자라고 하자. 영어에선 어떤 문자열의 길이가 150이었는데, 아라비아 언어론 다른데, GUI가 어떻게 보일지.. 위젯들의 위치가 비교적 괜찮은지, 언어를 바꾸었을 때, 그 비율이 틀어진 않는지 (가변 위젯), 글자가 잘리진 않는지 등을 살펴볼 필요가 있다. 그런데 현재 자기가 사용하는 언어에서, 타겟 언어로 바꾸었다고 하자. 그러면 Interface의 모든 것이 그 타겟언어로 나온다. 문제는 개발자가 그 언어를 모른다는 것이다. 대개의 경우 OK, Cancel 버튼의 위치는 알지만, 이리 저리 윈도우를 연다거나 하면서 테스트를 해 볼때, 혹은 다시 언어를 원래로 바꾸려 할때, 해당 버튼, 메뉴 아이템의 위치를 정확히 기억하고 있지 못할 수 있다. 그런 그때부터 영 다른 거 누르고 난리를 치는 것이다.

여기서 보자. Mac OS X의 경우, 현재 OS의 언어와 타겟 언어, 둘로 바꾸어야할 언어가 표기 되어 있다. 그러므로 아라비아어로 영어를 뭐라고 쓰는지 몰라도, 타겟 언어인 영어로도 나오기 때문에, 안심하고 바꿀 수 있다.
반면 윈도우즈를 보자. 현재 언어로만 나오기 때문에, 어떻게 바꿔야 할지 모른다.
자신이 사용하는 언어가, 메뉴에서 4번째에 있었는지 5번째에 있었는지 정확하게 기억을 못할때.. 여러번 해 보던가, 아니면 꼭 그럴때는 머피의 법칙인지 선택한게 자기가 생각하던게 아닌 경우가 왕왕 있게 된다.

이런 것들로 인해, 사용감에 상당히 큰 긍정적, 부정적 인식을 하게 된다.
Mac OS X의 저 UI를 생각한 사람들은, 이런 Use Case를 고려한 반면, MS의 윈도우즈 UI를 생각한 사람들은 그렇지 못한 거다.

이런 식의 고려들이 도처에 널려 있다. 이게 기계적 스펙, OS의 스펙으로 드러날까?
그리고 이런 것이야 말로, 사용자들이 해당 OS에 대해 느끼는 인상 아닐까?