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

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

카테고리


반응형

Corona Guidelines: iPhone 5 and iOS6 (Preliminary)


Posted on . Written by



iPhone 5 (아이폰 5) 는 아마 가장 빨리 많은 양이 팔리는 기기가 될 것 같습니다. 이제 iPhone 5 와 iOS 6 를 대비해서 여러분이 만드는 코로나 앱을 어떻게 준비해야 되는지 알아 봅시다. 가장 큰 부분은 여러분의 코로나 앱을 16:9 의 화면 비율에 맞게 만드셔야 한다는 겁니다. 저희들은 이것을 tall app 이라고 부릅니다. (아이폰 4나 아이폰 4의 전통적인 앱의 화면 비율이 더 짧은 것과 비교해서 그렇게 부릅니다.)



Preparation


첫번째로 해야 될 것은 XCode 4.5 SDK GM seed를 인스톨 해야 됩니다. 애플은 지난 수요일 이것을 공개 했었습니다. 이전 버전의 XCode가 있다면 이 새 버전을 다운 받으세요. 이것이 있어야 IOS App Store에 iOS 6 앱을 submit 할 수 있도록 해 줍니다. 또한 이 Xcode를 깔아야 “iPhone (Retina 4-inch)”, a.k.a. iPhone 5 에 맞는 XCode 시뮬레이터에서 여러분의 앱을 미리 보실 수 있습니다.






Updates to Corona



저희들은 iOS6와 iPhone 5 를 타겟으로 해서 앱을 만들 수 있도록 하는 몇가지 주요한 업데이트를 했습니다. 유료 구매자분들은 이 업데이트 버전을 다운받으실 수 있는데요. daily build 912 버전을 다운 받으시면 됩니다.


daily build 911 부터 디바이스 빌드시 ‘XCode 4.5 GM seed’를 사용할 수 있도록 했습니다. 아래 화면에서와 같이 Build dialog 박스에서 iOS SDK 를 5.1이 아니라 “6.0 GM seed”를 선택하는 것을 잊지 마세요.




다음주초에 애플은 final GM을 릴리즈 할 계획입니다. 그 때 iOS 5 용을 없앨 겁니다. 그 이후의 빌드들은 모두 iOS 6를 타겟으로 하게 될 겁니다.



또한 코로나 시뮬레이터에 iPhone 5 스킨을 추가했습니다. 맥이나 Win 유저 모두 이 스킨을 사용하실 수 있습니다. 여러분이 이 tall app을 만드신다면 이 스킨을 사용하셔야 합니다. 만약에 traditional app을 만드신다면 iPhone 4 스킨을 사용하셔야 되구요.


(Entreprise customers : 엔터프라이즈 데일리 빌드는 다음주 애플이 iOS 6 GM 최종버전을 발표한 이후 업데이트 할 예정입니다.)



iPhone 5, Duck Typing, and the Black Bars



여러분 중 애플의 keynote를 보신분이 계시다면 현재 만든 앱들은 iPhone 5에서 letterboxed 되서 보여질 거라는 걸 보셨을 겁니다. i.e. the “black bars”.


이게 정확히 어떻게 보야진다는 걸까요?


저희들이 살펴본 바에 따르면 iPhone 앱이 iPad 에서 작동될때와는 다른현상이 나타납니다. iOS5에 맞게 작업된 현재의 iOS 앱들은 iPhone 에서는 traditional app으로 취급 될 겁니다.






무슨 의미냐 하면 iPhone 5는 그 화면 비율을 320X480 포인트 (640X960 pixels)로 생각할 겁니다. 그러면 어떻게 나타나냐 하면요. status bar 가 black bar 밑에 나타나게 됩니다. 그리고 black bar 지역에서는 rendering이나 touch 등이 먹히지 않을 겁니다.




It’s similar to duck typing:if it walks like a duck, talks like a duck, and acts like a duck, well then by golly it is a duck! This is the sleight of hand, Apple is playing on apps to make it easy on developers. If you want your app to think it’s on the same ol’ traditional iOS device, then just go merrily along.



Supporting “tall” apps



좋습니다. 이제 여러분 앱이  iPhone 5 에 맞게 좀 더 긴 비율의 기기를 지원하려면 어떻게 해야 할까요? 포럼에서 이미 읽으셨듯이 여러분의 project에 특별한 file을 추가하셔야 합니다. 이렇게 하면 iPhone 5의 tall mode에서 작동될 수 있을 겁니다. “Default-568h@2x.png” 라고 하는 tall splash image가 있어야 합니다.



