技术同时编写iPhone,黑莓和Android手机? [关闭]

问题描述 投票:31回答:12

是否有策略或至少是最佳实践来编写在iPhone,BlackBerry和Android上运行的应用程序?

我对BB和Android的开发环境一无所知,但我认为它们都支持Java应用程序。

我知道iPhone需要一个ObjectiveC部分(以及一个全新的UI)。

有没有人这样做过?

iphone android blackberry
12个回答
20
投票

你可能想看看http://phonegap.com/


1
投票

另一个框架是http://www.mosync.com/

它似乎支持所有主要平台。


1
投票

Adobe Flex和Flash Builder看起来也很有前景。你应该考虑它的专有,但在他们的开发者中心网站上使用video似乎是值得的。顺便说一下,最新版本目前支持Android。 iOS的支持应该是在2011年6月通过更新。


1
投票

如果你想编写跨平台的网络应用程序,SenchaTouchPhonegap是一个不错的选择。

如果您更喜欢原生应用,最好的跨平台解决方案是Titanium。使用Titanium,您可以用Javascript编写应用程序,并将JS编译为本机代码(Objective-C,Java ...)


8
投票

一种技术适用于某些类型的应用程序,例如参考应用程序:使用HTML / CSS / JavaScript并编写使用平台的HTML查看器对象的紧凑客户端来读取本地嵌入的Web内容。

编写在BlackBerry和Windows Mobile上运行的跨平台应用程序的一种技术是用HTML编写它。我不得不使用在BlackBerry Browser和Pocket Internet Explorer上运行的HTML和CSS子集。我也使用了少量的JavaScript。

我写了非常小的观众,使用jar://(BlackBerry)和res://(Windows Mobile)URL来运行内部存储的HTML和图像。通过使用自定义版本的浏览器字段,我能够将所有HTML和图像文件作为BlackBerry应用程序的一部分嵌入。对于Windows Mobile,我能够在我的Windows Mobile应用程序中使用Pocket Internet Explorer作为嵌入式ActiveX。

注意 - 对于BlackBerry,我必须支持运行OS 4.2的旧设备。为此,我回收了许多RIM代码示例,例如SecondaryResourceFetchThread.java来拉取应用程序中嵌入的图像,并通过实现HttpConnection的自定义连接对象传递给我,我设计用于处理jar:// URL的内部在我的BlackBerry应用程序中嵌入HTML /图像。弄清楚这有点棘手。对于Windows Mobile,它更直观。

还有其他方法可以满足我的需求,但它完美适用于医学参考应用程序,我能够为BlackBerry和Windows Mobile设计单独的CSS文件,以便为两个移动设备重新格式化内容略有不同。 (这有点像过去测试Netscape与Internet Explorer的兼容性。)

这可能不适用于您的情况,但如果您的应用程序是Web风格的“参考”应用程序,并且您知道如何做好HTML,则此方法可能有效。


5
投票

我们目前正在研究这个问题,我们发现:

Titanium

Kony Solutions

这些产品有很好的评论。社区版免费提供Titanium。


4
投票

另一个选择是Rhodes,它是一个Ruby框架。


1
投票

http://j2mepolish.org可能是不错的选择,但iphone只是在路线图中。但是已经支持android和BB以及所有其他j2me手机。


1
投票

如果您正在编写游戏,请在http://www.cuttlefishengine.com查看我的跨平台(iPhone,Android等)解决方案,名为Cuttlefish Engine。


1
投票

编写多平台应用程序时,需要确定要共享的代码量。 2个选项是

  • 一切。您使用(编写)跨平台gui库和系统例程
  • 逻辑是跨平台的,但表示层是特定于平台的

第二种方法倾向于提供更好的应用程序,但这是一项更多的工作(假设您不需要编写跨平台库)。

移动世界的棘手问题是选择一种语言。现在你有

  • Java:Android,Blackberry,Java ME手机
  • Objective C / C:iPhone,Windows Mobile
  • Javascript:Palm Pre

您可以将java交叉编译为javascript,反之亦然。你也可以编译java到C或使用你可以从C调用的javascript引擎。我认为你不能在java / javascript手机上运行C.这导致我建议用Java / Javascript编写代码。交叉编译(以及一般的混合语言)有使得调试变得更难的缺点。


1
投票

此外,您可以尝试移动社区框架(MCF)。这是一个在iPhone,Android,WinMobile,Symbian和BlackBerry上本机运行的跨平台框架。如果无法直接连接,MCF将在Wi-Fi Ad-Hoc网络中或通过专用代理服务器为您处理网络,位置和接近操作。它有简单的API,可以免费使用。这样,您可以在每个平台上单独开发应用程序界面和逻辑,并使用MCF以您喜欢的方式连接应用程序的实例。

更多信息在http://uvamobiltec.com


1
投票

你总是可以在网上编写一个javascript应用程序,它应该适用于所有三个。当然,这不会安装在手机上。

Android有一个运行Javascript的webview。我相信其他平台也会这样做。如果您在javascript中编写了大部分逻辑,那么您可以跨平台重用该javascript。

© www.soinside.com 2019 - 2024. All rights reserved.