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

최근에 받은 트랙백

글 보관함


Posted on . Written by


존 레논이 말했죠, life는 네가 다른 plan을 만들 때 일어난다고요. 그런 비슷한 일들이 최근 저희들에게 일어났었습니다. Kindle HD/NOOK HD 에 대해 관심을 많이 가진 이후로요. 이런 디바이스들에 대한 Corona’s support 를 하기 위해 Kindle HD에 대한 지원을 진행했고 NOOK HD 에 대한 지원도 많이 진행 됐습니다.


한가지 우리가 찾아낸 것은 여러분의 ‘build.settings’ file 에 어떤 Lua syntax 에러가 있으면 여러분의 APK는 NOOK pre-flight submission tests에 통과하지 못할 거라는 겁니다. 여러분의 편으를 위해서 저희들이 약간의 변화를 주려고 합니다. 그래서 그 파일에 에러가 있더라도 그 APK 가 제대로 동작할 수 있도록요.


이런 critical 한 이슈들에 대해 정리하는 동안 daily build 929 버전부터 가능하도록 한 이슈들이 몇가지 있습니다.



그 중 하나가 맵뷰를 로딩할 때 배경색을 흰색에서 회색으로 바꾼건데요. 이렇게 하면 activity indicator를 보는것이 훨씬 더 쉽습니다. 또한 native activity indicator 가 전체 스크린에 나오는 버그도 수정했습니다. 이 두 이슈는 NOOK HD 가 다른 안드로이드 디바이스와는 다르게 그들의 default를 세팅하지 않았기 때문에 일어나는 것 같습니다. 또한 NOOK HD 에서 맵뷰가 redrawing 하지 않는 버그도 찾아냈는데요. 운 좋게도 이와 관련된 작업을 standard와 custom android 디바이스에서 하고 있었거든요. 그래서 쉽게 고칠 수 있었습니다.

그리고 여러분 중에 인터페이스에 관심 있는 분들은 다음 내용이 흥미로울 겁니다. new NOOK HD 에서 제공되는 alert box의 default theme 이 별로 좋지가 않습니다. 그래서 이 것을 Jellybean(4.1) 의 디폴트 theme 인 (“Holo Dark”) 을 사용하기로 했습니다. 디폴트 인 왼쪽 이미지와 Jellybean theme 인 오른쪽 이미지를 비교해 보세요.






daily build 929 에서는 안드로이드 디바이스에는 이 4.1 theme을 적용할 겁니다. 이것은 standard Android (Google Play) 이든 custom Android devices 이든 (Kindle HD, NOOK HD) 모두에 적용 됩니다. 이렇게 함으로서 전체 안드로이드 스펙트럼에 걸쳐 여러분 앱의 일관성이 유지되도록 할 겁니다.


위 내용은 Android 3.x 이상의 디바이스에 적용 됩니다. 만약에 여러분 앱이 더 오래된 디바이스에서 run 된다면 alerts의 older look을 제공할 겁니다. (older Kindles와 NOOKs 도 마찬가지 입니다.)



아래 왼쪽은 old one 이고 오른쪽은 new one 입니다. 보시면 OK, Cancel 버튼의 위치가 바뀐것을 보실 수 있을 겁니다.




반응형

Comment


Posted on . Written by




Corona daily build 928에 적용될 내용을 공지합니다. 저희들은 스토리보드와 widget library들의 여러 버그들을 반견하고 수정했습니다. 또한 차세대 widgets 를 위한 기반작업으로 widget library에 여러 작업들을 진행하고 있습니다.



이 라이브러리에 대한 어떤 기능들이 퇴보하거나 한 사항들은 없음을 말씀 드리고 싶습니다. 예를 들어 한 버그를 없애기 위해 그 기능을 제한한다든가 하는 것들요. 그래서 이렇게 heads up  정보를 알려 드립니다.



아래가 저희들이 수정한 버그들의 리스트들입니다.

