Android vs iPhone vs Windows Phone vs其他作为内部业务软件平台的平台

Android vs iPhone vs Windows Phone vs其他作为内部业务软件平台的平台,iphone,android,windows-phone-7,symbian,Iphone,Android,Windows Phone 7,Symbian,我正在评估智能手机操作系统和硬件平台(迂回地说,是移动运营商),看看哪一个最适合提供定制业务软件。我们的应用程序只供内部员工使用。以下是影响选择的一些功能和要点: 我们的应用程序需要访问大约1GB的专有数据。我们可以使用嵌入式SQL数据库,但为了提高速度,我们更倾向于访问某种文件系统,或者可能是SD卡存储 这些数据在移动端大部分是只读的。但我们确实需要定期从公司数据源进行更新。这可以通过电线实现,或者通过与工作站对接,或者通过取出SD卡并在PC上更新数据来实现 我们的应用程序将是专有数据的图形

我正在评估智能手机操作系统和硬件平台(迂回地说,是移动运营商),看看哪一个最适合提供定制业务软件。我们的应用程序只供内部员工使用。以下是影响选择的一些功能和要点:

  • 我们的应用程序需要访问大约1GB的专有数据。我们可以使用嵌入式SQL数据库,但为了提高速度,我们更倾向于访问某种文件系统,或者可能是SD卡存储

  • 这些数据在移动端大部分是只读的。但我们确实需要定期从公司数据源进行更新。这可以通过电线实现,或者通过与工作站对接,或者通过取出SD卡并在PC上更新数据来实现

  • 我们的应用程序将是专有数据的图形化可视化。数据用于农业/生物技术/研究环境

  • 代码执行速度至关重要

  • 1GB的数据将在我们创建的多个应用程序之间共享

  • 设备将在全球范围内使用,但用户数量相对较少(约1000人)

  • 用户在室内和室外从事农业研究。在室内,它们具有良好的网络连接。在户外,连通性很差。他们一年中也会旅行一段时间

  • <>我们的开发人员对C和.NET(主要是Windows窗体)有一定的经验,也有一些对C++和java的接触。我们在几年前用.net和palm操作系统做了一些移动开发,一些开发人员在学习iPhone开发时也做了一些修补

  • 最好是跨平台,不受特定无线提供商或软件平台的限制。但如今,供应商锁定似乎成了游戏的名称

  • 我们将自己部署应用程序,不需要应用程序商店等


我知道有很多东西需要消化。那么我的问题是什么?我想知道哪些设备和平台最适合我们的工作。我还希望为这些平台开发了内部业务软件的开发人员加入进来,分享他们所学到的知识。

这肯定是一个艰难的过程

我首先要排除的是iOS平台:

  • 封闭的心态
  • 严格的出版规则,即使是企业内部的发展
  • 目标C/Cocoa Touch是学习的必经之路
  • 有限且昂贵的设备
Symbian是一个非常受欢迎的平台,但只有一个原因,那就是最便宜的智能手机操作系统。我认为,虽然它很好,但所有其他平台都更好,更重要的是,随着时间的推移,它会变得更好,Symbian终于开始松懈了

Windows Phone:我还没有做过propper研究,但对我来说,winMO似乎更适合于商业解决方案,Windows Phone更多的是一种终端消费产品,面向社交网络和在线繁荣

黑莓:在保证数据安全方面做得很好,但不如iOS或安卓作为一个平台。它提供了许多其他硬件无法做到的东西。如果你管理的是极其机密的信息,请查看黑莓


Android:我个人目前最喜欢的API,基本上与infinte工具一起使用很容易,它与iOS一样灵活,没有所有疯狂的限制。有50多台设备可以买到你想要的东西,价格从200美元到800美元不等,你可以选择你想要的硬件有多好。谷歌在这方面也投入了大量的工作,所以期待它越来越好,只是为了让你有一个想法,Android在2009年第三季度的市场份额为3.5%,在2010年第三季度的市场份额为25.5%。像这样的增长是罕见的,对我来说,这表明Android是一个平台,在这个平台上下赌注是明智的。

如果你对黑莓的传统企业集成功能感兴趣,你可以看看

否则,就目前流行的平台而言,android可能是你最好的选择(一些更传统的基于linux的手机堆栈在技术上可能更可取,但它们的未来还不确定)

您拥有独立部署应用程序的完全权限

大多数Android手机要么接受高达32GB的SD卡,要么提供16GB的内置存储空间。您可以使用wifi或将其作为U盘安装到pc上进行更新(当然还有移动数据)

虽然android促进了java开发,但除了用于应用程序生命周期和用户界面之外,实际上并不需要使用它。你可以用C++中的大多数普通的非特权UNIX类型的能力编写C++中的所有核心代码,或者C++中有一个缓慢缩小的限制列表。OpenGL ES可用于显示。实际上,最新版本的android提供了已经编写的必要java包装器,使您能够创建C/C++应用程序,而无需自己编写任何java代码

使用安卓系统的另一个原因是可能部署您自己的定制设备,不一定是智能手机,也可能是平板电脑/pda或加固系统


此外,如果您的大部分代码是C/C++代码,并且您的开发人员使用合理的抽象,那么您应该能够创建一个项目,该项目将同时构建为桌面和移动应用程序,通过使用UI和应用程序容器包装核心代码。

iPhone上的Monotouch可能是您的最佳选择-尤其是对于您可能不需要该平台全部功能的公司软件。在速度关键型代码中,您可以根据需要退回到Objective-C甚至C

我主张iOS优于其他平台的原因之一是:

1) 更强大的框架。Android有相当好的框架,但它们没有类似C的东西