我倾向于认为在企业环境中开发移动应用程序最适合开发Intranet Web应用程序。这就是说我被要求考虑是否有特定的企业应用程序只能完成或者作为本机应用程序会更成功。我很好奇Stack Overflow社区的想法。
注意:作为一个组织,我们主要使用BlackBerry设备,但其他平台很好奇。
答案 0 :(得分:5)
一些域名似乎更适合本土应用程序:
实际上,只需查看API即可。任何无法通过webapp获得的API都是一个很好的起点。关于目前在NDA下的4.0 API,我很腼腆。 :)
也就是说,SproutCore Touch提供了一个特定于触摸界面的良好网络平台。
答案 1 :(得分:3)
虽然可能有一些特定的企业应用程序最适合作为本机应用程序,但我想不出任何具体的例子。
然而,虽然我同意你关于内联网网络应用程序通常更好,但我认为一切都取决于谁更好。显然,Intranet Web应用程序更适合开发,更好,因为它们可以交叉播放,但我认为几乎所有应用程序都是最终用户更好的本机。不同意?看看市面上成功的iPhone和Android应用程序的数量,它们只是某些网站数据的本地门户网站。用户更喜欢本机应用程序在移动浏览器上的工作方式。
另外我要考虑的另一件事是,该应用程序是否已经有一个专为桌面系统设计的Intranet Web应用程序。如果有的话,我会使用本机应用程序路由,因为其他移动平台上的用户仍然可以访问桌面版本。但是,如果没有通用门户网站,我会考虑与原生门户网站进行比较。
答案 2 :(得分:1)
理想的做法是做到这两点。
具有安全的restful接口,可以将json或xml提供给本机移动应用程序。宁静的界面将更容易入手,更容易测试,更容易原型,更容易更改。当数据需要同步,备份,克隆或手机丢失/损坏/被盗/升级时,它还可以让生活变得更加轻松。
然后,除了restful接口之外还构建一个本机应用程序也允许使用Native UI环境。它可以让应用程序脱机工作。它可以使用自己的通知系统,而无需通过短信/推送邮件。如果某些相关数据确实是离线镜像的,那么应用程序也会变得更具响应性,并且更容易与其他应用程序一起使用(其中包括应用程序功能共享,我只是在这里代表Android SDK,主要是iPhone SDK的未来版本,而不是Blackberry)。最终结果可能是一个更清洁,更愉快的应用程序,假设它也可以作为本机应用程序完成。
答案 3 :(得分:1)
我建议在了解您要解决的问题并检查应用程序最终用户的需求之后,决定是否创建Web应用程序,本机客户端或两者。如果不了解用户问题,就不可能建议您回答技术问题。
在“关于Face 2.0:交互设计要点”的第8章中,Alan Cooper谈到了软件姿势。其中一种姿势被称为“主权姿势”。此状态表示通常全屏并长时间使用的应用程序,表示给定用户的主要应用程序。 Visual Studio和Eclipse是开发人员主权应用程序的好例子。如果相关接口是用户的主权应用程序,则强烈支持本机客户端。
在特定的企业示例中,服务台应用程序是技术人员的主权应用程序,但它是用户的临时应用程序。我建议这种应用程序的理想因素是用于技术人员的桌面和移动设备的丰富本机应用程序,以及用户的自助服务Web界面。对于技术人员来说,本机应用程序的优势超过了部署成本,因为技术人员通常较少。此外,技术人员可能正在处理网络问题,并且本机客户端的离线可靠性允许技术人员即使在网络不可用时也继续使用该应用程序。
如果用户每天花费超过几个小时与应用程序交互,那么请充分考虑设计良好的本机客户端的优势。如果有多个用户,请考虑每个角色如何使用该应用程序,也许您最终会得到一个混合模型。你的UI策略应该总是基于检查来自任何一个阵营的关注福音的用例,并且应该关注用户体验,而不是开发人员的便利。
答案 4 :(得分:0)
本机应用程序开发的优势主要在于访问无法通过Web API访问的硬件功能,获得本机性能优势(例如在动作游戏中),通过平台存储即时访问付费客户(例如iTunes),以及您不信任浏览器或如何处理它的安全情况。
本机应用程序开发的缺点是您将自己锁定在潜在的专有代码平台中,编写一堆特定于设备的代码,并且您已被供应商锁定。代码更难编写,更难以部署,并且您有可能将地毯从您身下拉出来。 (是的,我正在关注Apple,但可能会发生在任何专有平台上。)
相比之下,Web应用程序基于广为人知且易于处理的技术 - HTML5,CSS3,JavaScript以及JQTouch等优秀的库可以提供帮助。设计精良的网络应用程序大部分都不关心你是否使用黑莓,Android或iPhone,并且可以使用许多较旧且功能较少的型号以及我们甚至没有的新型和设备遇到了,无需重新编译或重构(或者至少不需要进行大量的重新编译或重构......)并且可以访问一些硬件功能,例如通过地理定位API的GPS。但另一方面,Web应用程序可能无法很好地处理大型数据集或高计算要求。如果您正在构建具有金融交易的商业应用程序,您很可能必须推出自己的支付系统。而且你也必须相信浏览器的安全性。
总而言之,大多数应用程序都将作为网络应用程序发挥最佳作用。但是,许多Web应用程序的功能几乎与客户端应用程序无法区分。通过一些用于转换和行为的HTML5离线存储,CSS3和JS功能,可以使许多业务应用程序与本机客户端无法区分。
在iPhone的情况下,我们可以进一步说明:当用户将应用添加到主屏幕时,将iPhone 57x57px图标apple-touch-icon.png添加到您的网络应用程序的根目录将为iPhone提供一个漂亮的自定义图标(iPhone将采用关注圆角和光泽的视觉效果)你可以通过添加点击它的主屏幕图标使iPhone应用程序全屏显示。此时,应用程序拥有自己的图标并全屏运行 - 用户不知道它是基于网络的。
如果您确实想要原生但不想放弃Web标准,那么大多数原生API都能够使用简单的包装器开发基于HTML / CSS / JS的本机客户端,例如Objective-中的UIWebView C。 PhoneGap是一个出色的跨平台框架,可以在iPhone,Android和Blackberry上部署基于标准的Web开发实践。