Storyboard

  • 15040 – Storyboard overlayEnded stack overflow when calling gotoScene
  • 17590 – Storyboard immediate scene transitions cause simulator to hang when using Runtime::addEventListener in enterScene.
  • 15384 – modal overlays let touch events through if x < 0
  • 15264 – Storyboard: overlayEnded being called infinitely
  • 15781 – Storyboard transition when using letterbox and universal app
  • 15257 – Memory Leak with storyboard.printMemUsage()
  • 16540 – enterScene called multiple times
  • 14794 – effect time in storyboard.hideOverlay()

Widget

  • 16094 – tableView methods scrollToY() not taking topPadding property into account, and scrollToIndex() not working.
  • 15293 – Inconsistent size property of Button widget’s label) – By adding method setLabelSize( newSize ) method
  • 17029 – tableViews/scrollView widgets scrolling does not stop on tap
  • 16605 – listener not working in newTableView




반응형

Comment


Posted on . Written by


Corona에 몇가지 더 업데이트 된 사항이 적용됐습니다.


첫번째로 Tom 의 iOS 6 FAQ 를 권해드립니다. 애플의 iOS 6와 관련된 아주 많은 버그들이 소개돼 있습니다. 이러한 버그와 관련된 문제를 극복하기 위해 여러방면에서 노력하고 있고 여러분들이 활용할 수 있는 해결 방법들을 소개해 드리고 있습니다.


두번째로 NOOK HD 프로토타입으로 좀 더 많은 테스트를 할 수 있는 기회를 가졌습니다. NOOK team 으로부터 그 기회를 받았죠. NOOK 팀과 같이 해결해야할 많은 이슈들을 찾아냈습니다. 아마 이 문제들은 코로나 뿐만이 아니라 다른 앱에도 적용되는 문제들이 많이 있고 이를 NOOK team 이 해결하기 위해 계속 작업하고 있습니다.


  • The virtual keyboard causes a resize event, causing touches to be incorrectly offset.
  • Resuming an app sometimes shows a black screen if nothing is being animated. This happens rarely — only on specific situations (no animation occurring when app resumes from suspend) — and there’s a simple workaround that I mentioned at the bottom of Monday’s post.
  • The navigation bar half covers a fullscreen video player’s media controls.
  • The native activity indicator is not working


맵뷰에서 맵이 손가락을 따라 움직이지 않는 이슈를 찾아냈습니다. 이것이 NOOK의 문제인지 아니면 우리의 implementation 문제인지 아직 확실하지는 않습니다. (어쨋든 이 맵뷰는 다른 곳에서는 잘 작동합니다. 그리고 NOOK의 old 버전에서도 잘 작동하구요.)


그리고 WebView/WebPopup 이 JNI 와 충돌하는 것도 찾았구요. 이 이슈는 해결을 했구요. daily build 927 부터 적용이 될 겁니다.


우리는 이러한 버그들을 해결하기 위해 NOOK 팀과 계속 작업을 해 나가고 있습니다.


* * *


이 이슈들과 관련해서 이 블로그에 우리의 roadmap 과 어디까지 진행되고 있는지에 대해 공지해 드리겠습니다.


오늘 아침에 이러한 내용들과 또 CoronaGeek 관련된 내용들에 대해 얘기 했습니다. 아래 video를 보시면 그 내용을 보실 수 있습니다.



반응형

Comment


Posted on . Written by


새로나온 NOOK HD 와 NOOK HD+ 와 관련한 업데이트 내용을 알려드립니다. 이 두개의 더 높아진 해상도에 맞게 여러분의 Corona apps를 개발하려면 무엇을 해야 하는지도 알려드릴거구요. 


우선 여러분의 앱을 resubmit 하셔야 합니다. deadline은 10월 15일 까지 입니다. 여러분이 여러분의 앱을 새로운 11월달에 나올 새로운  NOOK HD에서  Storefront에 올려지기를 희망한다면 말이죠. NOOK 개발자가 저희들에게 말하기를 모든 NOOK 개발자들이 새로운 디바이스에 올려질 수 있게 모든 앱을 resubmit 해 주기를 바란다고 하더군요. 그리고 이전의 NOOK device 보다 새로운 device 의 인터페이스가 훨씬 더 좋아졌다고 얘기 했습니다.


