我有一种学习android来构建应用程序和游戏的冲动,因为它看起来像一种有趣的语言,特别是如果你对某些Java有先前的知识。我还发现还有其他框架将其代码转换为本机功能到PhoneGap等应用程序,然后有Unity可以帮助进行跨平台游戏开发,使用javascript,c#和boo。我的问题是,如果存在这样的框架,为什么我们需要学习本地语言?它有什么不同?
答案 0 :(得分:1)
优点
本机应用程序允许充分利用设备功能 其他第三方API可能会遗漏。
它更容易获得 使用native编程时应用程序的良好性能 的SDK。
缺点
需要学习不同的语言以便在不同的语言上进行开发 平台。
为一个平台开发的代码库不容易 适应另一个平台。
开发人员可以使用HTML / CSS / JS构建应用程序,包括可以访问设备硬件和其他iOS API特性的JavaScript类,如联系人,文件系统,摄像头,麦克风,GPS等。最终的应用程序包含在一个平台本机中“Web View”浏览器对象,基本上成为一个独立的Web应用程序,能够访问某些特定于设备的功能。
优点
可以使用普通的旧Javascript甚至其他库,如jQuery, 原型,Sencha Touch,MooTools等处理交互。
允许一次开发多个平台,例如Android的, iOS,Windows等。
缺点
应用程序是Web视图中的Web应用程序。浏览器 性能不接近本机应用程序组件 性能。
并非所有设备API都可用于 应用
答案 1 :(得分:0)
这些框架中的大多数旨在克服一个或多个障碍,例如:快速发展,记忆参考计数;不必学习新语言和新平台;可维护性等等。
大多数这些框架都非常出色,直到你开始拥有;更大的应用程序,需要非常快的图形,大量的内存,访问设备硬件。
实际上,所有的计算机语言都是人类表达与简单之间的框架/翻译。减少跳跃而不是零#34; CPU / GPU内核。
因此,这取决于你想做什么以及你有多少时间。
我喜欢得到很多帮助;良好的测试代码库,很多其他开发人员使用相同的,以便我可以检查堆栈溢出的帮助,当然是学习新东西的永无止境的挑战,我选择我的开发环境来实现这些目标,并做了大量的研究找到每个选项的坏点。
例如。 Swift看起来很有趣,但它是新的,所以我会先等待其他人找到它的问题,发布一些性能基准,看看是否会有一个开源端口,就像.net那样。