24

我一直在看 appcelerator 似乎还不错!毫无疑问,appcelerator 的优势之一就是它对多平台的支持。我有兴趣在以后构建一个 android 应用程序,也许还有一个 iphone 应用程序。因此,目前支持多个平台并不重要。

如果您不考虑支持多个平台而只专注于 android 开发。appcelerator还有优势吗?它是否缺少“Android sdk”的任何功能?

(当我说“Andorid sdk”时,我的意思是使用 Eclipse 和原生 Android sdk 进行开发,如果有意义的话)

4

8 回答 8

30

我们在开始我们的 Android 项目时查看了 Appcelerator。我们知道接下来我们必须做一个 iOS 客户端,所以 Appcelerator 很诱人。

我们决定不走那条路,因为它不支持每个设备的所有本机功能。

例如,我们很早就决定我们在 Android 中的用户界面需要一个小部件。Appcelerator 不支持该功能,因为它特定于 Android。[这是几个月前的事了-您可能想再检查一次]。

在用户界面上妥协对我们来说太过分了。我们决定将 C/C++ 用于应用程序逻辑并使用 Android SDK 作为用户界面。

我们的应用程序现在有两个部分:尽可能多地使用 C/C++ 的“大脑”和用于 UI 的本机(Android/Cocoa Touch)以利用 UI 体验。

当然适用于可以集成 C/C++ 的平台。

分手建议:首先设计你的用户界面,然后找到一个可以实现它的工具。用户对便携式设备中的 UI 有很高的期望。尽早妥协可能是您项目的 KOD。

[编辑] 我经常看到对这个问题的支持。我想更新一下我们在过去两年中学到的东西:

  • 将 C/C++ 用于我们应用程序的公共部分已经得到了回报。它确实需要稍微复杂的构建过程,但如果共享的代码很复杂(如我们的例子),节省的成本是巨大的。
  • 对于用户界面部分,我们开始研究混合应用程序(HTML 中的一些 UI 元素)。关于 HTML 界面仍然存在争议(Facebook 和 LinkedIn 是两个迁移到 UI 的本地代码),但也有一些报告称,如果仔细选择它可以工作。Flipoard 对此进行了精彩的演讲。这里有幻灯片。

2014 年 10 月更新

2014 年 3 月,Smashing Magazine 发表了一篇优秀的文章,比较了原生 iOS、原生 Android、PhongeGap (Cordova) 和 Appcelerator Titanium。他们展示了在每个环境中开发一个简单的应用程序。

这是该系列的最后一部分。在这部分的顶部有指向该系列前面部分的链接,在底部是方法的比较。最后还有来自读者的有趣评论。


2015 年 5 月更新

仍然经常为这个问题投票,所以我想分享自从我写下答案的第一部分以来我们所做的事情。

我们现在正在开发一个也有 Web 客户端的项目。我们现在有 iOS 客户端、Android 客户端以及 Web 客户端。

JavaScript 是 Web 客户端的自然选择。

由于我们希望在这些客户端之间共享尽可能多的代码(在业务逻辑层),这意味着我们需要找到一种在 iOS 和 Android 中运行 JavaScript 代码的方法。

这就是我们最终要做的。

这是我们如何处理它的摘要:

  • 对于所有客户端:所有数据结构都使用Google 的 protobuf定义。这允许为 iOS 和 Android 自动生成序列化/反序列化代码。
  • iOS:在 JavaScriptCore 的帮助下运行 JavaScript 代码(这里有一个很好的概述)。
  • Android:借助 Google 的 V8 引擎运行 JavaScript 代码。

JavaScript 和 iOS/Android 层之间的桥梁可能是一个瓶颈,尤其是对象的序列化。我们必须优化一些东西并吸取一些教训以避免麻烦。

一般来说,经验是积极的。通过在所有客户之间共享代码,我们节省了大量时间。

如果我不得不开始另一个像这样的项目(需要与网络和移动客户端共享代码),我也会看看谷歌为收件箱做了什么。我们开始时它不可用。看起来很有希望。


2015 年 8 月更新

而世界一直在转动...

如果我现在必须启动一个新的移动应用程序,我也会好好看看React Native 。

它基于 JavaScript,可以更轻松地连接 Web 和移动开发。

