我有一组功能(类)的,我想与我建立了iPhone和黑莓(JAVA)的应用程序共享。 有没有人有这样做的最佳做法?
Answer 1:
这不会是可能的,据我理解你的问题 - 为iPhone和Java二进制格式不兼容 - 甚至为BlackBerry设备上的本地库。
这不像建设OS X,你可以使用Java unfornately iPhone不支持Java。
最好的办法可能是建立在你的Objective-C库,然后将它移植到Java,比走另一条路轻松过渡。 如果你的程序的Objective-C和确保你的代码没有内存泄漏 - 那么变化并不那么复杂。
如果你把你的类的结构相同,那么你应该找维修简单得多 - 在Java修复bug,你应该发现很容易检查在ObjC方法等相同的错误
希望这有助于 - 对不起,这是不是所有的好消息。
Answer 2:
作为Grouchal提到的 - 你是不是要能够共享两个平台之间的应用程序的任何物理组件。 然而,你应该能够分享您的应用程序的逻辑设计,如果你仔细分离成高度松散层。 这仍然是一个巨大的胜利,因为逻辑应用程序设计大概占了开发工作的很大一部分。
你可以瞄准来包装你与你自己的接口使用平台特定的API(iPhone SDK等)的部分。 这样做你有效地隐藏特定于平台的库,使您的设计和代码更容易在平台的差异打交道时管理。
有了这个地方,以便在出现两种平台上非常相似,你可以写你的核心应用程序的代码 - 即使它们是不同语言编写。 我找到的Java和Objective-C是非常相似的概念(至少在会上我用它的水平),并期望能够与至少下列实现平价:
- 几乎相同的一套Java和Objective-C类具有相同的名称和职责
- 的Java / Objective-C类具有类似的命名方法
- 的Java / Objective-C的方法具有相同的责任和逻辑的实现
单单这将使应用程序更容易跨平台的理解。 当然,代码总是看起来非常不同的边缘 - 即当你开始的观点,线程处理,网络等。但是,这些问题将通过一次开发应该有相当固定的接口API的封装处理。
你也可以从中受益,如果需要以后进一步开发应用程序交付给这两个平台,你可能会发现,您可以重用或扩展您的API封装。
Answer 3:
如果你正在编写一个客户端 - 服务器类型的应用程序,你也应该努力保持尽可能多的逻辑服务器尽可能上。 保持设备到最低限度上额外的业务逻辑的数量。 更可以只把该设备作为一个视图层移植,你必须在所有做少。
除此之外,在所有项目中遵循同样的命名规则和封装结构极大地帮助,尤其是对你的框架代码。
在UI API的易用性和黑莓和iPhone范式是如此的不同,它不会在大多数情况下可以直接端口这种应用程序之间的逻辑。 一个可以让(在我看来)的最大的错误是,试图移植专为一个移动平台到另一个用户体验。 人们黑莓互动VS iPhone手机的方式是非常不同的,所以要准备改造你的用户体验要部署的每个移动平台。
希望这是有帮助的。
Answer 4:
它可以编写C ++代码,使之既能在BB10原生应用和iOS应用程序的工作原理。 的XCode需要看到的C ++文件作为ObjectiveCPP代码。
我目前正在对这样的任务在我的业余时间。 我还没有完成它足以显示或知道这是否是真正可能的,但我没有任何路障运行呢。
您需要将受到纪律处分写设计w代表特定于平台的功能/抽象良好的跨平台的代码。
我的一般模式是,我有“类Foo”做跨平台的东西,而“类FooPlatform”做平台,具体的东西。 类“富”可调用类“FooPlatform”,它抽象了什么具体的平台。
原始跨平台的代码本身不是编译能自身。 独立BB10和XCode的项目都在各自的IDE创建。 每个项目执行一个薄的(几[打]线路)“类FooPlatform”和参考原始跨平台的代码。
当我得到的东西的工作,我可以证明我将再次在这里发布...