반응형
블로그 이미지
개발자로서 현장에서 일하면서 새로 접하는 기술들이나 알게된 정보 등을 정리하기 위한 블로그입니다. 운 좋게 미국에서 큰 회사들의 프로젝트에서 컬설턴트로 일하고 있어서 새로운 기술들을 접할 기회가 많이 있습니다. 미국의 IT 프로젝트에서 사용되는 툴들에 대해 많은 분들과 정보를 공유하고 싶습니다.
솔웅

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형
Posted on . Written by


수요일 FAQ 시간입니다. 이번주는 Mac Simulator와 native text objects들의 displaying fonts에 대한 다섯가지 질문을 다루겠습니다.


1. How can I keep the (Mac) Simulator window from resizing when I relaunch my app?


Daily Build 883에 새로 시작할 때 디바이스 윈도우를 resizing에 대해 Mac 시뮬레이터의 크기를 유지하는 옵션이 들어갔습니다.  Corona Simulator/Preferences… 로 가서  “Automatically scale simulator to fit screen.”의 선택을 해제 하세요.







2. Why does my app start up in a (Mac) Simulator with a window that is larger than my display?


작은 display들에 큰 디바이스 윈도우 (iPad나 iPad Retina 같은) 를 display 할 떄 맥 시뮬레이터는 relaunch 된 이후에 zoom을 하는 경우가 있습니다. 그래서 실제 스크린크기보다도 더 큰 device window가 나오기도 합니다. Zooming out(Cmd-) 는 display back을 합니다. 새로 zoom out된 것을 재 조정했다고 하더라도 다음번에 relaunch 하게 되면 똑 같은 현상이 일어납니다.


build 883 에서 이 부분에 대해 수정했습니다. 스크린에 맞게 조정할 뿐만 아니라 이전에 유저가 zoom 했던 세팅을 기억해서 다음에 relaunch 할 때 시뮬레이터의 위치와 zoom level을 유지하도록 합니다.


또한 Window 메뉴에 center 라는 옵션을 추가했습니다. 이 옵션을 추가하면 현재 display window의 중심에 위치 시키게 됩니다. 만약 여러분이 여러 디스플레이를 사용한다면 아주 유용할 겁니다. display를 바꾸게 되면 화면 밖으로 나가게 되는 경우도 있죠. 이 기능에 대한 hot key 는 Shift Cmd UpArrow 입니다.


맥 시뮬레이터에는 또 다른 기능이 추가 됐는데요. 디바이스의 테두리를 없앨 수 있습니다.

디바이스 창의 테두리를 없애면 더 여유로운 screen 공간을 사용할 수 있고 스크린에 딱 맞는 디바이스 창을 더 수월하게 해 줍니다. 이 기능은 특히 큰 태블릿 디바이스를 display 할 때 유용합니다.

Corona Simulator/Preferences…로 가셔서 “Display device border (takes effect on next simulator relaunch”를 체크하세요. 말씀드렸듯이 바뀐 기능을 적용하려면 시뮬레이터를 재시작(Cmd r) 하시면 됩니다.


3. Why does the Mac Simulator keep crashing on Mountain Lion (10.8) when I relaunch my app a few times?


맥 시뮬레이터에서 약간의 메모리 누수를 찾았는데요. 여러분이 앱을 relaunch 할 때마다 발생하더라구요. 여러분 시스템의 메모리 여유가 별로 없다면 그리고 앱의 relaunch를 자주 하다보면 시뮬레이터가 crash를 일으 킬 수 있습니다. simulator가 close 되면 누수된 메모리가 다시 해제 됩니다. 이 이슈는 Lion (10.7) 에서도 발생하는데요. 10.8 버전에서는 더 많은 메모리를 사용하는데요 그래서 이러한 일들이 10.8 시스템에서 더 많이 보고 됩니다.


좋은 소식은 daily build 883에서 이 에러를 수정했다는 겁니다. 이 버그는 애플의 Image Kit code 내의 internal bug 때문에 일어난다는 원인을 발견했고 이 문제를 해결하기 위해 애플의 기능이 아는 우리의 routine들을 사용하도록 고쳤습니다. (애플에 bug report 도 했습니다.)


조만간에 public release 에서도 이 수정된 사항이 적용되도록 하겠습니다.


4. Why don’t the fonts in native TextFields and TextBoxes scale correctly on different devices?


config.lua 에서 dynamic scaling을 enable 하면 코로나는 모든 vector, 이미지 그리고 native 객체들을 scale 해서 현재 display에 맞게 맞출 겁니다. 이때 scale 하지 않는 것들은 native.newTextFieldnative.newTextBox에서 사용하는 폰트들입니다. 폰트를 scaling 하게 되면 다른 display 객체들의 scaling이 제대로 작동 안할 때도 있습니다. 각 폰트들 마다 차지하는 공간들이 다르기 때문에 이런 일들이 발생하는데요. native 텍스트 필드에서 폰트를 scale 하려면 여러분이 사용하는 폰트가 있는 코드 부분에서 하셔야 합니다.


여러분이 네이티브 텍스트 필드에 14 포인트의 폰트를 지정했다면 그 텍스트는 scaling facor와 관계 없이 모든 디바이스에서 14 포인트로 display 될 겁니다.

이러한 현상은 오직 native text object에만 해당됩니다. display.newText를 사용한 폰트는 bit 이미지로 랜더링 되기 때문에 제대로 scaling 됩니다.


5. Why don’t the fonts in native TextFields and TextBox scale correctly in the Simulator?


시뮬레이터에서도 4번과 비슷한 현상이 발생하는데요. 시뮬레이터는 zoom in, zoom out을 할 수 있고 시뮬레이션 되는 디바이스를 바꿀 수 있습니다. 하지만 native text object의 폰트 사이즈는 언제나 같습니다. 그러니까 14포인트의 폰트는 zoom level 과 관계없이 항상 14 포인트로 보이게 되는 것이죠. 실제 디바이스에서 display.newText로 생성된 텍스트는 제대로 scale 될 겁니다.



여기까지가 오늘의 FAQ 입니다.

유익한 시간이셨기를 바랍니다.



반응형