문제

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

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

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

도움이 되었습니까?

해결책

나는 대부분 투표 된 답변에 대해 댓글을 달기 위해 StackoverFlow에 등록했습니다. 나쁜 점은 stackoverflow로 신입 회원이 댓글을 게시 할 수 없다는 것입니다. 그래서 나는이 의견을 대답처럼 보이게해야합니다.

Rory Blyth의 답변에는 두 JavaScript 모바일 프레임 워크에 대한 몇 가지 유효한 점이 포함되어 있습니다. 그러나 그의 핵심 요점은 잘못되었습니다. 진실은 티타늄과 전화기가 다르다는 것입니다. 둘 다 JavaScript API 세트를 통해 휴대 전화 기능을 노출시키고 응용 프로그램의 논리 (HTML, CSS, JavaScript)는 기본 WebView 컨트롤 내에서 실행됩니다.

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

  2. 티타늄은 HTML, CSS 또는 JavaScript 코드를 "기본 비트"로 컴파일하지 않습니다. 내장 이미지 파일과 마찬가지로 실행 가능한 번들의 리소스로 패키지됩니다. 응용 프로그램이 실행되면 이러한 리소스는 UIWebView 컨트롤에로드되어 그곳에서 실행됩니다 (물론 기본 비트가 아닌 JavaScript). JavaScript-to-Native-Code (또는 Objective-C) 컴파일러와 같은 것은 없습니다. 이것은 전화기에서도 같은 방식으로 이루어집니다. 건축 적 관점에서 볼 때이 두 프레임 워크는 매우 유사합니다.

자, 그들은 다른 것이 있습니까? 예. 첫째, 티타늄은 더 많은 휴대 전화 기능을 JavaScript로 연결하여 PhoneGap보다 풍부한 기능으로 보입니다. 가장 눈에 띄게, PhoneGap은 많은 (있는 경우) 기본 UI 구성 요소를 JavaScript에 노출시키지 않습니다. 반면에 티타늄에는 모든 종류의 기본 UI 컨트롤을 생성하고 제어하기 위해 JavaScript로 호출 할 수있는 포괄적 인 UI API가 있습니다. 이 UI API를 사용하여 티타늄 앱은 PhoneGap 앱보다 "기본"으로 보일 수 있습니다. 둘째, PhoneGap은 티타늄보다 더 많은 휴대 전화 플랫폼을 지원합니다. PhoneGap API는보다 일반적이며 iPhone, Android, Blackberry, Symbian 등과 같은 다른 플랫폼에서 사용할 수 있습니다. Titanium은 주로 현재 iPhone 및 Android를 대상으로합니다. API 중 일부는 플랫폼 별 (iPhone UI API와 같은)입니다. 이러한 API를 사용하면 응용 프로그램의 크로스 플랫폼 기능이 줄어 듭니다.

따라서 앱에 대한 우려가 더 "네이티브"모양으로 만드는 것이라면 티타늄이 더 나은 선택입니다. 다른 플랫폼으로 앱을 "포트"할 수 있으려면 PhoneGap이 더 좋습니다.

2010 년 8 월 13 일 업데이트 : 미키의 질문에 대한 티타늄 직원의 답변에 연결됩니다.

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

가장 큰 변화는 티타늄에서 나왔습니다. 올해 초 Appcelerator는 Titanium 1.0을 출시했으며, 이는 건축 관점에서 이전 버전에서 급격히 출발했습니다. 1.0에서 Uiwebview 컨트롤은 더 이상 사용되지 않습니다. 대신 UI 기능에 대해 Titanium API를 호출합니다. 이 변화는 몇 가지를 의미합니다.

  1. 귀하의 앱 UI는 완전히 기본이됩니다. 기본 티타늄 API가 모든 UI 요구를 제어하기 때문에 앱에는 더 이상 웹 UI가 없습니다. 티타늄은 "크로스 플랫폼 네이티브 UI"프론티어를 개척함으로써 많은 신용을받을 자격이 있습니다. 그것은 기본 UI의 모양과 느낌을 선호하지만 공식 프로그래밍 언어를 대안으로 싫어하는 프로그래머를 제공합니다.

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

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

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