아래에 주의하셔야 할 몇가지 사항을 정리했습니다.


  • 반드시 iOS 6.0 GM 로 빌드하셔야 합니다. 애플은 iPhone 5를 iOS5가 아니라 iOS6로 테스트 했습니다.  만약 여러분이 iOS 5로 tall mode를 만드는데 성공을 한다면 아주 운이 좋은 케이스이긴 하지만 애플은 그것을 지원하지 않을 겁니다.  코로나에서 iOS 6를 타겟으로 빌드를 하시면 그 이전 버전의 iOS에도 자동적으로 지원이 되는 앱이 만들어 질 겁니다.

  • XCode simulator 는 tall mode로 play를 시작하면 조금 까다로와 집니다. tall splash image를 없애도 그런 현상이 일어날 겁니다 예를 들어 여러분이 traditional mode로 run 하기를 원해도 그대로 tall mode로 보여질 겁니다. 만약에 tall 모드와 traditional 모드를 바꿔서 보고 싶으시다면 그 앱을 uninstall 하셔야 합니다. 혹은 “Reset Content and Settings…” menu 를 사용해서 시뮬레이터를 reset 하셔야 됩니다. 그리고 clean builds를 할 필요가 있을 겁니다. 예를 들어 여러분의 Mac에 있는 .app bundle의 이전 빌드를 delete 해야 합니다.

  • dispatch 되지 않은 iPhone 5 의 bottom 부분에서 일어나는 began과 ended touch 관련 이슈들을 해결했습니다.





Coexistence of tall and traditional apps



애플은 애플입니다. 애플은 여러분의 iOS 앱이 iPhone 5에서만이 아니라 모든 iOS 디바이스들을 지원하기를 원할겁니다. 그렇게 하기 위해 여러분에게는 두가지 choice 가 있습니다.


  1. Easy:  오직 traditional 스크린만 지원하는 겁니다.이게 가장 손 쉬운 방법이죠. 지금까지 해 왔던 방법이니까요. 그냥 해 왔던 대로 하시면 됩니다.
  2. Harder: tall과 traditional 스크린 모두를 지원하는 겁니다. 약간 트릭을 사용하셔야 합니다. iPhone 5와 기존의 아이폰 스크린 모두에서 작동하는 앱을 만들려면 거기에 맞는 각각의 UI를 만드셔야 하죠.  기존의 아이폰에서 작동할 때에 표시될 UI를 따로 만드셔야 할 겁니다.


Scenario #1 은 쉽습니다, 거기에 따로 설명을 덧붙일 필요는 없을 겁니다.  Scenario #2 은 조금 더 작업을 해야 하죠. 왜냐하면 extra screen 공간에 맞는 디자인을 더 해야 하니까요.

Scenario #2를 따르려면 코로나의 기능을 제대로 알아야 그 기능을 활용해서 좀 더 쉽고 정확하게 작업을 하실 수 있을 겁니다. 저희는 여러분의 앱이 taller screen에서 작동하는지 여부에 대해 감지할 수 있는 새로운 API들을 추가했습니다.


가장 쉽게 체크하는 방법은 아래와 같이 하는 겁니다.


local isTall = ( "iPhone" == system.getInfo( "model" ) )
and ( display.pixelHeight > 960 )
 

이렇게 스크린이 tall 인지 traditional인지 알아낸 다음 거기에 맞게 display 하도록 코딩을 하시면 됩니다. 운이 좋으시다면 이미 여러분이 만든 앱이 긴 화면의 안드로이드 기기에서 제대로 보이도록 만든 이미지가 있을 테고 그러면 그 이미지를 그냥 활용하시면 됩니다. 그렇지 않으면 여러분의 앱을 tall 모드에 맞게 업그레이드하는데 들이는 노력이 필요한지 아닌지를 먼저 생각하실 필요가 있습니다.


* * *


여러분이 보시다시피 저희들은 여러 부분에 대해 디테일 하게 분석을 하고 대처를 하고 있습니다.

저희 개발자중 한명이 이쪽 바닥을 이렇게 표현을 하더군요. “It’s never a dull moment.”


Amen to that!




반응형