Programing

코로나, 폰갭, 티타늄 비교

lottogame 2020. 3. 11. 00:41
반응형

코로나, 폰갭, 티타늄 비교


저는 웹 개발자이며 웹 제품을 iPhone으로 옮기고 싶습니다. 제품 중 하나는 Google지도와 같습니다. 휴대 전화 화면에지도 표시를 사용하면지도를 드래그하거나 크기를 조정하고지도에 추가 한 정보를 볼 수 있습니다.

HTML, CSS 및 Javascript를 사용하여 기본 iPhone 앱을 개발할 수있는 기술이 있다는 것을 알고 있습니다. 몇 가지를 확인했습니다.

다른 유사한 제품이 있습니까? 그들 사이의 차이점은 무엇입니까? 어느 것을 선택해야합니까?


나는 가장 많이 투표 된 답변에 댓글을 달기 위해 stackoverflow에 등록했습니다. 나쁜 점은 스택 오버플로로 인해 새로운 회원이 의견을 게시 할 수 없다는 것입니다. 따라서이 의견을 답변처럼 보이게 만들어야합니다.

Rory Blyth의 답변에는 두 가지 자바 스크립트 모바일 프레임 워크에 대한 몇 가지 유효한 점이 포함되어 있습니다. 그러나 그의 요점은 정확하지 않습니다. 진실은 티타늄과 PhoneGap이 다른 것보다 더 비슷하다는 것입니다. 둘 다 자바 스크립트 API 세트를 통해 휴대 전화 기능을 노출하며 애플리케이션의 로직 (html, css, javascript)은 기본 WebView 컨트롤 내에서 실행됩니다.

  1. PhoneGap은 단순한 웹앱 래퍼가 아닙니다. PhoneGap 자바 스크립트 API를 통해 "웹 앱"은 위치 정보, 가속도계 카메라, 연락처, 데이터베이스, 파일 시스템 등과 같은 휴대폰 기능에 액세스 할 수 있습니다. 기본적으로 휴대폰 SDK가 제공하는 모든 기능은 자바 스크립트 세계. 반면에 모바일 웹 브라우저에서 실행되는 일반 웹 앱은 이러한 기능의 대부분에 액세스 할 수 없습니다 (보안이 주요 이유 임). 따라서 PhoneGap 앱은 웹 앱보다 모바일 앱에 가깝습니다. PhoneGap을 사용하여 PhoneGap API를 전혀 사용하지 않는 웹 앱을 래핑 할 수는 있지만 PhoneGap이 만들어진 것은 아닙니다.

  2. 티타늄은 HTML, CSS 또는 자바 스크립트 코드를 "네이티브 비트"로 컴파일하지 않습니다. 이들은 포함 된 이미지 파일과 매우 유사하게 실행 가능한 번들에 리소스로 패키지됩니다. 응용 프로그램이 실행될 때 이러한 리소스는 UIWebView 컨트롤에로드되어 네이티브 비트가 아닌 자바 스크립트로 실행됩니다. javascript-to-native-code (또는 to-objective-c) 컴파일러와 같은 것은 없습니다. 이것은 PhoneGap에서도 같은 방식으로 이루어집니다. 아키텍처 관점에서 보면이 두 프레임 워크는 매우 유사합니다.

자, 그것들이 다른가요? 예. 첫째, 티타늄은 더 많은 휴대 전화 기능을 자바 스크립트에 연결함으로써 PhoneGap보다 기능이 더 풍부한 것으로 보입니다. 가장 눈에 띄게 PhoneGap은 많은 네이티브 UI 컴포넌트를 자바 스크립트에 노출시키지 않습니다. 반면, 티타늄에는 모든 종류의 기본 UI 컨트롤을 만들고 제어하기 위해 자바 스크립트로 호출 할 수있는 포괄적 인 UI API가 있습니다. 이러한 UI API를 사용하여 Titanium 앱은 PhoneGap 앱보다 "기본"처럼 보일 수 있습니다. 둘째, PhoneGap은 티타늄보다 더 많은 휴대 전화 플랫폼을 지원합니다. PhoneGap API는보다 일반적이며 iPhone, Android, Blackberry, Symbian 등과 같은 다양한 플랫폼에서 사용할 수 있습니다. 티타늄은 현재 적어도 iPhone과 Android를 대상으로합니다. 일부 API는 iPhone UI API와 같이 플랫폼에 따라 다릅니다.