이제 Titanium 1.0이 JavaScript를 "기본 비트"로 컴파일합니까? Appcelerator는이 개발자 블로그를 통해이 문제에 대해 마침내 깨끗하게 나왔습니다.티타늄 가이드 프로젝트 : JS 환경. 우리는 프로그래머가 마케팅 부서의 사람들보다 더 진실한 사람들입니다. :-)

전화기로 이동하십시오. 폰 갭에 대한 새로운 말은 많지 않습니다. 제 인식은 IBM이 올해 말에 탑승 할 때까지 PhoneGap 개발이 그다지 활성화되지 않았다는 것입니다. 일부 사람들은 심지어 IBM이 Nitobi보다 PhoneGap에 더 많은 코드를 기여하고 있다고 주장했습니다. 사실이든 아니든, 전화기가 활성화되고 있음을 아는 것이 좋습니다.

PhoneGap은 웹 기술, 즉 HTML, CSS 및 JavaScript를 계속 기반으로합니다. PhoneGap은 Titanium과 같이 기본 UI 기능을 JavaScript에 연결할 계획이없는 것처럼 보이지 않습니다. Web UI는 여전히 성능과 네이티브 모양과 느낌에 대한 기본 UI 뒤에 뒤떨어져 있지만, 그러한 격차는 빠르게 폐쇄되고 있습니다. 웹 기술에는 성능 측면에서 모바일 웹 UI에 밝은 기능을 보장하는 두 가지 트렌드가 있습니다.

  1. JavaScript 엔진 통역사에서 가상 머신으로 이동합니다. JavaScript는 JIT가 더 빠른 실행을 위해 기본 코드로 컴파일되었습니다. 사파리 JS 엔진 : Squirrelfish Extreme

  2. 웹 페이지는 CPU의 의존에서 GPU 가속 사용으로 이동하는 웹 페이지 렌더링. 페이지 전환 및 3D 애니메이션과 같은 그래픽 집약적 인 작업은 하드웨어 가속을 통해 훨씬 매끄럽게됩니다. Chrome의 GPU 가속화

데스크탑 브라우저에서 시작된 이러한 개선 사항은 모바일 브라우저로 빠르게 전달되고 있습니다. 실제로 iOS 3.2와 Android 2.0 이후 모바일 웹 뷰 컨트롤은 훨씬 더 성능을 발휘하고 HTML5 친화적이었습니다. 모바일 웹의 미래는 너무 약속해서 큰 아이를 마을에 끌어 들였습니다. JQuery는 최근 모바일 웹 프레임 워크를 발표했습니다. jQuery Mobile을 제공하는 UI 가제트와 전화기 기능을 제공하는 전화기를 통해 두 가지 결합으로 완벽한 모바일 웹 플랫폼을 만듭니다.

나는 또한 언급해야한다 Sencha Touch 다른 모바일 웹 UI 가제트 프레임 워크로서. Sencha Touch 버전 1.0은 최근 GPLV3을 포함하는 듀얼 라이센스 모델로 출시되었습니다. Sencha Touch는 JQuery Mobile과 마찬가지로 PhoneGap과 잘 작동합니다.

당신이 GWT 프로그래머 (나처럼), 당신은 체크 아웃 할 수 있습니다 GWT 모바일, GWT를 사용하여 모바일 웹 앱을 만들기위한 오픈 소스 프로젝트. GWT에서 전화기를 사용할 수있는 PhoneGap GWT 래퍼가 포함되어 있습니다.

다른 팁

