我们创建在移动设备上运行的非游戏程序; iPhone,Windows Mobile,Android,Palm WebOS等。我们的主程序是用C#编写的Windows Mobile,我们已经被要求将它移植到iPhone上。我们不期待:
我们已经决定,作为一种策略,我们希望在尽可能多的移动平台上同时创建所有新产品,这是一项艰巨的任务。
我们知道我们不得不屈服于这些,但我们更愿意:
我的问题是这个; 对于为2-5个最受欢迎的移动平台开发最佳策略,您有什么建议?
编辑:根据评论,我想澄清一下我们在PalmOS和Winmobile上都有一款我们很受欢迎的产品。它在两个平台上完全相同,使用户可以轻松切换手持设备并仍然使用它。
现在我们即将创建许多新的业务应用程序,并希望将其扩展到其他硬件/操作系统。您有什么建议在最少的痛苦下部署在许多新平台上?
答案 0 :(得分:7)
考虑通过网络实施您的应用程序。这违反了您“避免用户连接到网络”的偏好,但出于以下原因考虑网络:
答案 1 :(得分:5)
考虑使用Appcelerator Titanium,Rhomobile的Rhodes,PhoneGap,xmlvm.org或其他跨设备工具包。
答案 2 :(得分:4)
我假设您已经完成了市场调查,并且实际上知道所有平台都将盈利,而不仅仅是耗尽您的资源开发一两个。
除非您违反“无连接到互联网”规则,否则没有什么好回答。但是有一个很好的答案;普通老C。
在普通的旧C中实现所有应用程序逻辑。然后;
iPhone - Objective-C是C的严格超集,因此只需按原样使用代码即可。并使用Cocoa Touch在Objective-C中编写UI。
Android - Android的Java有JNI用于调用用C编写的本机代码。编写一个薄的粘合层,用普通的Android for Android实现你的UI。
Windows Mobile - 您可以从任何.NET应用程序调用本机代码。所以编写另一个胶水层,并使用C#或您喜欢的.NET语言实现您的UI。
Symbian - Symbian使用C ++的变体,所以就像在iPhone上一样,您可以按原样调用C代码。使用C ++和Symbian API编写UI:s。
如果您违反“无连接到互联网”规则,那么使用现有的C#代码实现服务器并使用HessianC#将其作为Web服务公开是一件轻而易举的事。然后,Hessian实现适用于您可以安装应用程序的每部手机,自2002年左右开始销售。
答案 3 :(得分:3)
我建议您将应用程序的核心与GUI分开。因此,您可以继续使用C#for Windows mobile和iPhoneOS开发应用程序(感谢monoTouch)。使用此策略,您只需在Windows移动(C#)和iPhone(Cocoa Touch)上开发特定的GUI。
对于其他移动操作系统,您无法使用跨平台开发环境(目前)。您需要重新开发所有应用程序。
所以:
答案 4 :(得分:2)
根据您的匆忙,我听说VMWare正在开发一种移动虚拟化产品,可以将平台统一到移动设备上的VM内的单个执行点。它几乎肯定会支持大多数智能手机平台(Windows Mobile,Android,Symbian,Blackberry甚至iPhone)。当他们支持所有人时,他们(和我们)肯定会受益最多。
如果你不赶时间,也许等一下。
答案 5 :(得分:1)
使用I#的c#应用程序检查Monotouch。它是iphone的.net框架的OSS版本。
答案 6 :(得分:1)
我会反对并给你一些强烈的爱,而不是简单地回答你提出的问题。
我的想法是,您为什么要制作2-5版本的应用程序,这些版本最多会在所有平台上获得不冷不热的接收?因为这就是你要得到的。
如果您希望制作受欢迎的应用程序并让用户兴奋地使用它们,请让他们利用该平台。 iPhone应用程序应该经过深思熟虑的用户输入,并利用尽可能多的平台功能,如mutl-touch,简易数据存储,加速度计,相机等。
Palm应用程序在后台运行良好,所以写一些可以充分利用它的东西。它可能甚至不止一个应用程序,以保持Palm的简单和小的应用程序方法。
Android应用可以与系统更紧密地集成,因此让他们这样做是为了用户的利益。
任何应用程序的主要好处应该是您完全理解域,并且可以描述问题域的哪些方面最适合任何给定设备的优势。移动应用程序很小(ish),并且尝试跨设备共享代码可以获得任何小的收益(以及它如何在Java / Obj-C中完全更好地工作,而不是Android与Blackberry库之间的差异?)在您的失真中完全丢失了通过住宿的棱镜来理解。
答案 7 :(得分:1)
尝试使用PhoneGap!您需要知道的只是网络技术。
答案 8 :(得分:0)
你的问题有点晚了。但您可以使用Rhodes(http://rhomobile.com/products/rhodes)为每个主要的智能手机操作系统编写代码。成千上万的其他开发人员。 Rhodes是第一个智能手机应用程序框架,也是唯一一个提供Web开发人员对本机智能手机开发所享有的模型视图控制器优势的框架。