따라서 앱에 대한 관심이 더 "네이티브"인 것처럼 보이게하려면 티타늄이 더 나은 선택입니다. 앱을 다른 플랫폼으로보다 쉽게 ​​"포팅"하려면 PhoneGap이 더 좋습니다.

2010 년 8 월 13 일 업데이트 됨 : Mickey의 질문에 대한 티타늄 직원의 답변으로 연결하십시오.

2010 년 12 월 4 일 업데이트 : 이 게시물의 정보를 최신으로 유지하기 위해이 게시물을 매년 검토하기로 결정했습니다. 초기 게시물의 일부 정보를 구식으로 만든 많은 것들이 일년에 변경되었습니다.

가장 큰 변화는 티타늄에서 나왔습니다. 올해 초 Appcelerator는 Titanium 1.0을 출시했는데,이 버전은 아키텍처 관점에서 이전 버전과 크게 다릅니다. 1.0에서는 UIWebView 컨트롤이 더 이상 사용되지 않습니다. 대신 UI 함수에 대해 Titanium API를 호출합니다. 이 변경은 몇 가지를 의미합니다.

  1. 앱 UI가 완전히 기본이됩니다. 기본 Titanium API가 모든 UI 요구를 제어하기 때문에 앱에 더 이상 웹 UI가 없습니다. 티타늄은 "Cross-Platform Native UI"프론티어를 개척함으로써 많은 크레딧을받을 가치가 있습니다. 네이티브 UI의 모양과 느낌을 선호하지만 공식 프로그래밍 언어는 싫어하는 프로그래머에게 대안을 제공합니다.

  2. 웹보기가 사라지면 앱에서 HTML 또는 CSS를 사용할 수 없습니다. (참고 : 티타늄에서 웹보기를 만들 수는 있지만 웹보기에서 활용할 수있는 티타늄 기능은 거의 없습니다.) 티타늄 Q & A : HTML 및 CSS는 어떻게 되었습니까?

  3. DOM 객체가 있다고 가정하는 JQuery와 같은 널리 사용되는 JS 라이브러리를 사용할 수 없습니다. 코딩 언어로 JavaScript를 계속 사용합니다. 그러나 이것은 웹 프로그래머로 Titanium 1.0을 사용한다면 활용할 수있는 유일한 웹 기술입니다.

티타늄 비디오 : 티타늄 1.0의 새로운 기능.

이제 Titanium 1.0에서 JavaScript를 "네이티브 비트"로 컴파일합니까? 아닙니다. Appcelerator는이 개발자 블로그 : Titanium Guides Project : JS Environment 에서이 문제를 해결했습니다 . 우리 프로그래머는 마케팅 부서보다 ​​프로그래머가 더 많습니까? :-)

PhoneGap으로 이동하십시오. PhoneGap에 대해 할 말이 많지 않습니다. IBM은 올해 말 IBM이 기점에 올 때까지 PhoneGap 개발이 그다지 활발하지 않다는 것을 알고 있습니다. 일부 사람들은 IBM이 Nitobi보다 PhoneGap에 더 많은 코드를 제공한다고 주장했습니다. 그것이 사실인지 아닌지에 따라 PhoneGap이 활발히 개발되고 있음을 아는 것이 좋습니다.

PhoneGap은 웹 기술, 즉 HTML, CSS 및 JavaScript에 기반을두고 있습니다. PhoneGap은 Titanium이 수행하는 동안 기본 UI 기능을 JavaScript에 연결하려는 계획이없는 것처럼 보이지 않습니다. 웹 UI는 여전히 성능과 기본 모양과 느낌면에서 기본 UI보다 뒤떨어 지지만 이러한 격차는 급격히 줄어들고 있습니다. 웹 기술에는 성능 측면에서 모바일 웹 UI에 대한 밝은 기능을 보장하는 두 가지 트렌드가 있습니다.

  1. 인터프리터에서 가상 머신으로 이동하는 JavaScript 엔진. JavaScript는 빠른 실행을 위해 원시 코드로 JIT 컴파일됩니다. Safari JS 엔진 : SquirrelFish Extreme

  2. 웹 페이지 렌더링은 CPU 의존에서 GPU 가속 사용으로 이동합니다. 하드웨어 가속 덕분에 페이지 전환 및 3D 애니메이션과 같은 그래픽 집약적 인 작업이 훨씬 매끄러 워집니다. Chrome의 GPU 가속 합성

