Mac, iOS

iOS7, 벡터 아이콘?

iolate 2013. 9. 22. 20:39

iOS7 벡터 아이콘 소문의 시작은 ZDNet Korea의 

iOS7, 살아 움직이는 시계 앱의 비밀

라는 기사..


저게 시작인지 아닌지는 잘 모르겠지만,

iOS7 부터 아이콘이 벡터라는 말이 계속 보인다.

현재 디자인도 벡터에 좀 더 적합하다나 뭐라나...


신기한건 이 논쟁은 한국에만 있다.

영어로 검색하면 아이콘이 벡터로 바뀌느니 마니 하는 내용은 전혀 없음..


시계를 돌리기 위해서 벡터로 바꾼다는 소리가 너무 어이가 없어서 이 글을 써 본다.


우선 본론으로 가기 전에 저 기사에서 기자가 도대체 어떻게 알아낸 건지 이해할 수 없는 부분.


앱 아이콘의 테두리를 자동으로 둥글게 깎아 보여주는 처리 방식도 비트맵에서 벡터 방식으로 바뀐 것으로 알려졌다.


솔직히 자세히 모르겠고 알아볼 생각도 없지만

아마 마스크 이미지를 씌우고 테두리는 imageView layer 에서 둥글게 깍을 것이다.

iOS7 에서도 icon 을 보여주기 위해서 image view 를 이용하므로 딱히 달라질 부분은 없을 듯.

즉 비트맵인지 벡터인진 모르겠고 어차피 원래부터 cpu 연산 처리로 테두리를 깍아 왔다.

저런 내부적인 내용을 이런 기사나 쓰는 기자가 어떻게 알았는지 의문.. 그냥 지레짐작인건가...



여튼 본론으로 돌아와서, 말도 안되는 소리의 시작...


iOS7 시계 앱 아이콘의 바늘은 시시각각 움직인다. 이를 비트맵으로 처리하려 했다면 모든 시계바늘의 위치를 고려한 '경우의수'만큼 많은 아이콘 이미지가 필요하다. 실제 그런 식으로 처리됐던 iOS 앱 아이콘이 바로 '캘린더'다. iOS 캘린더 앱은 과거에도 7가지 '요일'과 31가지 '일자'를 실제 시간에 맞춰 보여줬다. 

 

캘린더 앱은 많아야 217가지 조합이지만



캘린더 앱은 이런 아이콘을 가지고 있다. 참고로 실제로 iOS6의 캘린더 앱에서 추출한 파일이다.

저 아이콘 위에 날짜 레이블만 입혀주는 형태.

217가지 각각 이미지를 다 만드는 짓은 아무도 하지 않는다..


마찬가지로 시계도 실시간으로 시간을 보여주기 위해서 비트맵을 사용하면 엄청난 경우의 수가 나오기 때문에 벡터로의 전환을 한다고 하는데 그럴 필요가 전혀 없다. (iOS6 상에서도 시간을 실시간으로 움직여주는 트윅이 있기도 했고.)


컴퓨터 상에서 시간을 움직이는 방법도 집에 있는 시계와 다를 바가 전혀 없다.

시계 바탕에, 시침, 분침, 초침을 얹이고, 가운데 축을 기준으로 계속해서 돌려주면 된다.

비트맵 이미지로도 충분히 가능한 작업.

그러니 이걸 위해서 벡터로의 전환이 필요한게 아니다.


그리고 저 기사 때문에 많은 사람들이 벡터 아이콘이 도입되는 걸로 알고 있다.

그래서

http://www.clien.net/cs2/bbs/board.php?bo_table=cm_iphonien&wr_id=1350230

이런식의 플라시보 효과(?) 를 경험한 것 같은 사람들의 글도 올라오고 있고...


나 또한 워낙 많은 사람들이 벡터, 벡터 해서 기본 내장 앱이라도 벡터를 쓰는지 의심했었다.

그래서 방금 iOS7 펌웨어를 뜯어봤는데,



 .....여전히 앱스토어를 비롯한 내장 앱들은 해상도에 맞춰서 .png 파일을 가지고 있다.

즉 기본 내장 앱들도 여전히 비트맵 방식의 아이콘을 사용하고 있다.



iOS7 시계의 경우 썸네일용 이미지 말고는 이미지를 찾아볼 수 없어서 SpringBoard 를 뜯어봤다.



이 클래스로 시계 아이콘을 그려준다.

cpu 연산으로 시계 앱을 그려주는건 맞는데... CALayer 는 비트맵 이미지를 그려주는 클래스이다.

이런 경우를 벡터로 부르는지, 비트맵으로 부르는지 솔직히 잘 모르겠다.

선, 두께 등의 정보로 레이어를 만들어 주는거니 벡터가 맞는건가...


솔직히 난 비트맵이고 벡터고 정확히 어떻게 구분하는건지 잘 모르겠다.

벡터 데이터로 결과적으로 비트맵을 표현하는 거니까....

하지만 이걸 벡터라 부른다 할지라도 난 이것만으로 애플이 아이콘을 벡터로 전환하려 한다고 하기엔 많이 무리가 따른다고 생각한다.

고작 시계 앱 하나니까...


만약 애플이 정말로 벡터 데이터만을 가지고 앱 아이콘을 표현하는 걸 지원한다고 해도 그건 아마 해상도 문제보다는

디바이스 별로 다른 해상도에 맞춰 다 만들면서 용량이 증가하는 문제를 해결하기 위해 도입할꺼라 생각하는데,

이것도 가능성이 낮다고 생각한다.

생각해보니 아이콘만은 용량 차지도 얼마 안한다.. 모든 리소스의 벡터화를 생각했는데

이건 말도 안되기도 하고, 딱히 애플의 지원이 필요없기도 하고....

 

여튼 그래서 기기 별로 리소스를 따로 받는 방법을 지원하는게 훨씬 맞는 방법 같거든...


비트맵이고 벡터고 이건 잘 모르겠고,

여튼 이 글을 통해 내가 말하고 싶은건


1. 비트맵이라고 해서 캘린더나 시계를 표현하기 위해 수백 수천 가지의 이미지가 필요한 건 아니다

2. 애플의 내장 앱들은 여전히 비트맵 이미지를 사용한다.



ps, 비트맵, 벡터 관련해서는 잘 모르니 헛소리가 있을 수도 있음. 고로 태클 환영합니다~ ㅋ