Android Google Crome과 iOS5.1 beta2 Safari와 HTML5 호환성 테스트 비교

오랜만에 포스팅입니다. 사실 꼼수가 생기질 않아서 포스팅이 뜸했네요. 금일   Android용 Google Chrome beta 발표가 있었습니다. HTML5 features 테스트에서 높은 점수가 나와서 많이 화자되고 있네요. iOS 5.1 beta 3의 Safari는 어떨까 궁금해서 저 역시 테스트해보았습니다. 테스트한 곳은 http://www.html5test.com 에서 나온 결과이며, Android용 Google Chrome의 점수는 http://www.ibare.kr/html5/392 포스팅을 참고하시면 되겠습니다. (Chrome 테스트 후 포스팅 해주신 김민태 팀장님에게 감사를 전하며.. =3=33)   1. Total Score Google Chrome이 343점(보너스 10포인트 포함), Safari가 305점(보너스 9포인트 포함)으로 Chrome의 압승이네요. 2. Pasring rules HTML5 Parsing rules에서는 동일한 점수를 나타내었습니다. 두 브라우저 모두 HTML5 태그와 더불어 SVG, MathML 모두 잘 표현되는 것 같습니다. 3. Canvas Canvas 테스트 결과 역시 두 브라우저 동일한 점수를 나타내었습니다. 어느 분의 말씀에 의하면 HTML5에서의 Canvas 지원은 최고라는 말씀을 하시더군요. 4. Video Video 역시 동일한 점수를 보여주고 있습니다. Subtitle은 두 브라우저 모두 지원이 되질 않고 있네요. 다른 점은 Chrome의 경우 논란이 많았던 MPEG-4, Ogg Theroa가 지원되지 않으며, Safari의 경우 Ogg Theora, WebM를 지원하지 않는…

UINavigationController에 UIGestureRecognizer 등록하기

사내에서 Path 2 리뷰를 했습니다. 리뷰 포스트는 여기를 누르시면 보실 수 있습니다. 포스트에 등록된 댓글에 UINavigationController에 UIGestureRecognizer 등록한 부분에 대한 상세한 설명 부탁하신 분에게 도움이 되었으면 합니다. 사실 퀵리뷰를 위한 Demo여서 견고하게 구현하지 않았고 설명에서 제외했었습니다. 참고하셔서 더 멋진 앱 만들어주세요. 🙂   1.UINavigationController를 상속받는 클래스를 생성합니다. UINavigationController의 구조에 대한 Documentation을 보면 알겠지만 UINavigationController는 UINavigationController에 설정되는 rootViewController보다 상위. 즉, 부모 클래스입니다. 따라서 터치 등의 이벤트를 받는 UIResponder는 UINavigationController의 view를 먼저 거치게 됩니다. 2. 생성된 클래스의 – (void)loadView; 또는 -(void)viewDidLoad; 메소드에 UISwipeGestureRecognizer를 정의합니다. 물론 – (void)touchesBegin: 등의 터치 이벤트 관련 메소드로 정의를 하셔도 됩니다만 손이 많이 갈 수 있어서 좌/우 각각에 대한 UISwipeGestureRecognizer를 이용하였습니다. – (void)loadView { [super loadView]; UISwipeGestureRecognizer *leftSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(onList)]; leftSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionLeft; [self.view addGestureRecognizer:leftSwipeGestureRecognizer]; [leftSwipeGestureRecognizer release]; UISwipeGestureRecognizer *rightSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(onMenu)]; rightSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionRight; [self.view addGestureRecognizer:rightSwipeGestureRecognizer]; [rightSwipeGestureRecognizer release]; }   3. 좌/우 Gesture에 따라 UINavigationController의 view의 frame 값을 애니메이션을 적용하여 변경합니다. 사실상…

Path 2에 적용된 Animation메뉴 UI!