두번째로는 여러분이 content scaling을 사용했을 경우는 이미 새로운 NOOK에서도 자동으로 맞춰져서 앱이 가동될 거라는 겁니다. 사실은 NOOK team 이 저희들에게 다른 앱들보다도 코로나 앱에 대해 거의 추가 작업을 하지 않을 수 있도록 작업을 했다고 얘기 했었습니다. 왜냐하면 코로나 앱은 이미 여러 스크린 사이즈나 여러 해상도에서 작동할 수 있도록 하는 로직이 이미 잘 되 있기 때문이죠.

 

여러분이 resubmit 할 때는 daily build 925 이후의 버전을 사용해 주세요.




그 이전 버전에서 빌드하게 되면 새로운 NOOK 에서는 작동을 하지 않는 이슈가 있습니다. 이전에는 이슈되는 사안이 아니었었는데 NOOK 측에서 일부 key API에 변화를 주었거든요. 이러한 이슈가 다시 발생하지 않도록 저희들은 같이 작업을 하고 있습니다.


보다 중요한 것은 저희들이 NOOK HD 의 Prototype을 받았고 daily build 에서 quick test를 이미 완료 했습니다.


지금까지 찾은 것은 작은 이슈 한가지 뿐입니다. 이 이슈는 OpenGL-based apps 에 영향을 미치는데요. (그냥 Corona로만 돼 있는 앱은 지장이 없습니다.) 이 이슈와 관련해서 이미 NOOK team 에게 알려줬습니다. 이 이슈는 아주 간헐적으로 나타나는데요 static content가 display 될 때만 일어납니다. 때때로 앱이 suspended 상태에서 resume 상태로 바뀔 때 blank 화면을 볼 때가 있습니다. 


현재 NOOK Developer team 으로부터 그에 대한 feedback을 기다리고 있는 상황입니다. 그 동안 여러분의 앱이 resume 할 때 static 이라면 지금 새로 빌드해서 submit 하시기를 바랍니다. 약간의 트릭인데요 resume 한 이후에 한번 더 display 해 주는 방법으로 해결할 수 있습니다.


-- Workaround for Nook HD bug
local listener = function( event )
if "applicationResume" == event.type then
display.currentStage.alpha = 0.9

-- Force invalidate 1 second after resume
timer.performWithDelay( 1000, function()
display.currentStage.alpha = 1.0
end)
end
end
Runtime:addEventListener( "system", listener )



반응형

Comment


Posted on . Written by



아이폰 5, iOS6, 구글 맵 등등 화제거리가 많았죠? 일반적으로 잘 모르는 것 중 하나가 구글은 standard Android device에만 구글 맵을 제공하지 customized 된 Android 에는 구글 맵을 제공하지 않고 있습니다. 그래서 결국은 iPhone 5, Kindle Fire, Nook  같은 디바이스에서는 built-in 구글 맵을 서비스 받을 수가 없는 것이죠.



애플의 경우 구글 맵을 버리고 자체 개발한 맵을 사용하게 됐죠? 그런데 아마존이나 Barnes & Noble 같은 경우는 구글의 지배를 받고 있습니다. 그러니까 구글 맵을 사용할 수 없는거죠.(customization 하지 않을 경우)





(Incidentally, in the case of Apple, I think Google made a strategic blunder, perhaps suffering from some foresight. How magical would it have been for a Google Maps app for iOS to be formally announced a week after the iPhone 5 launch? Everyone would have cheered.)



Corona in daily build 903에서 Native Map view를 사용 가능하도록 했는데요, 킨들 파이어와 NOOK 까지 포함해서 모든 안드로이드 디바이스에서 구글 맵을 제공할 수 있는 방법을 찾았습니다. 저희가 standard Android API를 사용한다면 Kindle 과 NOOK은 구글의 정책에 따라서 native map view나 구글 맵을 사용하지 못할 겁니다. 저희는 안드로이드 기기에서 좀 더 native map view를 제대로 사용할 수 있는 방법을 찾기로 작정 했었죠. 그래서 저의만의 implementation을 개발했습니다. 이렇게 함으로서 단지 plain-vanilla Android device 뿐만이 아니라 Kindle 과 NOOK에서도 그 기능을 사용할 수 있게 됐습니다.



