5

새로운 티타늄 프로젝트를 시작하려고합니다. 지금까지 내가 쓴 것은 "클래식 프로젝트"로 간주되는 것입니다 (저는 Alloy 이전부터 티타늄 응용 프로그램을 작성해 왔습니다).Appcelerator Titanium - Alloy vs Classic

내 새로운 프로젝트에서 Alloy로 전환하는 동안 가치가 있는지 궁금해하고있었습니다. 나는 기본적으로 알로이가 Java 프로젝트 또는 objective-c 프로젝트로 컴파일하기 전에 "Classic"Titanium 코드로 컴파일된다는 것을 알고 있습니다. 나는 또한 컴파일 된 "클래식"코드에서 다른 것을 포함하지 않고 안드로이드 또는 아이폰에만 관련된 합금 코드를 표시하는 "미리 컴파일"프로세스에서 큰 이점을 알고 있습니다.

나의 주요 관심사는 유연성입니다. "클래식"처럼 코드에 대한 통제력과 진행 상황을 느낄 수 있습니다.

두 번째 관심사는 합금 용으로 작성되지 않은 컨트롤 (예 : 오픈 소스 슬라이딩 메뉴)입니다. 어떻게 프로젝트에 포함시킬 수 있습니까?

합금 용으로 작성된 TI UX (https://github.com/jaraen/Ti.UX.Templates)를 찾은 후에 (TiConf 2014에 도입) 알기보다는 오히려 합금을 사용할지 묻기 시작했습니다.

다른 몇 가지 질문 :

  1. 나는 오래된 UI 코드는 합금 내에서 실행 한 수 있습니까?
  2. "클래식"프로젝트에서 실행되는 합금 용 컨트롤을 사용할 수 있습니까?
  3. "Classic"프로젝트는 iOS/Android에 속하지 않은 코드도 매핑 할 수 있습니까?
  4. 합금 프로젝트와 클래식 프로젝트간에 성능 차이가 있습니까? 다른 유연성 문제는?

감사 누군가가이 질문을보고 답변이 필요 이런 경우에

답변

0

고전에서 티타늄 합금으로의 전환이 나에게 옳았다 고 느꼈다. 나는 고전적인 티타늄 개발이 충분히 구조화되지 않았거나 내 응용 프로그램을 구성하는 좋은 방법에 대한 충분한 지침을 제공하지 못한다고 생각했다. Alloy는 코드에 MVC 구조를 제공하지만 고전적으로 자신을 굴리거나 MVC 기능이있는 커뮤니티 라이브러리 중 하나를 사용하는 것을 완전히 막을 수는 없습니다. 이 점에서 나는 티타늄 합금의 구조에 맞추는 대신 구조를 수행하는 방법을 선택할 수 있기 때문에 합금에 클래식을 사용하는 것이 더 유연하다고 말합니다. 즉, 나는 결코 합금에 의해 제한을 느낀 적이 없다.

티타늄으로 개발하는 방법을 선호합니다. Alloy 사용 또는 고전 사용에 대한 정답은 없습니다. 당신을 위해 더 잘 작동한다면, 그것을 사용하십시오. Alloy가 디스플레이 및 비즈니스 로직을 분리하는 구조화 된 접근 방식은 나에게 앱을 개발할 때 나에게 의미있는 구조를 제공한다고 생각합니다.

합금이 클래식보다 유연성이 떨어지는 것을 발견하지 못했습니다. Alloy 프로젝트에서 고전적인 코드를 사용할 수 있으므로 고전에서 할 수있는 모든 것을 Alloy에서 할 수 있습니다.특정 유형의 응용 프로그램을 코딩 할 때 다른 것보다 더 쉬울 수도있는 몇 가지 중요한 경우가 있습니다. 클래식 앱에서 합금을 사용할 수 있다고 생각하지 않기 때문에 클래식이 유연성이 떨어질 수 있습니다. 나는 컴파일러가 그것을 어떻게 만드는지 알지 못한다.

특정 기술을 사용 할지를 평가할 때마다 필자는 일련의 실험용 미니 프로그램을 만들어 응용 프로그램 요구 사항에 맞게 모든 기능을 제공합니다. 만약 그것이 적합하지 않거나 그러한 요구 사항에 도달하기가 너무 어렵다면, 나는 그 기술을 사용하지 않습니다. 예를 들어 Alloy로 전환했을 때 Ti.Paint 라이브러리가 계속 작동하는지 확인했습니다. 만약 내가 아직도 고전을 사용하지 않았다.

클래식과 마찬가지로, 합금 컨트롤이 있습니다. 이미 꽤 매끄러운 합금 기반의 슬라이딩 메뉴 모듈이 있습니다. Ti.Paint 라이브러리를 사용합니다.이 라이브러리는 합금 전에 존재하고 합금 고유 모듈이 아닙니다.

http://gitt.io/은 합금 모듈/위젯을 찾기에 알맞은 시작점입니다.

당신의하는 index.js 파일에서이 Index.xml

<Alloy> 
    <Window id="win"> 
     <View id="content" /> 
    </Window> 
</Alloy> 

1), 당신은 합금 뷰를 조작하는 고전적인 코딩을 사용하여 다음과 같은 것이다.

하는 index.js는

var myview = Ti.UI.createView({ 
    backgroundColor: 'green' 
}); 
$.content.add(myview); 

2) 나는 당신이 당신의 고전적인 프로젝트에 합금 코드를 사용할 수 있다고 생각하지 않습니다. 앞에서 언급했듯이 코드 변환 작업이 필요하며 고전적인 프로젝트는이 과정에서 해당 단계를 건너 뛸 수 있습니다.

3) Android 또는 IOS와 관련된 코드의 일부를 포함하거나 제거 할 수 있는지 묻는 중입니까? 아마도 if (Ti.Platform.osname == "android") 문 사이에 전략적으로 배치 된 include/require 문을 사용하여 원하는 코드가 필요하거나없는 코드를 작성할 수 있습니다. 안드로이드 용 코드라면 IOS 용 코드라면 필요하다.

4) 클래식 프로젝트와 합금 기반 프로젝트 간의 성능을 확인하지 않았습니다. 나는 생각하기에, 전환 한 이후로 나 또는 고객을 괴롭히는 문제를 발견하지 못했기 때문에 결코 그것에 대해 많은 생각을 기울이지 않았다. Alloy가 일부 경우 느린 코드를 자동으로 생성 할 가능성이 있습니다. 나는 결코 그것을 알아 채지 못했다.

나는 합금을 사용하면서 얻을 수있는 효율성이 즉각적인 우려보다 중요하다고 생각한다. 또한, 특정 컨트롤이 Alloy를 통해 만들어진 방식이 마음에 들지 않았다면 클래식 코드를 사용하고 클래식 프로젝트의 정의를 모두 제어 할 수있는 컨트롤을 정의 할 수있었습니다.