Appcelerator Titanium Mobile은 어떻게 작동합니까?


79

저는 Titanium Mobile 1.0으로 iPhone 앱을 구축하는 중이며 기본 iPhone 바이너리로 컴파일되는 것을 확인했습니다. 어떻게 작동합니까? 280 North의 Objective-J 및 Cappuccino와 같은 수퍼 세트 언어없이 JavaScript 코드를 분석하고 Objective-C로 직접 번역하는 데는 많은 작업이 필요할 것 같습니다.


4
오픈 소스입니다. 후드 아래를 살펴 보지 그래?
Gabriele Petrioli

17
@Gaby 내가 궁금하다면 다른 사람들도 공개적으로 묻는 것보다 정보를 전파하는 더 좋은 방법이 있을까요?
Darrell Brogdon

2
@Darrell, 나는 완전히 동의한다 .. 나는 당신을 괴롭 히려는 것이 아니라 가장 빠른 방법이 코드를 직접 확인하는 것이라고 생각했다 .. 잘못된 방법으로 나온다면 사과한다 ..
Gabriele Petrioli

1
요점 : Objective-J는 자바 스크립트의 상위 집합입니다
cobbal

2
나는 최근에이 질문을했고이 페이지의 답변에 설명되지 않은 정보로 훨씬 더 최신 답변을 얻었습니다. 질문은 다음과 같습니다. stackoverflow.com/questions/19060554/…
BT

답변:


147

Titanium은 Javascript 코드를 가져 와서 분석하고 전처리 한 다음 Titanium API의 애플리케이션 사용을 기반으로 해석되는 기호 세트로 사전 컴파일합니다. 이 심볼 계층 구조에서 기본 Titanium 라이브러리 심볼에 매핑되는 심볼 종속성 매트릭스를 구축하여 앱에 특별히 필요한 API (및 관련 종속성, 프레임 워크 등)를 이해할 수 있습니다. 언어에 따라 조금씩 다르기 때문에 기호라는 단어를 반 일반적인 방식으로 사용하고 있습니다. iPhone에서 심볼은 궁극적으로 ARM / i386 아키텍처 용으로 컴파일 된 컴파일 된 .o 파일에 매핑되는 진정한 C 심볼에 매핑됩니다. 자바의 경우 .class 파일 등입니다. 프런트 엔드가 종속성 매트릭스를 이해하면 SDK 컴파일러 (예 : iPhone 용 GCC,

따라서 그것에 대해 생각하는 간단한 방법은 JS 코드가 거의 일대일로 네이티브 랜드의 대표 기호로 컴파일된다는 것입니다. 해석 모드에서 여전히 실행중인 인터프리터가 있습니다. 그렇지 않으면 동적 코드와 같은 것이 작동하지 않습니다. 그러나 훨씬 더 빠르고 훨씬 더 간결하며 가능한 한 순수한 네이티브 매핑에 가깝습니다.

우리는 여전히 이것을 개선하고 작업 할 여지가 충분합니다. 지금까지 우리의 최신 1.0 테스트에서는 동일한 Objective-C 직접 코드와 거의 구별 할 수 없습니다 (대부분의 경우 정확히 매핑되기 때문에). 그러나 CompSci의 관점에서 우리는 이제 GCC 컴파일러가 오늘날 이미하고있는 것처럼 인간이 쉽게 할 수없는 일을 최적화 할 수 있습니다.


와, 정말 멋지네요. 설명해 주셔서 감사합니다. AppCelerator에 그렇게 많은 노력을 기울일 것이라고는 상상도 못했습니다. 앞으로도 힘써주세요!
MrMage

12
Javascript-> Objective-C 및 Javascript-> Java 변환이 발생하지 않지만 이것이 네이티브 코드에 직접 적용된다는 것을 올바르게 얻었습니까? 그렇다면 생성 된 Objective-C 또는 Java 코드를 볼 방법이 없습니까?
janpio 2010

1
컴파일이 Titanium의 서버에서 수행됩니까? Wikipedia en.wikipedia.org/wiki/Appcelerator_Titanium
adib 2011

1
@djaqeel의 Clojure의 스칼라, JRuby를, nashorn
gtrak

3

jhaynie가 말했듯이 애플리케이션은 네이티브 코드로 컴파일되지만 여전히 일부 자바 스크립트를 실행하는 인터프리터가있어 애플리케이션을 매우 동적으로 만들 수 있습니다.

appcelerator 티타늄


1

간단한 코드를 패키징하면 ~ 80MB gzip 아카이브 (원래 코드 ~ 1kB)가 생성됩니다. 패키지 내에서-무엇보다도-내 소스 html 및 js 파일을 찾을 수 있습니다. 패키지와 함께 제공되는 많은 라이브러리 (예 : SSL)도 있습니다 (이 프레임 워크 내에서 많은 항목에 대한 저수준 액세스를 가질 수 있기 때문입니다).

나는 그들이 당신의 코드를 가지고 어떤 종류의 인터프리터 소프트웨어와 라이브러리를 감싸고 있다고 생각합니다. 내 경우에는 내 사이트 만 표시하는 작은 브라우저 옆에 내 html 및 js 코드를 포장하는 것과 같습니다.

그러나 코드가 지원되는 모든 시스템에서 동일한 방식으로 작동하는 한 좋은 점이 있습니다.


4
Titanium이 만든 .ipa를 열면 표준 컴파일 된 앱으로 보이는 것이 보입니다. HTML 또는 JavaScript 코드를 찾을 수 없습니다.
Darrell Brogdon

1
나는 당신이 설명하는 것은 코르도바가 무엇을 생각하지만 티타늄은 다르게 작동
Rohit 터지

작은 브라우저로 html 및 js 코드를 압축하고 전자는 5 년 후 태어납니다.
Caio Iglesias
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.