사이트 내 전체검색
Corona와 Phonegap, 그리고 Titanium을 비교한다면? 폰갭,티타니움 비교 (번역)
로빈아빠
https://cmd.kr/iphone/42 URL이 복사되었습니다.

본문

Corona와 Phonegap, 그리고 Titanium을 비교한다면?"
  • 등록일시2009-09-27
  • 작성자
  • 조회수3093
첨부파일 없음

저는 웹 디벨로퍼이고 제 웹제품들을 iPhone으로 옮기고 싶습니다. 제품들 중 하나는 구글 맵스(Google Maps) 같은 것인데요: 폰의 스크린 상에 맵을 보여주는 것입니다. 맵을 드래그 하거나 맵 크기를 조정할 수 있고, 맵에 추가되는 정보를 볼 수도 있습니다.

HTML와 CSS, 그리고 Javascript를 이용해서 iPhone 고유의 앱들을 개발할 수 있게 해주는 기술들이 있는걸로 알고 있는데요. 다음의 것들이 제가 알고 있는 것들입니다:

위의 것말고 다른 것들 중에 이와 비슷한 제품들이 더 있나요? 있다면 그것들 사이의 차이점은 무엇인가요? 그리고 그중에 제가 어떤 것을 선택해야 할까요?

"


noimg.gif

Titanium에서 네이티브 맵키트(native mapkit)가 지원됩니다.

"
2010-01-01
댓글 | 추천 [0]
noimg.gif

objective c를 배우시고 네이티브 앱(native app)들을 프로그래밍하셔야 합니다. 님이 생각하기에 문제를 일으키지 않을 것 같은 것들이라고 해서 다 믿으면 안 됩니다. 가장 쉬운 방법은 Apple 고유의 네이티브 툴들과 언어를 사용하는 것입니다. 저는 단 3줄의 코드 또는 상황에 따라서는 코드를 전혀 쓰지 않고도 님의 100줄이나 되는 javascript와 똑같이 할 수 있습니다. 몇몇 지침서들을 참고하세요. - 만약 님이 javascript를 이해한다면 objective c는 그리 어려운 것이 아닙니다. 제2의 해결책들은 다 끔찍한 것들 뿐이에요.

"
2009-11-14
댓글 | 추천 [0]
noimg.gif

님이 언급했던 해결책 중 아무 것도 님이 OS 3.0에 도입된 맵키드 프레임워크(MapKit framework)에 직접 접속할 수 있도록 해주지 못합니다.

예를 들어, 구글 래티튜드(Google Latitude) 같은 구글 맵스 HTML 위젯(Google Maps HTML widget)들은 맵키트만큼 좋지 못하지 때문에, 네이티브 Cocoa 터치 애플리케이션(native Cocoa touch application)을 개발하거나 맵키트 통합(MapKit integration)를 추가하는 것이 가장 좋죠. PhoneGap은 이런 방식으로 (오픈소스이기 때문에 디폴트에 의해서) 확장가능합니다.

수정: 현재는 Titanium이 Mapkit를 위한 지원사항을 가지고 있습니다.

"
2009-09-27
댓글 | 추천 [0]
noimg.gif

iphone 위젯들인 것처럼 보이는 HTML5 위젯들을 만드는 것이 한가지 방법이겠지만, 그것들이 똑같이 잘 기능하도록 만들 수 있는가가 문제가 될 수 있겠죠. html5 애니메이션들(even plain View Transitions)의 성능, 긴 목록에 대한 스크롤링, 그리고 제스처(gesture)에 대한 반응성이 그리 훌륭하지 못하죠. 많은 iPhone 유저들이 차이점을 느끼게 될 겁니다.

또한 특정 플랫폼에 고유한 코드를 사용하며 유용성 문제까지도 초래할 수 있는 다른 디바이스들에 의해 지원되는 제스처들에 있어서도 차이점이 있습니다.

저는 그냥 네이티브 앱(native app)들 을 사용하고 싶네요.

"
2010-02-17
댓글 | 추천 [0]
noimg.gif

저는 단지 가장 많은 추천표를 받은 맨 위에 위치한 답변에 대한 코멘트를 쓰기 위해 stackoverflow에 등록했습니다. stackoverflow의 단점은 새로운 사람들이 코멘트를 쓸 수 없다는 겁니다. 따라서 저는 지금 이 코멘트를 하나의 답변에 보다 가깝게 만들어야 하죠.

