我想开发一个同时针对 android 和 iphone 的应用程序。我猜他们使用 Java 和 Objective-C。我可以使用像 Python 这样的单一语言吗?这是最好的路线吗?使用 Python 会失去性能、功能等吗?我会遇到什么限制吗?
4 回答
您不能在 Android 或 iPhone 平台上使用 Python。这显然被 Apple SDK 许可所禁止,而 Android 实际上有一个Android 脚本环境,但您很快就会意识到这并不适用于最终用户。无论如何,iPhone 不支持 Python 的事实将其排除在跨平台选项之外。
我认为构建支持 Android 和 iPhone 的真正跨平台应用程序的唯一方法是通过 HTML5。当然,HTML5 应用程序并不是完全原生的,但您可能会想出一种混合设计,在该设计中使用本地托管在设备或网站上的 HTML5 内容,并在原生 veb 视图中显示。
纯 HTML5 应用程序不是完全原生的,因为它们是 HTML5 而不是 CocoaTouch (Android) 应用程序。他们只能做 HTML5 允许的事情并具有 HTML5 的外观。一个主要限制是设备上没有可用的特殊硬件,如加速度计、陀螺仪等。无论如何,它们提供了很大的灵活性和最大的跨平台兼容性。
这是一个极端。另一个极端是“完全原生的应用程序”,即用Objective C/Cocoa Touch 或Java/Android 开发的应用程序。完全访问 SDK、特殊硬件、原生外观和感觉,跨平台不兼容。
还有第三种可能性,即混合应用。您可以定义原生骨架 UI(例如,在 iPhone 上,基于导航的应用程序)并通过 HTML5 提供视图内容和详细界面。骨架 UI 不会是可移植的,但它可以让你做的比在纯 HTML5 应用程序上做的要多得多。这种方法通常需要在您的应用程序中使用 HTML 查看器类,以便您拥有:骨架 UI + 原生 Web 查看器 + HTML5 内容。
关于“设备上本地托管的 HTML5 内容”:您可以将 HTML5 应用程序托管在 Web 服务器上,也可以本地托管到设备并从那里加载(无 Web 访问权限)。
phonegap是您可以用来定位 iphone 和 android.through javascript、html 的方式之一。
我会考虑咬紧牙关,以最终学习 Java 和 C/Objective-C 为最终目标。我这里有一些比较。因此,也许用 Java/Android 编写一个简单的应用程序,然后尝试在 iOS/C/Objective C 中复制它。如果你采取这种让星星登陆月球的方法,你会忘记你在你的学习过程中学到了多少语言寿命。