Objective-C和Android [已关闭]

2022-09-02 02:17:07

我刚刚完成了一个相对较大的Android项目,它在我的嘴里留下了苦涩的味道,因为我知道它永远不会在太阳系这边最普遍的手机之一上运行(那个果味小俱乐部的手机)。

因此,对于我的下一个项目,我想以一种使大多数组件易于在iPhone和Android平台之间传输的方式编写它。我想到的方法是在Objective-C中编码大部分内容,然后分别在更多的Objective-C和Java中添加特定于平台的部分。在Android方面,这将需要使用NDK。

我对C的了解是好的,但我对Objective-C的了解接近于零,我不想学习C++。上述方法有多理智,有没有更好的方法?有没有办法用Java编写代码,同时仍然进入未被黑客入侵的iPhone市场?我认识的人(iPhone用户)到明年拥有Android手机的可能性有多大?


答案 1

退后一步,想想最终你能在逻辑上分享什么。

UI模型是完全不同的,组件是不同的。最后,您可以共享的是数据对象类,可能是某些算法。这甚至不像过去那样现实地最终共享网络代码,因为你没有直接使用套接字,而是在使用HTTP库。

那么,您为此付出的所有努力最终真的会找到回报吗?在我看来,最终结果将是一个难以更新的脆弱混乱,并且在两个平台上都是平庸的,而不是在任何一个平台上都很棒。

你为什么要写应用程序?让您或您的用户的生活更轻松?


答案 2

其他人基本上都这么说过,但我想让它更明确。你最好的选择可能是写:

  1. 跨平台数据模型和核心逻辑,使用:
    • GNUstep (Obj-C) 的位,或
    • CF-精简版 (C),或
    • 无论您喜欢什么,只要它是跨平台:P
  2. 仅限 iPhone 的接口代码,使用 Cocoa Touch (Obj-C)
  3. 仅限Android的界面代码,但是他们为Android做了。

这是尽可能接近的;任何编写跨平台接口代码的尝试无疑都会导致两个平台上的应用程序平庸。但是,使所有其余的代码可移植,并围绕它包装一个特定于设备的接口,一直在完成,并且对于一些iPhone开发人员来说效果很好。