Rory Blyth님의 답변은 위의 두 javascript 모바일 프레임워크들에 대한 몇몇 유효한 정보를 포함하고 있습니다. 하지만, 그가 말하는 핵심들은 올바른 것이 아닙니다. 사실, Titanium과 PhoneGap는 서로 다르다기보다는 오히려 유사하다고 봐야하죠. 두가지 모두 javascript API들을 통해 모바일 폰 기능들을 접하게 해 줍니다. 그리고 애플리케이션의 로직(논리, html, css, javascript)은 네이티브 WebView 컨트롤러 안에서 실행되죠.

  1. PhoneGap은 그저 웹 앱의 네이티브 레퍼(wrapper)가 아닙니다. "웹 앱"은 위치정보, 가속도계 카메라, 컨택, 데이터베이스, 파일 시스템 등의 모바일 폰 기능들에 접속하죠. 기본적으로 모바일 폰 SDK가 제공하는 모든 기능들은 javascript로 "연결"될 수 있습니다. 반면, 모바일 웹 브라우저 상에서 구동되는 일반적인 웹 앱들은 이러한 기능들에 대부분 접속할 수 없습니다. (보안이 첫번째 이유이지요). 그러므로, PhoneGap 앱은 웹 앱이라기보다는 일종의 모바일 앱에 더 가깝습니다. 님은 확실히 PhoneGap API들을 전혀 사용하지 않는 웹을 래핑(wrap)하는데 PhoneGap을 사용할 수 있습니다. 하지만 그게 PhoneGap의 원래 목적은 아니라는 겁니다.

  2. Titanium은 님의 html, css 또는 javascript 코드를 절대로 "네이티브 비트들" 안으로 컴파일해 주지 않습니다. 그것들은 리소스들로서 함께 묶여서 실행가능한 번들(executable bundle)로 보내집니다. 임베디드 이미지 파일(embedded image file)처럼 말입니다. 애플리케이션이 구동할때, 이 리소드들이 UIWebView 컨트롤러 안으로 로드되고 그 안에서 (물론, 네이티브 비트들이 아닌 javascript로서) 구동됩니다. javascript를 네이티브 코드로 바꿔 주는 (혹은 objective-c로 바꿔주는) 컴파일러는 없습니다. 이러한 일이 PhoneGap에서도 같은 방식으로 이루어 집니다. 아키텍처적인 관점에서 볼때, 위의 두가지 프레임워크들은 매우 유사합니다.

자, 그럼 그것들 사이에 차이점은 존재하는 것일까요? 예, 있습니다. 첫째, Titanium은 PhoneGap에 비해 좀 더 많은 모바일 폰 기능들을 javascript와 연결시켜 주기 때문에 기능이 좀 더 풍부한 것처럼 보입니다. 대부분 알고 계시겠지만, PhoneGap은 그리 많은 네이티브 UI 컴포넌트들을 javascript로 노출시키지 않습니다. 반면, Titanium은 포괄적인 UI API들을 javascript 안으로 호출하여 모든 종류의 네이티브 UI 컨트롤러들을 생성하고 제어할 수 있게 해주죠, 이러한 UI API들을 활용하여, Titanium 앱은 PhoneGap보다 좀 더 "네이티브"하게 보일 수 있는 것이죠. 둘째, PhoneGap은 Titanium보다 모바일 폰 플랫폼을 좀 더 지원합니다. PhongGap API들은 좀 더 포괄적이며 따라서 iPhone, Android, Blackberry, Symbian 등의 다양한 플랫폼들 상에서 사용될 수 있습니다. Titanium은 주로 iPhone과 Android을 대상으로 하고 있죠. 최소한 현재는 그렇습니다. Titanium 몇몇 API들은 특정 플랫폼에 고유한 특성을 가지고 있습니다. (예를 들어, iPhone UI API들). 이러한 API들을 사용하면 애플리케이션의 크로스 플랫폼(cross-platform) 기능이 저하되죠.

따라서, 만약 님이 님의 앱을 좀 더 "네이티브"하게 보이도록 하고 싶다면, Titanium이 좋은 선택이 되겠죠. 그리고 만약 님의 앱을 다른 플랫폼으로 보다 쉽게 "포트(port)"하고 싶다면 PhoneGap가 좋은 선택이 될 겁니다.

"
2009-11-27
댓글 | 추천 [0]
noimg.gif

제가 PhoneGap에 알고 있는 바에 따르면, 상당수의 iPhone API들에 Javascript API들이 제공됩니다.

Titanium은 웹 개발 경험을 가지고 있는 사람들에게는 더 쉬울 겁니다. 그것은 TabView 애플리케이션을 만드는 단순한 하나의 XML 파일이고, 콘덴츠 영역에 있는 모든것들은 HTML/JS에 의해 제어됩니다. 제가 아는 또 한가지는, Titanium은 몇몇 프레임워크들이 특정javascript에 (특히, 위치정보와 폰 ID 등에) 접속할 수 있도록 해 줍니다.