데스크톱 브라우저에서 시작된 이러한 개선 사항은 모바일 브라우저에 빠르게 제공됩니다. 실제로 iOS 3.2 및 Android 2.0 이후로 모바일 웹 뷰 컨트롤은 훨씬 더 성능이 우수하고 HTML5에 친숙해졌습니다. 모바일 웹의 미래는 매우 유망하여 많은 사람들을 끌어 들이고 있습니다. JQuery는 최근 모바일 웹 프레임 워크를 발표했습니다. UI 가젯을 제공하는 JQuery Mobile과 전화 기능을 제공하는 PhoneGap을 사용하면 두 가지를 결합하여 완벽한 모바일 웹 플랫폼을 만들 수 있다고 생각합니다.

Sencha Touch 를 다른 모바일 웹 UI 가젯 프레임 워크로 언급해야합니다 . Sencha Touch 버전 1.0은 최근 GPLv3가 포함 된 이중 라이센스 모델로 출시되었습니다. Sencha Touch는 JQuery Mobile과 마찬가지로 PhoneGap 과도 잘 작동합니다.

나와 같은 GWT 프로그래머 라면 GWT 를 사용하여 모바일 웹 앱을 만들기위한 오픈 소스 프로젝트 인 GWT Mobile 을 확인하십시오 . GWT에서 PhoneGap을 사용할 수있는 PhoneGap GWT 래퍼가 포함되어 있습니다.


내가 수집 한 것에서 두 가지의 차이점은 다음과 같습니다.

  • PhoneGap은 기본적으로 여전히 웹 응용 프로그램에 대한 기본 래퍼를 생성 합니다 . 그것은 당신이 무엇이든 당신의 플랫폼 프로젝트를 뱉어, 당신은 그것을 구축하고 배포합니다. 우리가 (내가 내 시간을 보내는 곳 이는), 당신이처럼 실행할 수 있도록 웹 응용 프로그램 실행기 (자체 스프링 아이콘을 유도 할 수있는 바로 가기를 만들 크게 다르지을하지 않는 것 아이폰에 대해 이야기하는 경우 ( 같은 ) 기본 앱). "앱"자체는 여전히 html / js / etc이며 호스팅 된 브라우저 컨트롤 내에서 실행됩니다. PhoneGap이 그 이상으로 제공하는 것은 JavaScript와 기본 장치 API 사이의 다리입니다. 따라서 PhoneGap API에 대해 JavaScript를 작성하면 PhoneGap은 해당하는 해당 기본 호출을 수행합니다. 그런 점에서, 그것은 것입니다 일반 오래된 웹 응용 프로그램을 배포 다릅니다.

  • 티타늄 소스는 네이티브 비트로 컴파일됩니다. 즉, html / js / etc입니다. 단순히 프로젝트에 연결되어 웹 브라우저 컨트롤 내부에 호스팅되는 것이 아니라 기본 앱으로 전환됩니다. 예를 들어 앱의 인터페이스는 기본 UI 구성 요소로 구성됩니다. 네이티브 앱을 사용하지 않고 네이티브 룩앤필을 얻는 방법이 있지만 ... 음 ... 보통 악몽이되는 것입니다.

이 두 가지는 일반적인 웹 기술 (html / js / css / blah blah blah)을 사용하여 모든 내용을 작성하고 사용자 지정 JavaScript API를 통해 기본 기능에 액세스한다는 점에서 비슷합니다.

그러나 PhoneGap 앱 (PhonGapps? 모르겠습니다 ... 어리석은 이름입니까? 더 쉽게 말할 수 있습니다-많이 알고 있습니다)은 웹 앱으로 인생을 시작하고 웹 앱으로 인생을 끝내는 것입니다. iPhone에서 html / js / etc. UIWebView 컨트롤 내에서 실행되며 js 호출이 기본 API로 라우팅되는 PhoneGap JavaScript API입니다.

티타늄 앱은 기본 앱이됩니다. 웹 개발 기술을 사용하여 개발 된 것입니다.

이것이 실제로 무엇을 의미 합니까?

  1. 티타늄 응용 프로그램은 것 보면 , 궁극적으로,이 때문에 "진짜"애플 리케이션과 같은 것입니다 "진짜"응용 프로그램.

  2. 폰갭 응용 프로그램은, 궁극적으로,이 때문에 웹 애플리케이션은 브라우저 컨트롤에서 호스팅되는 것처럼 보이는 것 입니다 웹 애플리케이션은 브라우저 컨트롤에서 호스팅되고.