Ray Wenderlich 的网站上有一个很棒的教程。


2016 年 2 月更新

我的跨平台开发候选名单只有两个:

我一直在关注ionic,因为我们的 Web 应用程序使用 AngularJS,ionic(Cordova + AngularJS)也是如此。React Native将迫使团队学习另一个框架(当然,如果您的 Web 应用程序使用 React,则说法相反)。

尽管如此,我还是会认真考虑React Native,甚至不得不学习另一个框架,因为报告的应用程序的性能和外观。来自 React Native 的网站:

使用 React Native,您可以使用标准平台组件,例如 iOS 上的 UITabBar 和 Android 上的 Drawer

如果您现在开始,我建议您至少花时间完成他们的教程,以便您更好地了解每个框架。每个教程可以在一到两个小时内完成:

对于更简单的方法:Smashing Magazine 刚刚发布(在我撰写此更新时)一篇很好的文章,展示了如何使用本机导航元素使应用程序感觉(嗯...)本机,同时使用 Web 视图呈现内容. 本文详细介绍了如何使 HTML/CSS 在移动设备中可用(它不仅仅是推送您已经拥有的 HTML/CSS)。

于 2011-02-21T00:19:59.810 回答
7

如果您只专注于为 Android 平台开发应用程序,我建议您应该使用原生 Android(如您所说的 Eclipse + Android SDK)而不是 Titanium。

原因:钛是合适的,如果

  1. 您想快速开发应用程序,或者

  2. 您的应用程序很简单,或者

  3. 你看到 Java 太难了(也许是 :p ),所以你选择了更简单的(Titanium 的 JavaScript)。

以下是您应该使用原生 Android 而不是 Titanium 的原因:

  1. 您想开发一个复杂的应用程序,或者

  2. 您想要自定义应用外观。这很重要。想象你为客户制作了一个应用程序,他们需要定制他们的应用程序以更引人注目。选择 Titanium 意味着您必须使用他们的控件,这缺乏自定义的能力。如果使用原生安卓系统会更好,你可以自定义你想要的一切。

于 2011-02-20T23:31:50.173 回答
4

如果没有关于应用程序要求的任何细节,这是一个非常难以回答的问题。

我建议您快速查看Appcelerator 的 API 文档,了解该框架提供了什么,并花点时间列出您的应用程序的基本要求,然后确定哪种工具最适合您的项目。

于 2011-02-19T15:28:15.947 回答
1

我认为您使用 Appcelerator 是一个良好的开端,因为它使用 JavaScript 等。容易学习,但很好的例子。它还将使您能够使用相同的代码并访问 iPhone、iPad 应用程序。学习只使用 Android SDK 更加复杂。即使那样,您仍然需要开发以后的 iPhone 等应用程序。如果您来自网络背景,这是有道理的。有很好的视频可以快速学习。祝你好运

于 2011-02-20T19:52:03.333 回答
0

我对 Appcelerator 的体验似乎表明它们更像是一家 iOS 商店。恕我直言,他们的 Android 工具集非常缺乏。ADT 支持在设备上构建和调试可视化 UI,而 Titanium Studio 不支持。几个月来一直有一个关于此的错误提交,并且继续延迟。如果您的重点是 Android,请使用适用于 Android 的 Google ADT 或 MOTODEV Studio。这些 IDE 非常好,并且被专业人士使用。

上述答案提供了一种开发移动应用程序的好方法。不要妥协于高质量的用户体验。

于 2011-08-11T22:51:09.087 回答
0

缺乏蓝牙支持是 Appcelerator 的一个巨大缺陷,没有人提供有关路线图的线索。

编辑:appcelerator 现在在 Tizen 3.1 中有 BT 支持

于 2012-04-10T10:44:43.427 回答
0

好吧,在新版本的 appcelerator (APPCELERATORSTUDIO 4.0) 中,您可以拥有合金项目,以及用于您的 UI (tss) 的 css 文件,因此实际上它们是真正可定制的。

伟大的

于 2015-05-28T02:54:38.353 回答
0

Appcelerator 有很多支持,并且非常易于使用。它现在支持 100% 的原生 api 调用。他们也有很好的文档。

于 2017-02-03T20:43:58.380 回答