【问题标题】:Is is possible to write app for iOS and move object-c code into Android?是否可以为 iOS 编写应用程序并将 object-c 代码移动到 Android 中?
【发布时间】:2014-03-29 06:51:24
【问题描述】:

今天我与 PM 交谈。他说解决“iOS 和 Android 上的同一个应用程序”问题的最好方法是为 iOS 编写 object-c 代码,然后在 Android 应用程序中使用 相同的代码 (https://developer.android.com/tools/sdk/ndk/index.html)。这种方法(在他看来)会给我们带来 DRY 效果(只需维护一个代码)。

我惊呆了,几乎没有对它说什么。但是后来想了想,发现了一些问题:

  1. C++ != 对象-C。可以在Android中将o-c代码添加为c++代码吗?
  2. (假设#1 是可能的)我如何进行布局、活动等。在 C++ for Android 中?
  3. 还有什么时候我们应该/不应该使用Android NDK?

【问题讨论】:

  • 这是不可能的,但你可以使用 Phonegap 或 Titan 类语言来开发可以跨平台运行的移动应用程序。
  • 我认为他将 c 与 obj-c 混淆了。您可能需要为此研究跨平台解决方案。有许多免费和商业产品可以实现这一目标。
  • 1.) 永远不要相信 PM,他们不知道 :P :)(开个玩笑)2.) 这种情况可能是他做的,结帐:stackoverflow.com/questions/14477768/…
  • 喜欢项目经理尝试使用开发人员说话,却弄错了。 ;)

标签: java android ios objective-c


【解决方案1】:

简短的回答是不,这是不可能的。不过http://www.apportable.com

声称使您能够为 Android 编译 iOS 应用程序 - 从而使您能够使用 iPhone 应用程序中的所有代码。

但它不适用于每个框架,但它确实与 Android SDK 挂钩,因此您仍然可以访问这些组件。值得一看,玩一玩。我只是半心半意,你必须从一开始就构建 iOS 应用程序,并计划使用http://www.apportable.com,就像我说它目前不支持所有 ios sdks,你需要解决这个问题.

但这应该回答你的问题。

自 2016 年起,应用便携不再是一种选择 more info,看来 Google 扼杀了梦想。

【讨论】:

  • Apportable 已经倒闭了。
  • 已更新,我什至没有想到这个问题在 2019 年仍然会引起人们的兴趣 ;)
  • 谢谢——这是给某些人的。 :) 作为 Apportable 的替代品,您现在还可以将GNUstep Android toolchain 用于类似目的(另请参阅下面我的单独答案)。
  • 我看到了,但 TBH 到那时你可能会更好地使用 ReactNative 或其他东西。
  • 是的,除非你有一个使用 Objective C 的大型现有代码库。
【解决方案2】:

Objective C 代码不能使用 NDK 编译。但是请查看http://www.apportable.com/,它是一个允许您在 Objective-C 中为 Android 编写代码的库。这可能就是你老板所说的。

【讨论】:

  • 这个支持游戏以外的东西吗?即:普通应用程序通过 HTTP (REST) 连接到服务器?
【解决方案3】:
  1. C++

  2. 您不能直接共享使用 ios 系统框架(UIKit、CFNetwork,...)的代码。

如果您想为整个应用编写一次代码,您可以在 apportable.com 上试一试,就像其他人指出的那样。

【讨论】:

  • 是的,建立在 Android SDK (#1) 之上的 Apportable id 并实现了一堆 iOS 系统框架(#2)
【解决方案4】:

您可以使用GNUstep Android toolchain 在Android 应用程序中使用基于Foundation 和CoreFoundation 的模型代码,然后编写一个新的UI 层,在此之上通过本机NDK 调用与Objective C 模型交互(例如在Android 中)工作室)。

【讨论】:

    猜你喜欢
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    相关资源
    最近更新 更多