내가 수집 한 것에서 여기 두 가지의 차이점이 있습니다.

  • PhoneGap은 기본적으로 기본적으로 기본 포장지를 생성합니다 웹 앱. 그것은 whateveryourplatformis 프로젝트를 뱉어 내고 구축하고 배포합니다. 우리가 iPhone (시간을 보내는 곳)에 대해 이야기하고 있다면 웹 앱 런처 (자체 스프링 보드 아이콘을 얻는 단축키)를 만드는 것과 크게 다르지 않으므로 (처럼 시작할 수 있습니다.처럼) 기본 앱). "앱"자체는 여전히 HTML/JS/등이며 호스팅 된 브라우저 컨트롤 내에서 실행됩니다. PhoneGap이 제공하는 것은 JavaScript와 기본 장치 API 사이의 브리지입니다. 따라서 PhoneGap API에 대해 JavaScript를 작성하고 PhoneGap은 적절한 해당 기본 호출을합니다. 그런 점에서, 그것은 ~이다 일반 구식 웹 앱 배포와 다릅니다.

  • 티타늄 소스는 기본 비트로 컴파일됩니다. 즉, 귀하의 HTML/JS/등. 단순히 프로젝트에 첨부 된 다음 웹 브라우저 컨트롤 내부에서 호스팅되지 않으며 기본 앱으로 바뀌 었습니다. 예를 들어, 앱의 인터페이스가 토종의 UI 구성 요소. 기본 앱을 사용하지 않고 기본 룩앤필을 얻는 방법이 있지만 ... 글쎄 ... 보통 악몽이 될 수 있습니다.

두 사람은 일반적인 웹 기술 (HTML/JS/CSS/Blah Blah Blah)을 사용하여 모든 내용을 작성하고 사용자 정의 JavaScript API를 통해 기본 기능에 액세스 할 수 있다는 점에서 비슷합니다.

