【问题标题】:How should I go about making a simple mobile app? Titanium or native? [closed]我应该如何制作一个简单的移动应用程序?钛还是原生? [关闭]
【发布时间】:2013-01-03 21:04:11
【问题描述】:

我想在空闲时间制作一个非常简单的应用创意。我的技能都是 LAMP 堆栈 Web 开发,所以我想我会使用 Appcelerator 的 Titanium 为这两种移动操作系统制作应用程序。

但是,在启动 Titanium 之后,我遇到了很多奇怪的错误。例如,Android 模拟器无法正常工作,无法获取用户的位置。我也无法让 ajax 请求工作。

Titanium 似乎比仅使用 Objective-c 或 Java 开发更容易出错。我想知道我是否值得与 Titanium 斗争,或者只是学习如何为每个操作系统单独开发。有什么想法吗?

【问题讨论】:

  • 这不是真正可以“回答”的问题,但我会说,当我研究 Titanium 和其他类似产品时,我也有类似的担忧。我最终选择了标准的原生开发,但是在学习原生开发技能时需要付出一些重要的前期工作,这可能对所有应用程序都没有意义。
  • @cloudymusic 我只是询问人们的意见,因为我不知道 Titanium 的可靠性与 iOS 的学习难度。
  • 祝我好运XD我现在正在完成第一个iOS教程哈哈
  • 根据我的经验,我建议您使用 Titanium,因为您是 Web 开发人员。 Titanium 只需要 Javascript 和它的 API。过去几个月我一直在使用 Titanium。我觉得很好。而且学习和理解 Titanium 比学习 Objective-C 或 Java 要容易得多。也请参考sapandiwakar.in/technical/…。使用跨平台工具有很多好处:)

标签: android ios mobile titanium titanium-mobile


【解决方案1】:

如果您的应用创意真的“非常简单”,那么我强烈建议您学习每个开发平台的基础知识并开始为每个平台开发。即使这样做,您也会更好地了解 Titanium 下发生的事情。这些错误和问题会更有意义,您可能知道在哪里寻求帮助。

这只是我的看法。此刻,我正在做一些 iOS 教程,这样我至少可以熟悉 iOS 应用程序的工作原理。 :)

【讨论】:

  • 另外,我这样说是因为我工作的地方有一个项目,最初是从 Titanium 开始的。从那时起,我们工作的人很快就希望我们开始使用原生 iOS 和 Android 开发应用程序。
  • 我的应用程序基本上会用两个按钮显示带有您当前位置的地图。这些按钮会发送 POST 和 GET 请求,并将您带到一个新的地图法师。这就对了!所以你认为我应该从 iOS 开始然后转到 Android 很简单?
  • 我不明白为什么不这样做。我不能亲自为 iOS 说话,因为我还没有开发过它。但我想在 iOS 中创建它就像在 Android 中一样简单。我也只是喜欢学习新事物 XD,所以这只是我个人的看法。
【解决方案2】:

每种方法各有利弊。我通常是这样向客户解释的:

您可以选择使用第三方跨平台SDK(如Titanium、Unity、Phone Gap等)进行开发,可能会减少开发时间。但是,这样做是有代价的——该应用程序的下载量会更大,因为它包括为您的应用程序编写的代码和跨平台工具的代码。此外,该代码可能比本地编写的代码慢(性能不高)(取决于跨平台套件的工作方式,它可能具有同样的性能,但永远不会比本地代码快)。

来自 Titanium 的网站(请参阅 http://developer.appcelerator.com/question/91121/reducing-the-size-of-titanium-based-application):

问题:How can we reduce the size of a Titanium based Application? My Application whose Resources Files are just about 800 Kb, generates around 5.7 MB sized App in Debug mode and 5.2 MB in Release mode?

回答:The Titanium build scripts try and analyze your source code and optimize the generated binary to only include the Titanium modules that are necessary. However, it does remain the case that our binaries are much larger than native binaries, since we need to ship our platform code and a JavaScript interpreter with the application.

最终,问题归结为 - 哪个对您的项目更重要:(1) 开发的简易性和速度,还是 (2) 应用程序的性能和大小?

如果您正在构建一款跨平台游戏,那么在本地开发此类游戏可能并不意味着需要几天的额外开发时间,而是可能需要几个月或几年的时间。此外,其中一些工具(尤其是 Unity)可能已经为您在本地编写时遇到的问题提供了预先打包的解决方案(例如可以为您节省大量时间的物理引擎)。在这种情况下,您最好使用跨平台的 SKD 创建您的应用程序。

(您还有一个好处是,用户更容易理解应用程序如此庞大,因为它毕竟是一款游戏,并且用户熟悉此类游戏的长时间下载。)

但是,如果您正在创建一个相当简单的应用程序,或者是用于商业、媒体等的应用程序,其中下载的大小很重要(也许用户可能不愿意等待很长时间来下载和使用您的应用程序) 和/或性能最重要,请使用本机编写。

在您的情况下,正如您提到您正在尝试制作“一个非常简单的应用程序”,最好在本地编写它。最终,这是您必须权衡两种选择的利弊的选择。

【讨论】:

  • 感谢您的深刻见解。基本上,我正在制作一个带有两个按钮的地理定位应用程序,这些按钮发送 ajax 调用并在与后端交互后显示新地图。它做的事情很少,但这些事情可能很难实现,我只是不知道。钛似乎真的有问题,从你的描述来看,我想我还是希望它是原生的。最终,我想要一个小文件大小和良好的用户体验。
  • 是的,在 iOS 上,这个应用程序非常简单。一个有经验的程序员可能只需要几个小时。我想这对于Android端来说会是相似的。即使从头开始,我想您也可以在弱点左右学习如何做到这一点。查看 Ray Wenderlich 的网站(请参阅 raywenderlich.com)。他有一些教程可以帮助你具体做什么(特别是raywenderlich.com/21365/…raywenderlich.com/2965/…)。祝你好运!
  • 实际上,我建议使用AFNetworking 而不是ASIHTTPRequest(因为ASIHTTPRequest 较旧并且不再受支持,但在Ray 的教程中仍然推荐它)。这里也有一个很好的关于启动 AFNetworking 的教程:mobile.tutsplus.com/tutorials/iphone/ios-sdk_afnetworking
  • 这里有很多关于性能和 appcelerator 的无效 cmets,但问题被关闭是有正当理由的,这实际上只是在征求某人的意见
  • @AaronSaunders,也许这在这一点上可能没有实际意义(因为这个问题已经结束了——尽管我同意它是出于正确的原因而关闭的)但是你能分享你对所说的“无效”的看法吗?厘米”?如果我错了,我很乐意在有足够证据的情况下改变我的观点。非常感谢。
【解决方案3】:

如果应用程序很简单,请使用本机。 1 个月前我的技能也是 LAMP,但由于为 android 开发有很多文档和教程,我可以轻松掌握它。任何有编程概念的人都能达到同样的效果。

但正如我所说,很大程度上取决于您的情况。例如,我的应用程序基于“webview”,那么我为什么不去追求非本地平台。

【讨论】:

    猜你喜欢
    • 2019-11-30
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多