그리고 좋은 소식 하나 더 있는데요.




몇주전에 새로운 Kindle Fire HDs 가 나왔습니다. 성능대비 굉장히 매력적인 가격이죠. 이 Kindle Fire HDs는 customized 된 Android 4.x를 사용합니다. 그래서 저희들은 최근에 Android 4.x 버전에 대한 많은 이슈들을 해결했습니다. 그리고 daily build 909부터 시뮬레이터에 두개의 새로운 Kindle Fire HD 스킨을 추가했습니다. (하나는 7 인치짜리고 다른 하나는 9인치 짜리입니다.)  이제 코로나로 좀 더 많은 디바이스를 위한 앱을 개발 하실 수 있습니다.







Barnes & Noble 도 두개의 새로운 NOOK HD 모델들을 오늘 발표했습니다. 두달 전 저희들은 이 device들에 대해 짧게 경험할 기회가 있었습니다. 이제 실제 제품을 볼 수 있게 되서 아주 기쁩니다.



저희들은 이 새 NOOK에서도 잘 작동하는 코로나 앱을 만들 수 있도록 해야 되겠다고 생각했습니다. 저희가 처음 이 기기들에 대해 들었을 때 Barns & Noble 팀에게 저희들이 그 기기에 맞는 기능을 넣기 위해 그 쪽에서 준비해야 할 사항들을 알려 줬었습니다. 이러한 내용들이 다 적용되고 기존의 앱들이 별 일 없이 이들 기기에서 잘 돌아가기를 바랍니다. 만약 제대로 작동 되지 않는 경우가 있다면 저희들 쪽에서 기존의 코로나 앱들이 새로운 NOOK에서도 잘 돌아가도록 작업을 할 겁니다. 그래서 개발자 여러분들이 기존의 앱을 굳이 re-build 할 필요가 없도록 할 계획입니다.



이 기기들은 11월에 출시 됩니다. 아마 이번 겨울에는 아주 많은 HD 태블릿들이 나올 것 같습니다.

반응형

Comment

Corona: iOS 6 and Xcode 4.5 are GM!

2012. 9. 20. 13:15 | Posted by 솔웅


Posted on . Written by



오늘 애플이 공식적으로 iOS 6와 Xcode 4.5를 릴리즈 했습니다.

iOS 6, by default


iOS 6 가 beta 버전이었을 때 특별히 iOS 6에 맞춰코로나를 빌드하는 법에 대해 말씀 드렸었습니다.

daily build 919 부터 모든 디바이스 빌드들은 자동적으로 iOS 6 에 맞게 빌드 됩니다. 더 이상 target iOS SDK를 select 할 필요가 없습니다. 그 선택기능은 단지 iOS 가 beta 일 경우에만 제공하는 한시적인 기능이었습니다.

iOS 6 용으로 빌드하기 위해서는 여러분의 Xcode를 4.5 GM으로 업그레이드 해야 합니다. (4.5 GM seed 와 혼동하지 마세요.) 오늘부터 애플에서 4.5 GM 을 다운받아서 설치하실 수 있습니다.






Fate of iOS 4.3


당분간은 여러분이 빌드하는 앱들이 iOS 4.3 까지 지원이 되겠지만 곧 iOS 5.1 버전까지로 제한이 될 겁니다. 그 이유로는 두 가지가 있습니다.

우선 이전에 제가 설명드린 적이 있는데요. 애플은 iOS의 오래된 버전에 대한 support는 하지 않습니다. 그러니까 굳이 애플이 지원하지 않는 버전까지 우리들이 고민할 필요는 없습니다.


두번째로는 iOS 4.3 을 사용하는 디바이스들은 iOS 5.1 로 업그레이드 할 수 있습니다.


CoronaBuilder


만약 여러분들 중 자동적으로 최신 build가 적용되는 CoronaBuilder를 사용하시는 분들은 다음 daily build 에 몇가지 조정을 하셔야 합니다.