어느 것이 당신에게 옳습니까?

  • 웹 개발 기술을 사용하여 기본 앱을 작성하려면 티타늄이 가장 좋습니다.

  • 여러 플랫폼 (iPhone, Android, Blackberry 및 기타 포함하기로 결정)에 실제로 배포 할 수있는 웹 개발 기술을 사용하여 앱을 작성하려는 경우 기본 플랫폼 기능 (GPS, 통합 자바 스크립트 API를 통한 가속도계 등), PhoneGap은 아마도 당신이 원하는 것입니다.

웹에서 호스팅되는 웹 앱 대신 PhoneGapp (이름을 사용하기로 결정)을 작성하고 싶은 이유는 무엇입니까? 그래도 여전히 일부 기본 장치 기능에 액세스 할 수 없지만 사용자가 "기본"앱을 다운로드하여 설치하도록 강요하지 않고 진정한 웹 배포의 편의성을 가질 수 있습니까?

이에 대한 답변은 PhoneGapp을 App Store에 제출하고 청구 할 수 있기 때문입니다. 또한 런처 아이콘을 사용하면 사용자가 앱을 잊기 어려워집니다 (앱 아이콘보다 북마크를 잊어 버릴 가능성이 큽니다).

웹 호스팅 웹 앱에 대한 액세스 비용을 확실히 청구 할 수는 있지만 실제로 얼마나 많은 사람들이 프로세스를 진행할 것입니까? App Store에서 앱을 선택하고 "구매"버튼을 누르고 비밀번호를 입력하면 완료됩니다. 설치합니다. 몇 초 후, 나는 그것을 사용하고 있습니다. 다른 사람의 일회성 모바일 웹 거래 인터페이스를 사용해야한다면 내 이름, 주소, 전화 번호, CC 번호 및 기타 탭하고 싶지 않은 것을 탭해야 할 가능성이 거의 있습니다. 그것으로 간다. 또한, 나는 애플을 신뢰합니다-스티브 잡스가 내 정보를 기록하지 않고 차기 위해 CC에 많은 잡지 구독을 청구하지 않을 것이라고 확신합니다.

어쨌든 웹 개발자 기술이 관련되어 있다는 사실을 제외하고 PhoneGap과 Titanium은 표면적으로 비교할 수 있다는 점에서 매우 다릅니다.

나는 웹 앱을 싫어하고 iTunes App Store 리뷰를 읽으면 사용자가 그 점을 잘 알 수 있습니다. 이름은 지정하지 않지만 휴대 전화에는 가비지처럼 보이고 실행되는 몇 가지 "앱"이 있으며 이는 UIWebView 인스턴스 내에서 호스팅되는 웹 앱이기 때문입니다. 웹 응용 프로그램을 사용하려면 Safari를 열고 웹 응용 프로그램으로 이동하십시오. iPhone-y 인 것을 원하기 때문에 iPhone을 구입했습니다. Safari에서 멋진 Google 웹 앱을 사용하는 데 아무런 문제가 없지만 Google이 웹 앱을 기본 앱으로 표시하여 Springboard에 북마크를 가져다 놓는 경우 속임수입니다.

지금 가야만 해. 제 여자 친구는 3 초 동안 컴퓨터 사용을 중지 할 수있었습니다.


나는 안드로이드 / 아이폰 개발 과정을 밟고 있으며 티타늄으로 8 주를 보냈습니다 (풀 타임 아님) (버전은 티타늄 1.4.2 였고 시간은 2010 년 11 월 무렵이었습니다). 여기 내 경험이 있습니다.

아이폰 안드로이드 듀얼 타겟팅

API 가이드에서 기능을 Android와 iPhone 모두에서 사용할 수 있다고 주장하지만, 그렇지 않습니다. 대부분의 플랫폼은 플랫폼 중 하나에서 작동하지 않습니다. 일부는 다르게 작동합니다.

수업 시간에 많은 사람들이 iPhone 응용 프로그램을 수행했으며 주요 재 작성 없이는 Android에서 작동하도록 할 수 없습니다. Animap이라는 간단한 어린 이용 앱 (스웨덴의 Android 마켓 / Appstore 참조)을 개발하고 Windows에서 개발을 시작했습니다. Android 대상이 작동하면 OS X에서 프로젝트를 열었습니다. iPhone 용 빌드 항목은 표시되지 않으며 Android 전용입니다. OS X에서 이중 대상 프로젝트를 시작해야합니다. (관련 파일을 새 프로젝트에 복사했습니다.) 다음 문제-애니메이션은 iPhone에서 작동하지 않습니다 (Android에서는 작동 함). 스크롤 이벤트는 iPhone에서 동일하게 작동하지 않습니다. (즉, Android에서는 사용자가 스크롤을 중지하고 화면에서 손가락을 when 때 untouch 이벤트가 발생합니다. 이는 iPhone에서 발생하지 않습니다).

