是否有策略或至少是最佳实践来编写在 iPhone、BlackBerry 和 Android 上运行的应用程序?
我对 BB 和 Android 的开发环境一无所知,但我认为它们都支持 Java 应用程序。
我知道 iPhone 需要一个 ObjectiveC 部分(以及一个全新的 UI)。
有人做过吗?
是否有策略或至少是最佳实践来编写在 iPhone、BlackBerry 和 Android 上运行的应用程序?
我对 BB 和 Android 的开发环境一无所知,但我认为它们都支持 Java 应用程序。
我知道 iPhone 需要一个 ObjectiveC 部分(以及一个全新的 UI)。
有人做过吗?
您可能想查看http://phonegap.com/
一种适用于某些类型的应用程序(例如参考应用程序)的技术: 使用 HTML/CSS/JavaScript并编写使用平台的 HTML 查看器对象的紧凑客户端来读取本地嵌入的 Web 内容。
编写在 BlackBerry 和 Windows Mobile 上运行的跨平台应用程序的一种技术是全部用 HTML 编写。我必须使用在 BlackBerry Browser 和 Pocket Internet Explorer 上都可以使用的 HTML 和 CSS 子集。我也使用了少量的 JavaScript。
我编写了非常小的查看器,它们使用 jar:// (BlackBerry) 和 res:// (Windows Mobile) URL 运行内部存储的 HTML 和图像。通过使用自定义版本的浏览器字段和 . 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,那么这种方法可能会奏效。
另一个值得关注的选项是Rhodes,它是一个 Ruby 框架。
在编写多平台应用程序时,您需要决定要共享多少代码。2个选项是
第二种方法往往会提供更好的应用程序,但它的工作量更大(假设您不需要编写跨平台库)。
移动世界的棘手之处在于选择一种语言。现在你有
您可以将 java 交叉编译为 javascript,反之亦然。您还可以将 java 编译为 C 或使用可以从 C 调用的 javascript 引擎。我认为您不能在 java/javascript 手机上运行 C。这导致我建议用 Java/Javascript 编写代码。交叉编译(和一般的混合语言)的缺点是使调试更加困难。
http://j2mepolish.org可能是不错的选择,但是,iphone 仅在路线图中。但是已经支持 android 和 BB 以及所有其他 j2me 手机。
另外,如果您正在编写游戏,请查看我的名为 Cuttlefish Engine 的跨平台(iPhone、Android 等)解决方案,网址为http://www.cuttlefishengine.com。
此外,您可以尝试移动社区框架 (MCF)。这是一个在 iPhone、Android、WinMobile、Symbian 和 BlackBerry 上本地运行的跨平台框架。如果无法直接连接,MCF 会在 Wi-Fi Ad-Hoc 网络中或通过专用代理服务器为您处理网络、位置和邻近操作。它具有简单的 API,并且可以免费使用。通过这种方式,您可以在每个平台上分别开发您的应用程序接口和逻辑,并使用 MCF 以您喜欢的方式连接您的应用程序实例。
更多信息请访问http://uvamobiltec.com
你总是可以在网络上编写一个 javascript 应用程序,它应该适用于所有这三个。当然,这不会安装在手机上。
Android 有一个运行 Javascript 的 webview。我相信其他平台也一样。如果您使用 javascript 编写大部分逻辑,则可以跨平台重用该 javascript。
另一个框架是http://www.mosync.com/
它似乎支持所有主要平台。
如果你想写跨平台的 web 应用,SenchaTouch或Phonegap是一个不错的选择。
如果你更喜欢原生应用,最好的跨平台解决方案是Titanium。使用 Titanium,您可以用 Javascript 编写应用程序,并将 JS 编译为本机代码(Objective-C、Java...)
Adobe Flex 和 Flash Builder 看起来也很有前途。你仍然应该考虑它的专有性,但他们的开发者中心网站上的视频似乎值得。顺便说一句,最新版本目前支持Android。对 iOS 的支持应该会在 2011 年 6 月通过更新推出。