첫번째로 물론 Xcode 4.5GM 으로 우선 업그레이드 하셔야 합니다.


다음으로는 ‘sdkPath’ param 을 수정하셔야 합니다. 새로운 SDK location으로 point 하도록 말이죠. 이전 버전의 Xcode에는 ‘/Developer’에 인스톨 돼 있었을 겁니다. 새로운 버전의 Xcode 는 일반적으로 ‘/Applications/Xcode.app/Contents/Developer’에 위치해 있을 겁니다.


마지막으로 CoronaBuilder 최신버전을 가지고 있으시다면 아마 iOS 6 Beta seeds 에 맞게 빌드해 보셨을 겁니다. 그런 경우 daily build 919를 시작할 때  ‘platformVersion’ key를 먼저 지우셔야 합니다.


Enterprise, armv7s


Corona Enterprise devs도 마찬가지로 우선 Xcode 4.5 GM 으로 업그레이드 된 상황이라야 되구요. 그 다음에 daily build 919를 사용하시면 됩니다.

기존에 존재하는 Xcode project를 빌드하려고 하시면 아마 linker 에러를 보시게 될 겁니다.


ld: file is universal (2 slices) but does not contain a(n) armv7s slice

그 이유는 Xcode는 애플의 새로운 A6 Soc를 사용하는 iPhone 5를 지원해야 하기 때문입니다.

이 chip 은 modern ARM cores에 의해 사용되는 old 'armv7'을 지우ㅝㄴ합니다. 또한 armv7s를 지원하고 VFPv4와 a.k.a vector floating point를 지원합니다.


현재 Corona는 armv7s를 지원하고 있지 않습니다. 조만간 지원할 예정입니다. 그동안 여러분의 Xcode project에 약간의 adjustment를 해 주셔야 합니다. 아니면 여러분의 프로젝트를 CoronaSampleApp Xcode project 를 사용해서 처음부터 다시 빌드하셔도 됩니다.


Xcode 4.5 에서 여러분의 Xcode project를 open 하면 아래와 같은 화면을 보실 겁니다.

armv7과 armv7s 두개가 현재 standard 인것이 보일 겁니다.





여러분이 하셔야 할 일 중 가장 핵심적인 일은 디바이스를 위한 build는 오직 armv7 이라는 겁니다. (armv7s 는 없애 주세요.) 그 작업을 하고 난 후 보이는 화면은 아래와 같을 겁니다.






이 셋업의 의미는 여러분이 Xcode에게 디폴트로 계속 standard instruction set를 사용하고 싶다고 얘기하신 겁니다. 하지만 iOS에는 armv7용으로만 build 하라고 하는 behavior를 override 한 것을 추가 한 것이구요. delete키를 누르면 쉽게 제거할 수 있고 또 추가도 쉽습니다.


여러분의 Xcode project 에 직접 adjustment 한다면 왼쪽 pane에서 Tartget 대신 Project를 선택하시는 것을 잊지 마세요.

반응형

Comment

코로나 Enterprise

2012. 9. 19. 12:44 | Posted by 솔웅


지난 8월 2일 코로나 Enterprise 버전이 발표 됐었습니다.

그동안 제목만 보고 그냥 지나쳤는데 이 Enterprise 버전이 어떤건지 한번 살펴 보겠습니다.


Unlock unlimited mobile development possibilities.


Corona Enterprise builds 는 개발 기간을 혁신적으로 줄여주고 을 다양한  mobile development platform에서 작동할 수 있을 뿐만 아니라 native Object-C 나 java library를 call 하는 기능이 추가 됐습니다. 독립 개발자와 스튜디오 운영자들 그리고 게임이나 앱을 만드는 agences 에게 훨씬 효율적이고 질 높은 서비스를 제공합니다.

optional component인 Corona Builder는 자동으로 빌드하는 기능을 제공해 여러분 팀이 apps and games 쪽에 집중해서 질 좋은 제품을 만들 수 있도록 도와 줍니다.




Enjoy native library access