이것은 어딘가에 언급되어 있지 않기 때문에 기본적으로 첫 번째 플랫폼에서 시행 착오 프로그래밍을 수행 한 다음 다른 플랫폼에서 시행해야합니다. 시행 착오로 Animap과 같은 간단한 앱을 다른 플랫폼에서 사용하려면 약 2 일이 걸릴 것입니다. 또한 코드 전체에 if (android) 또는 if (iphone) ...이 있어야합니다.

다운로드 및 설정

서신에 대한 지침을 따라야합니다. Java 64 비트를 사용하지 마십시오. KitchenSink 1.4.0 데모 애플리케이션은 컴파일하지 않습니다. 긴 경로 이름으로 인해 외부 프로그램이 길어질 경우 모든 명령 행 매개 변수를받지 못하게하므로 파일을 C 드라이브에 직접 넣어야합니다. (작은 프로그램에는 적합) 1/3의 시간에 툴체인은 단순히 정지하고 '시작'을 다시 눌러야합니다. 그러면 아마도 작동 할 것입니다 ... 매우 신뢰할 수 없습니다. 시작시 시뮬레이터를 찾을 수 없으므로 Ctrl + Alt + Delete를 사용하여 adb.exe를 종료 한 후 다시 시도해야합니다.

네트워크 연결

Wi-Fi 네트워크에서 때때로 라이브 연결이 끊어지고 티타늄이 충돌합니다 (컴파일 / 배포 인터페이스) 인터넷에 연결되어 있지 않으면 서버에 로그인 할 수 없으므로 시작되지 않습니다.

API

CSS, HTML 및 jQuery는 이것에 비해 산들 바람입니다. 티타늄은 기존의 다른 GUI API와 유사하며 모든 단일 버튼 / 필드 / 등에 대해 일부 속성을 설정해야합니다. 필드를 잘못 얻는 것은 설정하는 데 필요한 모든 속성을 기억하는 것이 쉬운 일입니까? 올바른 장소에 대문자로 철자를 썼습니까? (이것은 컴파일러에 의해 포착되지 않지만 해당 부분을 테스트하는 것이 운이 좋으면 런타임 오류로 표시됩니다)

Titanium에서는 컨트롤 위에 다른보기를 추가하거나 GUI의 다른 곳을 클릭하면 문제가 발생합니다.

선적 서류 비치

여러 API 페이지에는 Android 기호가 있지만 컨트롤을 만들려고 할 때만 null을 반환합니다. 기호에도 불구하고 단순히 Android 플랫폼에서 사용할 수 없습니다. 때로는 안드로이드가 특정 메소드를 지원하지 않는다고 언급하지만 전체 API가 누락되었습니다.

부엌 싱크대

데모 애플리케이션. 경로가 너무 길어 Eclipse 프로젝트 폴더에 넣으면 컴파일되지 않는다고 언급 했습니까? C 드라이브의 루트 폴더에 있어야합니다. 나는 현재 symbolik 링크를 사용합니다 (mklink / J ...)

문서화되지 않은 방법

레이블을 안정적으로 변경하려면 레이블을 set.setText ( 'Hello World')로 적절하게 사용해야하지만 전혀 설명되어 있지 않습니다.

디버깅

Titanium.API.info ( '인쇄는 디버깅하는 유일한 방법입니다');

편집

API는 올바른 형식으로 제공되지 않으므로 Eclipse에서 도움말 등으로 일반적인 코드 완성을 얻을 수 없습니다. 앱 타나 도와주세요!

하드웨어

컴파일러 / 도구는 멀티 스레드가 아니므로 많은 시행 착오를해야하므로 빠른 하드 드라이브가 장착 된 빠른 컴퓨터가 필수입니다. 잘못된 문서를 언급 했습니까? 믿을 수 없으므로 모든 것을 시험해보십시오!