업데이트: Titanium의 0.8버전 프레임워크에는 Maps API가 추가되었습니다.

"
2009-10-26
댓글 | 추천 [0]
noimg.gif

제가 알고 있는 바에 따르면, 두가지의 차이는 다음과 같습니다. :

  • PhoneGap은 기본적으로 웹 앱들인 네이티브 레퍼(native wrappers)들을 만들어 냅니다.. 그것은 WhateverYourPlatformIs 프로젝트를 뱉어내고(spit out) 님은 그것을 빌드 및 디플로이(deploy)하죠. 만약 지금 우리가 iPhone에 대한 얘기를 하고 있는 것이라면, (제가 많은 시간을 쏟아붓고 있는 영역이기 때문에 말씀드릴 수 있는 것은) 그것이 하나의 웹 앱 런처(웹 앱 고유의 Springboard 이이콘을 얻는 지름길이기 때문에 하나의 네이티브 앱처럼런칭할 수 있습니다)를 만드는 것과 그리 다르지 않다는 겁니다. "앱" 그 자체는 여전히 html/js 등입니다. 그리고 호스트 부라우저 컨트롤(hosted browser control) 안에서 구동되죠. 이것 이외에 PhoneGap이 제공해 주는 것은 그것이 JavaScript와 네이트비 API들 간의 연결고리(bridge)가 된다는 것입니다. 따라서 님은 PhoneGap APIs에 대해여 JavaScript를 쓰는 거죠. 그리고 그후 PhoneGap이 적절하고 상승하는 네이티브 호출을 만듭니다. 이런 측면에서 그것은 보통의 구식 웹 앱을 디플로이하는 것과는 다릅니다.

  • Titanium 소스는 네이티브 비트(native bit)로 컴파일됩니다. 즉, 님의 html/js 등이 그저 단순히 하나의 프로젝트에 첨부되어 웹 브라이저 컨트롤 안으로 호스팅되는 것이 아니라는 겁니다. - 그것들이 네이티브 앱들로 바뀌는 것이죠. 이 말의 의미는, 예를 들어, 님 앱의 인터페이스가 네이티브 UI 컴포넌트들로 구성될 것이라는 겁니다. 네이티브 앱 없이도 네이티브하게 보이고 네이티브하게 느껴지도록 만드는 방법이 몇 가지 있습니다. 하지만... 글쎄요... 보통은 그게 악몽이 될 때가 많죠.

위 두가지의 유사점은 님이 가지고 있는 모든 것들을 전형적인 웹 기술들(html/js/css 그리고 기타 등등)을 사용해서 쓸 수 있다는 것이죠. 그리고 커스텀 JavaScript API를 통해 네이티브 기능들에 접속할 수 있다는 겁니다.

하지만, PhoneGap 앱(아니면 PhoneGapp이 맞나요? 잘 모르겠네요...)들은 웹 앱으로서 그 생명을 시작하고 또한 웹앱으로서 그 생명이 끝나죠. iPhone 상에서는, 님의 html/js/등등이 단지 UIWebView 컨트롤 안에서 실행되는 것이고, PhoneGap JavaScript API들 상에서 님의 js 호출들이 네이티브 API로 라우트(routed)됩니다.

Titanium 앱들은 네이티브 앱들이 됩니다. - 그것들은 웹 디벨로포먼트 기술(web dev tech)을 이용하여 개발됩니다. .

이것이 실제로 의미하는 바는 뭘까요?

  1. Titanium 앱은 하나의 "실제" 앱처럼 보일 겁니다. 왜냐하면 궁극적으로 그것은 정말로"실제" 앱이니까요.

  2. PhoneGap 앱은 브라우저 컨트롤 안에서 호스팅되는 하나의 웹 앱으로 보일 겁니다. 왜냐하면 궁극적으로 그것은 정말로 브라우저 컨트롤 안에서 호스팅되는 웹 앱이니가요.

님에게 적합한게 어떤 건지 생각해 보세요.

  • 만약 님이 웹 디벨로프먼트 기술들을 사용해서 네이티브 앱들을 쓰기 원한다면, Titanium이 가장 좋은 선택이 되겠죠.

  • 만약 님이 현실적으로 멀티플 플랫폼들(iPhone, Android, Blackberry, 그리고 님이 포함시키고자하는 어떤 것들)로 디플로이할 수 있는 웹 디벨로프먼트 기술들을 사용해서 앱을 쓴다면, 그리고 통일된 JavaScript API를 통하여 네이티브 플랫폼 기능들(GPS, 가속도계 등)의 서브셋에 접속하고자 한다면 아마 PhoneGap을 사용하고 싶어지겠죠.