GitHub에 오픈소스로 공개되었습니다. Path2에 적용된 메뉴 외에도 두 가지 타입이 더 존재하네요. 정말 멋지네요. 공개한 개발자와 공개를 하게 허락(?)을 해줬을 회사나… 우리나라 회사들도 이런 공헌에 대해서 소극적이지 않았으면 좋겠습니다 https://github.com/levey/QuadCurveMenu

Customizing UITabBarController & TabBar 숨기기

UIKit의 UITabBarController는 분명 아주 편리한 Controller임에 틀림이 없다. 하지만 그라데이션이 적용된 검은 바(Bar)를 다른 색상으로 변경할 수 없고 이쁘게 디자인한 이미지는 음각처리를 해버리며, 글자 크기는 고정되어 있다는 단점이 있다. 디자이너들은 분명 이런 부분이 불만일테고, 개발자는 쉽게 쓸 수 있는 UITabBarController를 포기하거나 힘들게 Customizing 할 수 밖에 없다. 더욱이 UITabBarController의 tabBar에 addSubview나 insertSubview 하는 방법은 iOS4까지 유효하였으나 iOS5에서는 아래와 스크린샷과 같이 적용한 이미지는 사라지고 TabBar만 덩그러니 보여지게 되는 문제점이 있다. 실제로 여러 앱들이 이런 현상이 있었고 아직도 고쳐지지 않은 앱들이 많이 존재한다.   그럼 방법이 없는 것일까? 이 때문에 ‘UITabBarController를 내 손으로 만들어야하는가?’ 라는 생각에 한숨만 나올 것이다. 하지만 아래와 같이 구현하면 UITabBarController를 사용할 수 있으며 이미지도 올릴 수 있어 쉽게 사용이 가능할 것이다. 1. UITabBarController를 상속받는 Class를 생성한다.   2. UITabBarController는 UIViewController를 상속받기 때문에 일반적으로 사용하는 ViewController와 같은 구조를 가지고 메소드가 호출된다. 따라서 loadView나 viewDidLoad에서 TabBar 영역을 대신할 View를 하나 생성하여 self.view에 addSubview한다. TabBar의 높이는 49 픽셀이다. – (void)loadView   …

iOS UI에 사용된 기본 이미지(Artwork) 저장하기

iOS 개발을 하다보면 간혹 iOS 기본 UI에 포함된 이미지가 필요할 때가 있습니다. 저 역시 빨간 Badge 배경이미지가 필요해서 이래저래 검색을 해봤는데요 멋진 프로젝트를 발견했습니다. https://github.com/0xced/UIKit-Artwork-Extractor 위 사이트 코드를 내려받으셔서 아래와 같이 하시면 쉽게 이미지를 내려받을 수 있습니다.   1. 코드를 컴파일해서 시뮬레이터에서 실행. 참고 시뮬레이터의 Device를 iPhone, iPhone(Retina), iPad 할 때마다 저장할 수 있는 이미지는 달라집니다. 즉, iPhone에서 수행 시 3GS 이미지 (320×480 기준). iPhone(Retina)에서 수행 시 4 이미지 (640×960 기준). 2. 원하는 이미지를 선택하고 화면 상단 오른쪽의 “Save” 버튼 터치. 이미지가 저장되는 경로는 프로젝트의 AppDelegate에 정의된 -saveDirectory: 메소드에 정의되어 있습니다. 제 경우에는 데스크탑(Desktop)의 “iPhone Simulator 5.0 artwork”에 디렉토리가 생성되고 그 내부에 저장이 되었습니다. 3. iPhone4용 이미지가 필요한 경우에는 시뮬레이터 옵션의 Hardware > Device에서 iPhone(Retina)를 선택해서 앱 실행하고 1. 2. 과정을 그대로 하시면 쉽게 이미지를 가져올 수 있습니다. 4. 그 외에 이모티콘 이미지와 버튼 이미지도 생성이 가능하여 여러모로 쓸모있는 프로젝트로 보입니다. 참고 iOS UI에 사용된 Artwork의 경로와 파일명은 http://www.idownloadblog.com/2008/10/05/logo-images-and-icons-locations-on-your-iphone/ 에…