Appcelerator与Android SDK

par*_*ars 24 android titanium appcelerator

我一直在看appcelerator似乎很好!毫无疑问,appcelerator的优点之一是它支持多平台.我有兴趣建立一个Android应用程序,也许以后可能是一个iPhone应用程序.因此,目前支持多个平台并不重要.

如果你无视支持多个平台而只关注android开发.appcelerator还有优势吗?它缺少"Android sdk"的任何功能吗?

(当我说"Andorid sdk"时,我的意思是使用Eclipse开发本机Android sdk,如果它有任何意义)

Chr*_*bin 29

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

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

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

对用户界面的妥协对我们来说太过分了.我们决定使用C/C++来获取应用程序逻辑,并使用Android SDK作为用户界面.

我们的应用程序现在有两个部分:尽可能使用C/C++来处理"大脑"和原生(Android/Cocoa Touch),以便UI充分利用UI体验.

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

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

[编辑]我经常看到这个问题的一个upvote.我想更新过去两年的经验:

  • 将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月

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

我一直在关注离子,因为我们的网络应用程序使用AngularJS,离子也是如此(Cordova + AngularJS).React Native将强制团队学习另一个框架(当然,如果您的Web应用程序使用React,则参数相反).

不过,我认真考虑React Native,甚至不得不学习另一个框架,因为报告的性能和应用程序的外观和感觉.来自React Native的网站:

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

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

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

  • 为此+1 - 当使用像Appcelerator这样的工具时,你最终会得到一个最小的公分母解决方案.用户对移动应用程序的期望太高,无法取得成功. (2认同)

ant*_*afe 7

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

原因:钛是合适的

  1. 你想要快速地开发应用程序,或者

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

  3. 你看Java是如此困难(也许是:p),所以你选择更容易(Javascript of Titanium).

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

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

  2. 您想要自定义应用程序外观.这很重要.想象您为客户制作应用程序,他们需要定制他们的应用程序,以便更加引人注目.选择Titanium意味着您必须使用他们无法自定义的控件.如果使用原生Android,您可以自定义所需的一切.