원래는 JQTouch가 공식적으로 아이패드를 지원하지 않기 때문에, 폰갭으로 아이패드 앱을 개발하는 경우는 많지 않습니다.
(물론 Sencha Touch가 있습니다만, 공포의 듀얼 라이센스를 감당해 낼 수 있을 때의 이야기... ㅎㄷㄷㄷ)
하지만 폰갭으로 아이패드 앱. 정확히는 아이폰/아이패드가 동시 지원되는 앱을 만들 경우, 두 기기의 해상도에 맞는 타이틀 이미지(일명 Launch Screen)를 각각 제공해줘야 합니다.
물론 이미지가 하나라도 알아서 리사이징을 해 줍니다만, 로딩 종료 시 순간적으로 이미지가 정상 사이즈로 보여지는 문제가 있기 때문에 가능하면 두 개의 이미지를 제공해 주는 편이 좋습니다.
(뭐 정상 사이즈로 보여지는 그 순간이 채 1초도 되지 않으니 무시해도 되긴 합니다만...)
해결 방법은 간단하게도, info-plist의 Launch Image(UILaunchImageFile)을 아이폰 용과 아이패드 용을 따로 나눠서 잡아주면 됩니다만(참고), 폰갭의 경우 이 부분에 관한 버그가 있어서 아이패드 용 런치 스크린이 적용이 안 될 수도 있습니다.
이 경우 아이패드에서도 임의로 아이폰용 런치 이미지를 사용하죠. 로딩 종료시 이미지가 320px x 460px로 줄어드는 광경을 체험해 보실 수 있습니다.(머엉)
뭐 폰갭의 버그인지 다른 이유인지를 확실히 모르겠습니다만, 해결 방법은 AppDelegate.m에 다음 코드를 추가해 주시면 됩니다.(참고)
- (void)applicationDidFinishLaunching:(UIApplication *)application
{
[ super applicationDidFinishLaunching:application ];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
UIImage* image = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Default-Portrait" ofType:@"png"]];
imageView = [[UIImageView alloc] initWithImage:image];
[image release];
imageView.tag = 1;
[window addSubview:imageView];
[imageView release];
}
}
{
[ super applicationDidFinishLaunching:application ];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
UIImage* image = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Default-Portrait" ofType:@"png"]];
imageView = [[UIImageView alloc] initWithImage:image];
[image release];
imageView.tag = 1;
[window addSubview:imageView];
[imageView release];
}
}
이상입니다.
여담이지만 드디어 제가 개발한 앱이 심사에 들어갔습니다.
빠르면 다음주, 늦어도 다다음주에는 공개가 가능할 것 같네요 ㅋㅋ.
공개가 된다면 홍보 포스팅을 하도록 하겠습니다 ㅎㅎ.