그러나 다시, PhoneGap 앱 (Phongapps? 나는 모르겠다 ... 그건 바보 같은 이름인가? iPhone에서 HTML/JS/등. UIWebView 컨트롤 내부에서 방금 실행되며 PhoneGap JavaScript API 귀하의 JS 호출은 기본 API로 라우팅됩니다.

Titanium 앱은 기본 앱이되며 Web Dev Tech를 사용하여 개발되었습니다.

이것은 실제로 무엇을합니까? 평균?

  1. 티타늄 앱이 있습니다 바라보다 궁극적으로 "실제"앱처럼 ~이다 "실제"앱.

  2. PhoneGap 앱은 브라우저 컨트롤에서 호스팅되는 웹 앱처럼 보입니다. ~이다 브라우저 컨트롤에서 호스팅되는 웹 앱.

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

  • Web Dev 기술을 사용하여 기본 앱을 작성하려면 Titanium이 최선의 방법입니다.

  • 여러 플랫폼 (iPhone, Android, BlackBerry 및 기타 포함 된 다른 무엇이든)에 현실적으로 배포 할 수있는 Web Dev 기술을 사용하여 앱을 작성하려면 기본 플랫폼 기능 (GPS, 가속도계 등) Unified JavaScript API를 통해 PhoneGap은 아마도 원하는 것일 것입니다.

당신은 물어볼 수 있습니다 : 왜 웹에서 호스팅되는 웹 앱 대신 전화기를 쓰고 싶습니까? 여전히 일부 기본 장치 기능에 액세스 할 수는 없지만 사용자가 내 "기본"앱을 다운로드하여 설치하도록 강요하는 대신 실제 웹 배포의 편리함을 가지고 있습니까?

대답은 다음과 같습니다. aphengapp을 App Store에 제출하여 청구 할 수 있기 때문입니다. 또한 런처 아이콘을 얻으므로 사용자가 앱을 잊어 버리기가 더 어려워집니다 (앱 아이콘보다 북마크를 잊어 버릴 가능성이 훨씬 높습니다).

웹 호스팅 웹 앱에 대한 액세스에 대해 반드시 청구 할 수 있지만 실제로 얼마나 많은 사람들이 프로세스를 진행할 것인가? 앱 스토어를 사용하면 앱을 선택하고 "구매"버튼을 누르고 암호를 입력하면 완료되었습니다. 설치됩니다. 몇 초 후에, 나는 그것을 사용하고 있습니다. 다른 사람의 일회성 모바일 웹 트랜잭션 인터페이스를 사용해야한다면, 이는 내 이름, 주소, 전화 번호, CC 번호 및 기타 내가 탭하지 않으려는 것들을 탭해야한다는 것을 의미합니다. 그것과 함께갑니다. 또한 Apple을 믿습니다. Steve Jobs가 내 정보를 기록하지 않고 CC에 내 CC에 많은 장난 꾸러기 잡지 구독을 청구하지 않을 것이라고 확신합니다.

어쨌든, Web Dev Tech가 관련되어 있다는 사실을 제외하고, PhoneGap과 Titanium은 매우 다릅니다.

나는 웹 앱을 싫어하고, iTunes App Store 리뷰를 읽으면 사용자는이를 발견하는 데 능숙합니다. 이름을 지정하지는 않지만 쓰레기처럼 보이고 실행되는 휴대 전화에 몇 개의 "앱"이 있습니다. uiwebview 인스턴스 내부에서 호스팅되는 웹 앱 때문입니다. 웹 앱을 사용하고 싶다면 Safari를 열고 하나로 이동합니다. iPhone-Y를 원하기 때문에 iPhone을 구입했습니다. Safari 내부의 Snazzy Google 웹 앱을 사용하는 데 아무런 문제가 없지만 Google이 웹 앱을 네이티브 앱으로 제시하여 Springboard에 북마크를 몰아 내면 속임수를 느낍니다.

지금 가야만 해. 내 여자 친구는 당신의 얼굴을 3 분의 2로 보이는 곳에서 당신이 당신을 일으킬 수 있습니다.

저는 Android/iPhone 개발 과정을 수강했으며 티타늄 (풀 타임이 아님)에서 8 주를 보냈습니다 (버전은 Titanium 1.4.2이고 시간은 2010 년 11 월경)입니다. 여기 내 경험이 있습니다.

iPhone Android 듀얼 타겟팅

API 가이드는 기능이 Android와 iPhone 모두에서 사용할 수 있다고 주장하지만 그렇지 않습니다. 많은 것들이 단순히 플랫폼 중 하나에서 작동하지 않습니다. 어떤 것들은 다르게 작동합니다.

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

이것은 어딘가에 언급되지 않기 때문에 기본적으로 첫 번째 플랫폼에서 시행 착오 프로그래밍을 수행해야합니다. 시행 착오에 따라 나는 다른 플랫폼에서 Animap과 같은 간단한 앱을 얻는 데 약 2 일이 걸릴 것임을 의미합니다. IF (Android) 또는 if (iPhone) ... 코드 전체에 ...

다운로드 및 설정

편지에 대한 지침을 따라야합니다. Java 64 비트를 사용하려고하지 마십시오. KitchenSink 1.4.0 데모 응용 프로그램을 컴파일하지 않습니다. (1.3은 작동합니다!) 긴 PathNames는 외부 프로그램이 오래 걸리면 모든 명령 줄 매개 변수를 수신하지 않게 만들므로 C 드라이브에 직접 파일을 넣어야합니다. (작은 프로그램의 경우 괜찮습니다) 시간의 1/3, 툴체인이 단순히 멈추고 '시작'을 다시 누르야합니다. 그러면 아마도 효과가있을 것입니다 ... 매우 신뢰할 수 없습니다. 시뮬레이터는 스타트 업에서 찾을 수 없으며 Ctrl+alt+삭제 및 재 시도로 ADB.Exe를 단순히 죽여야합니다.

네트워크 연결

Wi-Fi-Network에서는 때때로 라이브 연결을 풀고 티타늄 충돌이 발생합니다 (컴파일/배포 인터페이스) 인터넷 연결이 작동하지 않으면 서버에 로그인 할 수 없으므로 시작하지 않습니다.

API

CSS, HTML 및 JQuery는 이에 비해 산들 바람입니다. 티타늄은 다른 오래된 GUI API와 비슷하며 모든 단일 버튼/필드/등에 대한 속성을 설정해야합니다. 필드를 잘못 이해하는 것은 쉬운 일입니다. 설정해야 할 모든 속성을 기억하십니까? 올바른 장소에 대문자로 철자를 했습니까? (이것은 컴파일러에 의해 잡히지 않지만 해당 부품을 테스트하는 것이 운이 좋으면 런타임 오류로 간주됩니다).

티타늄에서는 컨트롤 위에 또 다른 뷰를 추가하거나 GUI의 다른 곳을 클릭하면 상황이 중단됩니다.

선적 서류 비치

여러 API 페이지가 Android 기호를 가지고 있지만 컨트롤을 만들려고 할 때만 널을 반환합니다. 기호에도 불구하고 Android 플랫폼에서 간단하게 사용할 수 없습니다. 때때로 Android는 특정 방법을 지원하지 않는 것으로 언급되지만 전체 API가 누락됩니다.

부엌 싱크대

데모 응용 프로그램. 경로가 너무 길어서 Eclipse Project 폴더에 넣으면 컴파일되지 않는다고 언급 했습니까? 루트 폴더의 C 드라이브에 놓아야합니다. 나는 현재 Symbolik Link (mklink /j ...)를 사용하고 있습니다.

문서화되지 않은 방법

라벨을 신뢰할 수 있으려면 Things를 label.settext ( 'Hello World')로 사용해야하지만 전혀 문서화되지 않습니다.

디버깅

titanium.api.info ( '인쇄물은 디버그하는 유일한 방법');

편집

API는 좋은 형식으로 사용할 수 없으므로 Eclipse에서 도움말 등으로 일반 코드 완성을 얻을 수 없습니다. aptana 제발 도와주세요!

하드웨어

컴파일러/도구는 멀티 스레드가 아니기 때문에 빠른 하드 드라이브가있는 빠른 컴퓨터는 많은 시행 및 오류를 수행해야하므로 필수품입니다. 열악한 문서를 언급 했습니까? 믿을 수 없으므로 모든 것을 시도해야합니다!

몇 가지 긍정적 인 것들

  • 오픈 소스
  • 이전 프로젝트에서 나는 시간과 인력을 던지는 것만으로 물건을 고칠 수 없기 때문에 나 자신이 다시 폐쇄 소스를 사용하지 않을 것이라고 약속했습니다. 프로젝트에 늦고 어려운 마감일을 제공해야 할 때 중요합니다. 이것은 오픈 소스이며 도구 체인이 왜 깨지고 실제로 수정하는지 확인할 수있었습니다.

  • Bugdatabase

  • 또한 열려 있습니다. 단순히 혼자가 아니라는 것을보고 시행 및 오류에 4 시간을 소비하는 대신 해결 방법을 수행 할 수 있습니다.

  • 지역 사회

  • 포럼에서 활발한 것으로 보입니다.

버그

  • 티타늄 1.4는 실이 없습니다. 즉, 스레드 (URL 사용 : CreateWindow 호출에서 속성 사용)를 사용하고 스레드가 작동하는 것처럼 프로그램을 사용하고 데이터를 앞뒤로 보내는 이벤트를 보내는 것과 같은 프로그램이 많이 있습니다. Windows, 너무 많은 이벤트, 너무 적은 이벤트 등. 등. 이것은 모두 타이밍에 달려 있으므로 코드 행을 다른 순서로 배치하면 응용 프로그램이 충돌하거나 치유 될 수 있습니다. 다른 file.js에 창을 추가하면 app.js 실행을 중단합니다 ... 이것은 때때로 Paralell의 내부 데이터 구조를 업데이트 할 수 있으므로 타이타늄의 내부 데이터 구조를 버리고 다른 것으로 바뀌 었습니다.

티타늄에 의한 많은 문제는 수백 개의 스레드, 이벤트 및 메시지 통과를 지원하는 OSE와 같은 실시간 시스템에 대한 저의 배경에서 비롯됩니다. 이것은 티타늄 1.4에서 작동하는 것이지만 단순히 안정적으로 수행하지는 않습니다.

  • JavaScript (나에게 새로운)는 런타임 오류로 조용히 사망합니다. 이는 또한 가변 이름을 틀거나 널 포인터의 읽기와 같은 작고 일반적인 버그가 무너질 때 충돌하지 않으므로 디버깅 할 수 있음을 의미합니다. 대신 프로그램의 일부는 캐릭터를 잘못 배치/잘못 놓았 기 때문에 이벤트 핸들러와 같은 작업을 중단합니다.

  • 그런 다음 타이타늄에 더 간단한 버그가 있습니다. 기능에서 작동하지 않는 일부 매개 변수 (적어도 Android 플랫폼에서 일반적으로 일반적).

  • 시행 착오 디버그 사이클 속도 여러 컴퓨터에서 Titnium Developer를 실행 한 후 병목 현상이 하드 드라이브라는 것을 알았습니다. 노트북의 SSD 드라이브는 빌드 사이클을 4200 rpm 드라이브보다 약 3-5 배 빠르게 만듭니다. 데스크탑에서 RAID 1 (스트라이핑 모드)에 듀얼 드라이브를 갖는 것은 CPU가 다소 빠른 단일 드라이브보다 빌드를 약 25 % 빠르게 만들고 SSD 드라이브 랩톱을 이길 수 있습니다.

요약

  • 이 스레드의 의견에서 이와 같은 도구는 앱을 제공 할 수있는 플랫폼 수에 대한 싸움이있는 것 같습니다. API의 수는 주요 판매 지점 인 것 같습니다.

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

컨설턴트로서 고객을위한 다중 플랫폼에 다소 간단한 앱을 제공하려고하는 컨설턴트로서, 두 플랫폼에서 기본 앱 개발을 수행하는 것보다 실제로 더 빠르지는 않습니다. 이것은 당신이 속도를 높이면 티타늄으로 빠르기 때문에 갑자기 아래로 내려다보고 깊은 구멍을 찾아서 자신을 찾아야한다는 사실 때문입니다. 특정 마감일/시간/비용에 대해 특정 기능을 약속 할 수는 없습니다.

나 자신에 대해 : Wxpython과 함께 2 년 동안 Python을 사용하고 있습니다. (GUI는 불일치하지만 이런 식으로 깨지지 않습니다. JavaScript와 Titanium에서 사용하는 스레딩 모델을 이해하지 못했을 수도 있지만 공개 토론 포럼에 따라 혼자가 아닙니다. GUI 객체는 갑자기 잘못된 맥락을 사용하고 있습니다. 업데이트되지 않음 .. ???) 전에 모바일 장치에 대한 C 및 ASM 프로그래밍 배경이 있습니다.

편집 - 버그가 추가되고 스레드 안전하지 않은 부품을 추가했습니다] [편집 - 이제 한 달+, 주로 PC에서 OS X에서도 한 달+와 함께 작업했습니다. iPhone 및 Android Dual Targetting이 추가되었습니다. 시행 착오 디버그 사이클 속도가 추가되었습니다.

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

우리는 웹 통합 및 기본 UI 요소를 추가 할 계획이지만 웹 기반 기술과는 달리 게임 개발과 같은 그래픽 집약적 인 응용 프로그램에 중점을 두는 경향이 있습니다. 다시 말해, 우리는 Corona 앱을 전적으로 JavaScript/HTML/CSS로 작성하는 사람들을 상상하지 않습니다.

나는 지금 일주일 이상 티타늄과 함께 일해 왔으며 그 약점에 대해 좋은 느낌을 느낀다.

1) 여러 플랫폼에서 동일한 코드를 사용하기를 바라고 행운을 빕니다! Android 버전이 지원하지 않는다는 것을 알기 전까지는 Buckgregradient와 같은 것을 볼 수 있으며 놀랄 것입니다. 그런 다음 그라디언트 이미지 사용으로 되돌아 가야합니다. 두 버전 모두에 사용하여 코드를 더 쉽게 올바르게 만들 수 있습니까?