긍정적 인 것들

  • 오픈 소스
  • 이전 프로젝트에서 나는 단순히 시간과 인력을 투입하여 문제를 해결할 수 없으므로 폐쇄 소스를 다시 사용하지 않겠다고 약속했습니다. 프로젝트에 늦어서 마감일을 정해야 할 때 중요합니다. 이것은 오픈 소스이며 툴 체인이 왜 깨져서 실제로 수정했는지 알 수 있습니다.

  • 버그 데이터베이스

  • 또한 열려 있습니다. 당신은 단순히 혼자가 아니라는 것을 알 수 있으며 시행 착오에 소비 된 또 다른 4 시간 대신 해결 방법을 수행하십시오.

  • 커뮤니티

  • 그들의 포럼에서 활동적인 것 같습니다.

버그

  • 티타늄 1.4는 스레드 세이프가 아닙니다 . 즉, 스레드를 사용하고 (createWindow 호출에서 url : 속성 사용) 스레드와 같은 프로그램이 작동하고 데이터가있는 이벤트를 앞뒤로 보내면 매우 이상한 것들이 많이 발생합니다. 창, 너무 많은 이벤트, 너무 적은 이벤트 등. 모두 타이밍에 따라 달라 지므로 코드 행을 다른 순서로 배치하면 응용 프로그램이 중단되거나 치유 될 수 있습니다. 다른 file.js에 창을 추가하면 app.js 실행이 중단됩니다. 또한 티타늄에서 내부 데이터 구조를 폐기합니다. 때때로 paralell에서 내부 데이터 구조를 업데이트하여 변경된 값을 다른 것으로 덮어 쓸 수 있습니다.

티타늄과 관련된 많은 문제는 수백 개의 스레드, 이벤트 및 메시지 전달을 지원하는 OSE와 같은 실시간 시스템에서 저의 배경에서 비롯됩니다. 이것은 티타늄 1.4에서 작동해야하지만 안정적으로 작동하지 않습니다.

  • Javascript (나에게 새로운 것)는 런타임 오류로 자동으로 죽습니다. 또한 변수 이름의 철자를 잘못 입력하거나 널 포인터로 읽는 것과 같은 작고 일반적인 버그는 디버그해야 할 때 충돌하지 않습니다. 대신 문자를 잘못 입력하거나 잘못 입력했기 때문에 이벤트 처리기와 같은 프로그램의 일부가 작동을 멈 춥니 다.

  • 그런 다음 함수에서 작동하지 않는 일부 매개 변수와 같은 티타늄에 더 간단한 버그가 있습니다 (적어도 안드로이드 플랫폼에서 일반적입니다).

  • 평가판 및 오류 디버그주기 속도 여러 컴퓨터에서 Titnium Developer를 실행 한 결과 병목 현상이 하드 드라이브라는 것을 알았습니다. 랩톱의 SSD 드라이브는 4200rpm 드라이브보다 빌드주기가 약 3-5 배 빠릅니다. 데스크탑에서 RAID 1 (스트라이핑 모드)의 이중 드라이브를 사용하면 CPU가 약간 빠른 단일 드라이브보다 약 25 % 더 빠르게 빌드 할 수 있으며 SSD 드라이브 랩톱을 능가합니다.

요약

  • 이 스레드의 의견에서 이와 같은 도구가 앱을 제공 할 수있는 플랫폼 수에 맞서 싸울 것 같습니다. API의 수가 핵심 판매 포인트 인 것 같습니다.

사용하기 시작하면 매우 빛납니다. 열려있는 버그 추적기를 보면 버그 수가 수정 된 버그 수보다 계속 빠르게 증가하고 있음을 알 수 있습니다. 이것은 일반적으로 개발자가 버그 수를 줄이는 데 집중하는 대신 기능을 계속 추가한다는 신호입니다.

고객에게 멀티 플랫폼에 간단한 앱을 제공하려는 컨설턴트로서 실제로 두 플랫폼에서 기본 앱을 개발하는 것보다 이것이 더 빠르지는 않습니다. 이것은 당신이 속도를 낼 때 티타늄에 빠르지 만 갑자기 갑자기 내려다보고 구멍에 깊숙이 들어가서 해결 방법에 몇 시간을 소비 해야하는지 알지 못하기 때문입니다. 특정 마감 시간 / 시간 / 비용에 대해 특정 기능을 약속 할 수는 없습니다.

나 자신에 관하여 : wxPython과 함께 2 년 동안 Python을 사용했다. (GUI는 무의식적이지만 결코 깨지지 않습니다. Javascript와 Titanium이 사용하는 스레딩 모델을 이해하지 못했을 수도 있지만 공개 토론 포럼에 따르면 GUI 개체가 갑자기 잘못된 컨텍스트를 사용하고 있습니다 / 그 전에 업데이트하지 .. ???)) 나는 모바일 장치에 대한 C 및 ASM 프로그래밍에 대한 배경 지식을 가지고 있습니다.

