每种方法都有优点和缺点。我通常是这样向客户解释的:
您可以选择使用第三方、跨平台的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 创建您的应用程序。
(你还有一个好处是用户更容易理解这个应用程序是如此之大,因为它毕竟是一款游戏,而且用户对这类游戏的长时间下载很熟悉。)
但是,如果您正在创建一个相当简单的应用程序,或者一个用于商业、媒体等的应用程序,其中下载大小很重要(也许用户可能不愿意等待很长时间来下载和使用您的应用程序)和/或性能最重要,请使用本机编写。
在您的情况下,正如您提到您正在尝试制作“一个非常简单的应用程序”,最好在本地编写它。最终,这是您必须权衡两种选择的利弊的选择。