2) 많은 이상한 행동, 티타늄 안드로이드 SDK에서는 뒤로 버튼을 얻거나 더 나은 오리엔테이션 이벤트 추적을 얻는 "무거운"창이 무엇인지 이해해야합니다. 이것은 Android 플랫폼이 실제로있는 방식이 아니라 Titanium이 API를 작동 시키려고하는 방법입니다.

3) 당신은 어둠 속에 던져지고, 상황이 충돌하고 코드를 주석하기 시작해야하며, 찾을 때는 그것을 사용하지 마십시오. 6 개월 이상 문제가 된 Android의 오리엔테이션 및 오리엔테이션과 같은 명백한 버그가 있습니다.

4) 버그 .... 많은 버그가 있으며, 몇 달 동안 앉아서 며칠 안에 고정 될 것입니다. Android에 다른 많은 문제가있을 때 그들이 Black Berry Mobile SDK를 출시 할 계획이 놀랍습니다.

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

많은 기본 UI 부품에서 멀리 떨어져있는 경우, 즉, SetInterval을 사용하여 오리엔테이션 변경을 감지하고, 그라디언트 이미지를 고수하고, 뒤로 버튼을 잊고, 자신의 애니메이션을 만들고, 창 헤더, 툴바 및 대시 보드를 잊어 버리십시오. 다시 쓰기가 필요하지 않은 두 가지 모두에서 작동하는 API를 만들 수 있습니다. 그러나 그 시점에서 그것은 웹 app만큼 부진한 것입니다.

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

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