[편집-버그가있는 부분이 추가되었고 스레드로부터 안전하지 않음] [편집-이제는 한 달 이상 (주로 PC에서는 작동했지만 일부는 OS X에서도) 작동했습니다. iPhone 및 Android 이중 타겟팅이 추가되었습니다. 평가판 및 오류 디버그주기 속도가 추가되었습니다.]


Corona SDK (Ansca Mobile)는 Lua를 코딩 언어로 사용합니다. Lua에 대한 자세한 내용은 lua.org를 참조하십시오.

웹 통합과 기본 UI 요소를 추가 할 계획이지만 웹 기반 기술이 아닌 게임 개발과 같은 그래픽 중심 응용 프로그램에 초점을 맞추는 경향이 있습니다. 다시 말해, 코로나 앱을 작성하는 사람들이 Javascript / HTML / CSS로 완전히 구상하지는 않습니다.


나는 일주일 이상 티타늄과 함께 일해 왔으며 약점에 대해 좋은 느낌을 가지고 있습니다.

1) 여러 플랫폼에서 동일한 코드를 사용하기를 바랍니다. 당신은 backgroundGradient와 같은 것을 보게 될 것이고 안드로이드 버전이 그것을 지원하지 않는 것을 알 때까지 놀랄 것입니다. 그런 다음 그라디언트 이미지 사용으로 되돌려 야하며 코드를 더 쉽게 만들기 위해 두 버전 모두에 사용할 수 있습니까?

2) 많은 이상한 행동, Titanium android sdk에서 뒤로 버튼이 작동하거나 더 나은 방향 이벤트 추적을하기 위해 "무거운"창이 무엇인지 이해해야합니다. 이것은 안드로이드 플랫폼의 실제 방식이 아니라 Titanium이 API를 작동시키는 방식입니다.

3) 어둠 속에서 던져지면 상황이 추락하여 코드에 주석을 달기 시작하면 찾을 때 사용하지 마십시오. 6 개월 이상 문제가 된 안드로이드의 오리엔테이션 및 퍼센트와 같은 명백한 버그가 있습니다.

4) 버그 .... 많은 버그가 있으며,보고되어 몇 달 동안 앉아 있고 며칠 안에 고쳐질 것입니다. 안드로이드에 많은 다른 문제가있을 때 블랙 베리 모바일 SDK를 출시 할 계획이라고 놀랐습니다.

5) 티타늄 아이폰과 티타늄 안드로이드 자바 스크립트 엔진은 완전히 다릅니다. 안드로이드 버전에서는 원격 자바 스크립트 파일을 다운로드하고 mootools, jquery 등과 같은 라이브러리를 포함하고 사용할 수 있습니다. 내 안드로이드 앱을 계속 컴파일 할 필요가 없기 때문에 이것을 발견했을 때 나는 하늘에있었습니다. 안드로이드 APK 설치 과정이 너무 오래 걸립니다! 아이폰도 가능하지 않으며 아이폰 버전은 훨씬 빠른 자바 스크립트 엔진을 가지고 있습니다.

많은 기본 UI 파트에서 멀리 떨어져있는 경우 즉, setInterval을 사용하여 방향 변경을 감지하고 그라디언트 이미지를 고수하고 뒤로 버튼을 잊어 버리고 자신 만의 애니메이션을 만들고 창 헤더, 도구 모음 및 대시 보드를 잊어 버리십시오. 재 작성이 많이 필요하지 않은 두 가지 모두에서 작동하는 API를 만들 수 있습니다. 그러나 그 시점에서 웹 애플리케이션만큼 부진합니다.

그만한 가치가 있습니까? 모든 고통 후에, 매분의 가치. 로직을 추상화하고 다른 곳을 원한다면 각각 다른 UI를 만들 수 있습니다. 티타늄을 사용하면 유동적 인 응용 프로그램을 만들 수 있습니다. 각 플랫폼의 강력한 레이아웃 기능을 잃어 버리지 만 단순하다고 생각하면 단일 언어로 작업을 수행 할 수 있습니다.

왜 웹앱이 아닌가? 엔트리 레벨 시장에서 안드로이드 폰은 웹보기를 생성하는 데 엄청나게 느리고 더 복잡한 논리를 수행하는 데 사용할 수있는 많은 메모리를 소비합니다.