Corona SDK mobile development의 power 와 speed를 모두 활용하면서 다른 native-C based나 Java library 까지 이용하실 수 있습니다.

특정 기능을 처리하기 위해 여러분만의 코드를 write 하셔야 되나요? 문제 없습니다. 3rd party service를 활용하고 싶으신가요? 아주 간단합니다. build 시 그 라이브러리들을 그냥 include 하시면 됩니다. 필요한 Lua bindings 만 사용하시면 되요.

Corona Enterprise의 architecture를 알고 이것이 어떻게 작동되는지 자세히 살펴보고 싶으시면 documentation를 보세요.




Build on mobile industry standards


Corona Enterprise는 CoronaSDK에서 사용하는 같은 core engine을 사용하고 있습니다. 코로나의 모든 기능들을 활용하실 수 있습니다. 또한 OpenGL, OpenAL, Box2D physics and third party services 그리고 Facebook Connect, Game Center, Google Maps 같은 것들을 활용하는 기능을 추가로 사용하실 수 있습니다.

Corona Enterprise builds는 수시로 업데이트 되는 코로나의 Daily Build와 동기화 되어 있습니다. 그러니까 언제든지 Corona SDK의 최신 버전 및 최신 기능을 모두 활용하실 수 있습니다.



Facilitate effective teamwork


Corona Enterprise의 Hosted Templates는 여러분 팀이 최대한 효율적으로 일할 수 있도록 도와줍니다.

Objective-C 나 Java developer를 여러분의 native library들과 같이 사용하실 수 있고 그것들을 우리의 cloud에 host 할 수 있습니다. 그럼으로서 Lua 개발자들과 디자이너들은 핵심기능과 gameplay 부분에서 Objective-C나 Java 라이브러리와 함께 작업한 사항들을 코로나 시뮬레이터를 통해서 확인하면서 작업하실 수 있습니다.




Automate your builds

Corona Builder는 자동 빌드를 가능하게 해 개발의 효율성을 높였습니다. 그럼으로서 팀원들이 다른 주요한 기능들에 좀 더 집중할 수 있도록 만들었습니다.



반응형

Comment


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!




반응형

Comment


Posted on . Written by

New Release


오늘 new public release (2012.894) 를 다운로드 할 수 있다는 것을 알리게 되어서 아주 기쁩니다. 이번 release에서는 계속해서 Mac OS X 10.8 에서의 Gatekeeper  기능에 대한 작업을 할 수 있도록 하는 보다 완전한 기능이 있습니다. 이전에는 유저가 인터넷에서 받은 앱을 인스톨 하는 것을 막는 Gatekeeper 의 특정 디폴트 기능이 disable 해야만 했는데 이제는 그러한 제약이 없습니다.

그 외에도 수많은 새로운 기능과 버그 수정 등이 있습니다.

아래 그중 몇가지를 소개해 드리겠습니다.


* display.newSprite에 추가된 Multisprite 지원 기능
* display.captureBounds 를 통해서 스크린 일 부분만 capture 하는 기능
* media.save 를 통해 Photo library 지원하는 기능
* physics Box2D library를 v2.2.1로 업그레이드
* Physics Body에 gravityScale 프로퍼티 추가. joint type에 새로운 프로퍼티들 추가
* Mac Simulator workflow 개선 (zoom level 과 skinless windows 등등을 기억하는 기능)
* developer device build 때 Lua 디버그 정보 제공
* 안드로이드 WebViews


전체 수정되거나 추가된 사항들은 Corona release notes 를 통해서 보실 수 있습니다.


iOS 6 Beta


지난 주 애플과 구글이 OS를 업데이트 한 것과 관련 우리가 경험했던 여러 이슈들과 관련 미래의 OS 업데이트에 대비해 우리들이 어떻게 할 것인지에 대한 정책과 관련해 논의 했었습니다.


그것과 관련해서 한가지 어려운 점 중의 하나는 애플은 악명높으리 만치 비밀주의라는 것입니다. 애플은 모든것이 NDA 하에 있기를 원합니다. 예전에는 이 의미는 최신 iSO 베타 버전에서는 device build가 불가능하다는 것이었습니다.