다음은 AppCelerator 및 PhoneGap의보다 최근적이고 깊이있는 분석입니다. http://savagelook.com/blog/portfolio/a-deeper-look-at-appcelerator-and-phonegap

그리고 다음은 프로그래밍 방식으로 어떻게 다른지에 대한 자세한 내용이 있습니다.http://savagelook.com/blog/portfolio/phonegap-is-web 기반-Appcelerator-is-pure-javaScript

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

html5 위젯을 만드는 것은 iPhone 위젯처럼 보이지만 하나의 일이지만, 똑같이 잘 수행하는 것은 또 다른 문제입니다. HTML5 애니메이션 (일반 뷰 전환조차도), 긴 목록 스크롤, 제스처에 대한 반응성은 끈적 끈적하고 육포입니다. iPhone 사용자는 차이를 알 수 있습니다.

또한 다른 장치에서 지원되는 제스처 종류에는 플랫폼 별 코드 및 유용성 문제도 발생합니다.

지금은 기본 앱을 가지고있을 것입니다.

rhomobile Rhodes (http://rhomobile.com/products/rhodes)는 전화기에 대한 접근 방식이 매우 유사하지만 다음과 같은 유일한 프레임 워크입니다.

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

티타늄에 관심이있는 사람이라면 어떤 클래스, 속성, 방법이 누락되었다고 문서가 매우 좋지 않다고 말해야합니다. 그러나 많은 것이 샘플 앱에서 Kitchensink에서 "문서화"되어 있으므로 그렇게 나쁘지 않습니다.

PhoneGap에 대한 나의 이해는 그들이 iPhone API의 많은 부분에 JavaScript API를 제공한다는 것입니다.

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

업데이트 : Titanium은 프레임 워크의 0.8 버전으로 맵 API를 추가했습니다.

목표 C 및 프로그램 기본 앱을 배워야합니다. 당신이 생각할 것이라고 생각하면 삶을 더 쉽게 만들 것이라고 생각하지 마십시오. 애플은 가장 쉬운 방법이 기본 도구와 언어를 사용하는 것입니다. 100 줄의 JavaScript의 경우 3 줄의 코드로 동일한 작업을 수행하거나 요소에 따라 코드가 전혀 없습니다. 일부 튜토리얼을 시청하십시오 - JavaScript를 이해하면 목표 C는 어렵지 않습니다. 해결 방법은 비참하며 Apple은 언제든지 플러그를 뽑을 수 있습니다.

당신이 언급 한 솔루션 중 어느 것도 OS 3.0에 도입 된 MAPKIT 프레임 워크에 직접 액세스 할 수없는 것으로 보입니다.

Google Maps HTML 위젯이 MAPKIT만큼 좋지 않기 때문에 (예를 들어 Google Latitude 참조) 기본 Cocoa Touch 응용 프로그램을 개발하거나 MAPKIT 통합 추가를 확장 할 수있는 솔루션을 선택하는 것이 가장 좋습니다. PhoneGap은 이러한 방식으로 확장 가능합니다 (오픈 소스이므로 기본적으로). 다른 솔루션 중 일부도있을 수 있습니다.

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

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top