님이 다음과 같은 질문을 할 수도 있겠죠: 왜 제가 웹 상에서 호스팅되는 웹 앱 대신 PhoneGapp(그냥 이 이름으로 쓰기로 합시다)를 쓸거라고 생각하죠? 그렇게 하지 않아도 여전히 몇몇 네이티브 다바이스 기능들에 접속할 수 있지 않나요? 또한 유저로 하여금 제 "네이티브" 앱을 다운받아 설치하게 하는 것 대신 그냥 편리하게 웹 디벨로프먼트를 할 수도 있지 않나요?

이에 대한 답변을 하겠습니다: 왜냐하면 님의 PhoneGapp를 App Storedp 제출해서 돈을 받을 수 있기 때문이죠. 또한 유저 님의 앱을 쉽게 잊을 수 없도록 해주는 런처 아이콘(launcher icon)을 얻을 수도 있습니다. (저는 북마크는 잘 있어도 앱 아이콘은 잘 안 잊게 되더군요).

님은 확실히 님의 웹호스팅된 웹 앱에 접속하는 것을 유료화할 수 있습니다. 하지만 실제로 얼마나 사람들이 이러한 접속을 위한 모든 과정을 선뜻 진행하려 할까요? App Store를 이용하면, 앱을 하나 골라서 "구입" 버튼을 치고, 비밀번호를 입력합니다. 그리고 그걸로 끝이죠. 설치됩니다. 그리고 몇 초 후면 사용할 수 있습니다. 만약 제가 다른 누군가가 운영하는 모바일 웹 트랜젝션(거래) 인터페이스를 사용해야 한다면, 제 이름, 주소, 전화번호, CC넘버 등을 입력해야 하죠. 물론 그렇게 하고 싶지 않지만 그렇게 해야 하죠. 그리고 결론적으로 저는 이 모든 과정을 진행하지 않을 겁니다. 또한, 저는 Apple을 믿습니다 - 저는 스티브 잡스(Steve Jobs)가 제 개인정보에 로그인해서 제 CC에다 외설적인 잡지구독 비용을 청구하지는 않을 거라고 확신해요.

어쨌든, 웹 디벨로프먼트 기술이 관련되어 있다는 것만 제외하면,PhoneGap과 Titanium는 매우 다릅니다. - 단지 표면적으로 비교할 경우에 말입니다.

저는 웹 앱들을 싫어합니다. 그리고 만약 님이 iTunes App Store 리뷰들을 읽어 보시면, 유저들이 이런 점들을 꽤 많이 지적하고 있습니다. 제 폰 상에는 그냥 쓰레기 같은 앱들이 몇개 있습니다. 물론 그 앱들의 이름은 거론하지는 않겠습니다. 그리고 그것들은 UIWebView 인스턴스들 안으로 호스팅되는 웹 앱들입니다. 만약 제가 웹 앱을 하나 사용하고 싶어진다면, 저는 Safari를 열어서 거기 있는 것들 중에서 하나 찾을 겁니다. 저는 iPhone-y 물건들이 필요해서 iPhone을 하나 샀습니다. 그리고 Safari 안에 있는 아무 멎진 구글 웹 앱을 사용하는데 있어 아무런 문제가 없죠. 하지만 만약 구글이 웹 앱을 네이티브 앱인 것처럼 보여주면서 Springboard 상에 몰래 북마크(즐겨찾기)를 추가한다면 사기당한 느낌이 들겠죠.

이제 가야겠네요. 안 그러면 제 여자친구로부터 "제발 컴퓨터 좀 그만하고 3초만이라도 내 얼굴 좀 봐 주면 안돼 이 자식아"라고 바가지를 긁을게 뻔하니.

"
2009-10-04
댓글 | 추천 [0]
noimg.gif

Corona SDK (Ansca Mobile)는 코드 언어로서 Lua를 사용합니다. Lua에 대한 더 상세한 정보를 원하시면 lua.org를 참고하세요.

추가적인 웹 통합(web integration)을 계획하고 UI에 고유한 요소들을 추가하려할 때, 우리는 웹 기반 기술에 반하여 게임개발 같은 그래픽 강화 애플리케이션(graphics-intensive application)에 초점을 두는 경향이 있죠. 즉, 전적으로 Javascript/HTML/CSS 안에서만 Corona 앱들을 쓰는 사람들에 대해서 생각하지는 않는다는 겁니다.

"
2010-01-11
댓글 | 추천 [0]
noimg.gif

댓글목록

등록된 댓글이 없습니다.

Search

Copyright © Cmd 명령어 3.146.206.246