이 불가능을 가능으로 만드는 방법을 찾은 것 같습니다.


다음주 쯤에 standard build와 iOS 6 Beta build 중에 선택할 수 있는 기능을 선보일 것 같습니다. 그러면 여러분은 iOS6 에 맞게 build 해서 테스트 할 수 있습니다. (아래 그림을 보세요.)



이것을 하려면 애플의 iOS Developer Program에 가입돼 있어야 합니다. 애플의 프로그램 멤버여야 하고 애플의 NDA 에 부합해야 여러분 아이폰이나 아이패드에 최신 iOS 베타 버전을 인스톨 할 수 있으니까요.

다음주 중에 이 기능을 여러분께 선 보이겠습니다.


iPhone 5

아이폰 5 에 대해 수많은 루머와 새어나온 사진들이라고 하는 것들이 떠 돌아 다닙니다. 저희들이 알기로는 iPhone 5 는 9월 중순경에 모습을 드러낼 것 같습니다. 그리고 9월 말에 출시될 것 같구요. 주로 애플은 새로운 아이폰을 만들어 낼 때마다 새로운 iOS 버전을 출시했습니다. 그래서 그 쫌에 iOS 6 도 launch 될 것으로 기대하고 있습니다.


시중에 떠돌아 다니는 루머에 의하면 iPhone 5 의  새로운 스크린 사이즈는 1136×640 이 될 겁니다. 그러면 아이폰 4s 의 960×640 와 비교할 때 width 는 같지만 height 가 더 크게 되는거네요. 그러면 홈 스크린에 더 많은 앱 아이콘을 넣을수도 있겠죠.


만약 사실이라면 우리는 새로운 simulator skin을 추가해야 되겠네요. 그리고 안드로이드 쪽도 마찬가지로 1200X800 같은 새로운 스크린 사이즈에 맞는 시뮬레이터 스킨을 제공해야 합니다. 그것 말고도 다른 스크린 사이즈가 있으면 저희에게 알려 주세요. 저희 리스트에 추가해서 곧 시뮬레이터 스킨을 제공할 수 있도록 할 께요.


여기까지가 이번주 소식이구요. 다음주에 Tom이 돌아오면 계속 해 오던 FAQ가 이어질 겁니다.

감사합니다.




반응형

Comment


Corona: WebViews on Android!

Posted on . Written by


월요일입니다. 업데이트 날이죠.


지난주 저는 Mountain Lion 과 관련된 여러 어려움들을 얘기 했었습니다. Mountain Lion은 Mac OS 10.8에 대한 코드 네임이죠. 여러곳에서 report 를 해준 분들에게 감사드립니다. 저희는 이 부분과 관련해서 여러 문제점들을 해결해 나가고 있습니다. 최근의 daily build (868 버전 이후) 들은 10.8 에서 안정적으로 돌아 갑니다.


이렇게 Mountain Lion과 관련해서 작업을 하고 있는 사이에도 우리는 feature cycle 작업을 계속 해 나가고 있습니다. 이 cycle의 우선 순위에 있던 것 중 하나가 안드로이드의 native display object 관련 된 것 입니다. 예를 들어 textfield 처럼 안드로이드 native display에서는 alpha가 지원되지 않았었습니다. 지금은 그것을 지원하도록 만들었습니다.

안드로이드의 WebViews는 아주 중요한 이슈였습니다. 안드로이드에서는 그동안 웹 팝업을 지원했었죠. 하지만 이 팝업만으론 부족했습니다. 이제 그것을 일반 display object 처럼 사용가능합니다. 최금의 builds 에서 안드로이드에서 native display 로서 Webview를 제대로 사용하실 수 있습니다. 지금까지 iOS에서 사용했던 것 처럼요. 이 의미는 여러분은 이제 OpenGL/HTML5 hybrid 앱을 iOS와 안드로이드 모두에서 사용하실 수 있다는 겁니다.


이 웹뷰 기능과 관련해서는 저희들이 특별히 중점을 두고 관리를 했고 그렇게 해서 안드로이드의 웹뷰와 iOS의 웹뷰의 일관성을 유지하는데 많은 노력을 기울였습니다.