Appcelerator 및 PhoneGap에 대한보다 최근의 심층 분석은 다음과 같습니다. http://savagelook.com/blog/portfolio/a-deeper-look-at-appcelerator-and-phonegap

그리고 프로그래밍 방식의 차이점에 대한 자세한 내용은 다음과 같습니다. http://savagelook.com/blog/portfolio/phonegap-is-web-based-appcelerator-is-pure-javascript


기본 맵킷은 티타늄에서 지원됩니다


HTML5 위젯을 아이폰 위젯처럼 보이게 만드는 것은 한 가지 일이지만, 동일한 성능을 발휘하게하는 것은 또 다른 문제입니다. html5 애니메이션 (일반적인보기 전환)의 성능, 긴 목록 스크롤, 제스처에 대한 반응이 끈적 거리고 거친 느낌입니다. iPhone 사용자는 차이점을 알 수 있습니다.

플랫폼마다 다른 코드와 사용성 문제를 야기하는 다양한 장치에서 지원하는 제스처 종류에는 약간의 차이가 있습니다.

지금은 기본 앱을 유지하겠습니다.


Rhomobile Rhodes ( http://rhomobile.com/products/rhodes )는 PhoneGap과 매우 유사하지만 다음과 같은 유일한 프레임 워크입니다.

  1. Model View Controller 패턴 (대부분의 웹 프레임 워크가 제공하는대로)
  2. 객체 관계 관리자
  3. 모든 인기있는 스마트 폰 (Windows Phone 7 포함) 지원
  4. 호스팅 개발 서비스 (호스트 빌드가 아닌) : http://rhohub.com
  5. RhoStudio IDE의 전체 디버거 및 SDK가없는 에뮬레이터
  6. 동기화 된 오프라인 데이터 지원

티타늄에 관심이있는 사람이라면 클래스, 속성, 메소드가 누락 된 문서가 충분하지 않다고 말해야합니다. 그러나 샘플 앱인 KitchenSink에 많은 것이 문서화되어 있으므로 그렇게 나쁘지 않습니다.


PhoneGap에 대한 나의 이해는 Javascript API를 많은 iPhone API에 제공한다는 것입니다.

웹 개발자 배경에서는 티타늄이 더 쉬워 보입니다. 기본 TabView 애플리케이션을 작성하는 간단한 XML 파일이며 컨텐츠 영역의 모든 내용은 HTML / JS로 제어됩니다. 또한 티타늄이 일부 프레임 워크 (특히 위치 정보, 전화 ID 등)에 대한 일부 자바 스크립트 액세스를 제공한다는 것을 알고 있습니다.

업데이트 : Titanium은 프레임 워크 버전 0.8에서 Maps API를 추가했습니다.


객관적인 c를 배우고 기본 앱을 프로그래밍해야합니다. 인생을 더 편하게 할 것이라고 생각하는 것들에 의존하지 마십시오. Apple은 가장 쉬운 방법은 기본 도구와 언어를 사용하는 것입니다. 100 줄짜리 자바 스크립트의 경우 요소에 따라 3 줄의 코드에서 똑같이하거나 전혀 코드를 사용할 수 없습니다. 일부 자습서를보십시오-자바 스크립트를 이해하면 objective c는 어렵지 않습니다. 해결 방법은 비참하며 Apple은 언제든지 언제든지 플러그를 뽑을 수 있습니다.


언급 한 솔루션 중에서 OS 3.0에 도입 된 MapKit 프레임 워크에 직접 액세스 할 수있는 솔루션은 없습니다.

Google Maps HTML 위젯이 MapKit만큼 좋지는 않으므로 (예를 들어 Google Latitude 참조) 기본 Cocoa touch 애플리케이션을 개발하거나 MapKit 통합을 추가하기 위해 확장 할 수있는 솔루션을 선택하는 것이 가장 좋습니다. PhoneGap은 이러한 방식으로 확장 가능하며 (오픈 소스이므로 기본적으로 제공됨) 다른 솔루션도 가능합니다.

편집 : 티타늄은 이제 MapKit을 지원합니다


나는 코로나를 시도했다. mp3 오디오 스트리밍을 지원하지 않는다는 것을 알기 전까지는 좋았습니다. 그래서 나는 거기서 멈췄다. 아이폰 앱 개발자가되고 싶다면 obj c를 배워야한다고 생각합니다. 라디오 방송국 목록이있는 앱을 만들고 싶을 때 클릭하면 재생이 시작됩니다.

참고 URL : https://stackoverflow.com/questions/1482586/comparison-between-corona-phonegap-titanium

반응형