首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >钛合金与传统钛合金

钛合金与传统钛合金
EN

Stack Overflow用户
提问于 2014-09-17 11:45:14
回答 2查看 2.6K关注 0票数 5

我要开始一个新的钛项目了。到目前为止,我所写的是现在被认为是“经典项目”(我一直在写钛应用程序从以前的合金)。

我想知道在我的新项目中改用合金是否值得。我知道,合金在编译到java项目或objective项目之前,基本上会编译成“经典”钛代码。我也知道在“预编译”过程中有一个很大的优势,那就是在只与Android或iPhone相关的合金代码中标记,而不包括在编译的“经典”代码中的另一个。

我的主要关注点是灵活性--和“经典”一样,我觉得我对代码和正在发生的事情有更多的控制权。

第二个问题是,我有一些控件(比如开源的滑动菜单)不是为合金编写的--我如何才能将它们作为我项目的一部分?

我开始问自己是否使用合金,因为我发现( TiConf,2014年引入) TI UX (https://github.com/jaraen/Ti.UX.Templates),这是为合金编写的。

很少有其他问题:

  1. 如何在合金内部运行旧的UI代码?
  2. 我可以在“经典”项目中为合金编写控件吗?
  3. “经典”项目也能绘制出不属于iOS/Android的代码吗?
  4. 合金项目和经典项目在性能上是否存在差异?其他的灵活性问题呢?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-18 09:12:08

万一有人看到这个问题,需要一个答案:

我还在Appcelerator &A中发布了这个问题,在这里我得到了一些答案:http://developer.appcelerator.com/question/177739/appcelerator-titanium---alloy-vs-classic

我得到的答案是部分的,更多的信息可以在这里提出的一个问题中找到:http://developer.appcelerator.com/question/177542/classic-vs-alloy

票数 2
EN

Stack Overflow用户

发布于 2014-09-18 14:36:07

我觉得从经典转向钛合金对我来说是对的。我觉得传统的钛开发没有足够的结构,也没有提供足够的指导来构造我的应用程序。合金为您的代码提供了MVC结构,但是经典并没有完全阻止您滚动自己的代码或使用具有MVC功能的社区库。在这方面,我想我会说,使用经典的比合金更灵活,因为你可以选择如何完成你的结构,而不是适合钛合金的结构。话虽如此,我从未感到受到合金的限制。

如何发展钛是你的喜好。没有正确的答案使用合金或使用经典。如果一个更适合你,就用它。我觉得用结构化的方法实现合金的显示和业务逻辑分离,为我提供了一种在开发应用程序时对我有意义的结构。

我还没有发现合金比经典合金更不灵活。因为你可以在你的合金项目中使用经典代码,你可以用合金做所有你能用经典做的事情。我确信,这是一些我还没有遇到的边缘情况,在编写特定类型的应用程序时,其中一种可能比另一种更容易。这可能是经典不那么灵活,因为我不认为你可以在你的经典应用程序使用合金。我不相信编译器会知道如何构建它。

每当我评估是否要使用特定的技术时,我就会制作一系列实验小程序,以确保所有的功能都满足我的应用程序的需求。如果我觉得它不合适,或者很难达到这些要求,我就不使用这种技术。例如,当我切换到合金时,我确保Ti.Paint库仍然工作。如果没有的话,我还是会用经典的。

就像经典的一样,合金也有控制。有一个相当光滑的合金基滑动菜单模块已经存在。我使用Ti.Paint库,它存在于合金之前,不是合金特定的模块。

http://gitt.io/是查找合金模块/小部件的良好起点。

index.xml

代码语言:javascript
运行
复制
<Alloy>
    <Window id="win">
        <View id="content" />
    </Window>
</Alloy>

1)在您的index.js文件中,您可以使用下面的经典代码来操作合金视图。

index.js

代码语言:javascript
运行
复制
var myview = Ti.UI.createView({
  backgroundColor: 'green'
});
$.content.add(myview);

2)我不认为你能在你的经典项目中使用合金代码。正如您前面提到的,它需要对代码进行转换,一个经典的项目可能会跳过这个步骤。

3)您是在询问是否可以根据具体的Android或IOS来包含或删除部分代码吗?您可能可以在if (Ti.Platform.osname == "android")语句之间战略性地放置include/require语句来完成这一任务,以便在您想要的代码中或不需要您的代码。如果代码是为Android编写的,那么需要这个代码,如果是IOS代码,则需要在该代码中使用。

4)从未尝试过检查经典项目和合金项目之间的性能。我想,因为我改变了,从来没有注意到一个问题困扰我或我的客户,我从来没有投入太多的想法。合金自动生成代码完全有可能在某些情况下速度较慢.我从来没注意到。

我觉得我在使用合金所获得的效率远远超过了作为一个直接关注的问题。另外,如果我觉得我不喜欢通过合金创建特定控件的方式,我可以使用经典代码来定义该控件,并拥有来自一个经典项目的定义的所有控件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25889692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档