이 일들을 하면서 여러 Android 버그들때문에 고생을 했고 또 그것들을 극복해 나갔습니다. 그 버그 중 하나는 HW-accelerated web views와 관련된 아주 치명적인 겁니다. 여러분이 웹뷰에 alpha를 세팅하면 안드로이드에서는 제대로 작동을 하지 않았었습니다. 이것을 제대로 작동시키기 위해서 여러 안드로이드 버그들을 컨트롤 해야만 했었죠. 이제는 HW-acceleration 과 함께 alpha를 콘트롤 할 수 있습니다.


다음에는 뭘까요?


이번주내에 오랫동안 저희의 발목을 잡아왔던 안드로이드의 Mapview와 관련해서 계획이 있습니다. 또한 Box2D library를 최신버전으로 업데이트 할 거구요 그렇게 함으로서 새로 선보이는 최근의 모든 joint type들을 지원하게 될 겁니다.

다음주에는 우리가 Mountain Lion 과 관련해서 일하면서 배운 것들에 대해 얘기를 해 드리겠습니다. 저희는 항상 안드로이드나 iOS 나 그 OS가 업그레이드 됨에 따라 여러분들에게 문제 없이 기능을 사용할 수 있도록 하기 위해 열심히 노력하고 있습니다.


==================================================================


이번주가 지나면 안드로이드에서도 Webview와 Mapview 모두 사용 가능해 지겠군요.

지금은 Corona SDK 프로젝트를 하고 있지 않아서 손 놓은지 오래 됐는데...

갑자기 이 기능을 이용해서 앱을 하나 만들어보고 싶네요.

마침 지금 하는 프로젝트가 Web App 작업이나까 같이 접목해서 여러 시도를 해 볼 수 있을 것 같은데요.

jQuery Mobile과 같이 작업을 할 수도있겠구요.


항상 열정을 가지고 발전하는 Corona SDK 화이팅 입니다.


반응형

Comment

  1. 익명 2012.12.31 11:19

    비밀댓글입니다

    • 솔웅 2013.01.02 13:05 신고

      그런 문제가 있군요.
      저도 Sencha Touch 로 동영상 있는 웹페이지 개발하다가 그런 경우를 당했는데... 그냥 연습하던 거라서 해결하지는 않았습니다.
      http://www.gosolkit.com/sencha/tistory167_03 로 가셔서 두번째 'The Making of Fastbook: An HTML5 Love Story' 를 클릭하신 후 안에 있는 Vimeo 동영상을 클릭하신 후 좌상단에 있는 Blog 버튼을 누르시면 똑같은 현상이 나타납니다.
      저도 직접 해 볼 시간이 없어서 정확한 답변을 드리기가...
      removeSelf 하신다음에 null 처리 하셨나요?
      그러면 혹시 처리되지 않을까 싶은데...

    • 익명 2013.01.03 07:52

      비밀댓글입니다

    • 솔웅 2013.01.03 08:18 신고

      제가 한달에 한번 질문을 취합해서 Corona SDK 측에 보낼 생각이거든요.
      작년에 두번인가 했는데 그 때는 답변을 잘 받았던 것 같습니다.
      최근에는 12월 26일에 보냈는데 지금은 답변을 기다리고 있습니다.
      1월말에 질문을 정리해서 보낼 생각인데요.
      그 때 님의 질문도 넣어서 보낼께요.
      답변을 받을거란 보장은 없습니다.
      답변이 오면 꼭 알려 드리겠습니다.

      감사합니다.

    • 김수연 2013.01.03 10:39

      네 정말 감사합니다. :)

      궁리끝에 일단은 다른 html 파일을 불러 페이지를 변경한 뒤 webView를 없애는 방법으로 해결은 했습니다. 그리 좋은 방법은 아니지만, 그래도 지금으로서는 가장 최선인 듯 합니다.ㅜㅜㅋ

      하루 빨리 이 문제가 해결되면 좋겠네요.

이전 1 2 3 4 5 6 다음