我已经开发了一个功能齐全的网站,我们的团队正在寻求将该网站导出到iPhone应用程序(最终是其他平台)。我能给出的最好的例子是我基本上已经制作了Facebook,现在我想制作Facebook的应用程序(从iPhone的主屏幕而不是浏览器启动的应用程序)。显然,我们已经拥有了这些功能,我们只需将其转换为另一个平台即可。这有多难?我们是否必须制作一个全新的软件并基本上忽略我们已有的所有现有PHP代码?该应用程序基本上将与网站相同,除了一些布局更改。我们可能希望它能够访问相机功能并且绝对能够上传图片,我认为这将排除移动应用程序?我仍然不理解制作移动应用程序和从iPhone主屏幕启动的应用程序之间的界限。你们有什么建议可以从哪里开始,这有多难?如果我们能够获得我们想要的功能并通过使用现有代码使自己更容易,我们会很激动。
谢谢
让我们从基础开始。
移动网站是通过手机的网络浏览器访问的网站。 HTML页面由Web服务器提供(UI针对电话布局进行了优化)。
本机应用程序(通常称为“app”)本质上是下载到手机的可执行应用程序。对于iPhone,这些是用Objective-C编写的。对于Android,它们是用Java编写的。对于Windows Mobile,它们是用C#等编写的。
这是你面临的坏消息:
- 为了使您的应用程序从iPhone的“主屏幕”启动,必须使用Objective C进行编译。与Android / Java相同。
- 为了访问摄像头,需要使用Objective C(或Java for Android)进行编译。
所以这里有一些好消息:
- 您可以轻松地将原生应用程序编写为纯UI前端,并使用REST API模型为业务逻辑调用现有服务器端代码。您只需公开需要向应用程序公开的功能。这是重用现有代码库并使应用程序更简单的一种方法。像RESTKit这样的好的Objective C框架使这很容易。
- 你可以让你的应用程序真的很俗气,基本上使它成为你网站的网络浏览器,但如果你没有为iPhone定制它,可能不会被Apple批准。对于期望应用程序像应用程序一样执行的iPhone用户来说,这将是一种糟糕的体验。我不会推荐这个。
- 如果您计划发布到多个平台,或者实际上不想维护Objective C项目(以及将来的Java项目),您可以使用PhoneGap,Appcelerator Titanium或Sencha Touch之类的东西。这些包装器将采用Web技术(HTML 5)编写的应用程序,并将它们编译为本机应用程序。这些HTML 5应用程序可以访问相机等。您现有的开发人员不必学习Objective-C并且可以使用他们已有的HTML / JavaScript技能。这些技术有很多好处。缺点是您的应用程序看起来/感觉不如本机应用程序或使用手机的任何“酷”功能。它将像一个好的移动网站一样执行sorta。如果您拥有优秀的UI /设计人员,您可以使用这些Web技术创建一些非常好的东西。但如果您只是想将网站模仿到本机应用程序(而不是创建下一个杀手级游戏),那么出于多种原因,这可能是您最好的选择。
如果你使用google native app与phonegap(或sencha touch),那么有很多关于利弊的信息。这可能是你开始学习的好地方。
除了@Joel的良好反应之外,您应该首先了解您应该为用户提供哪些功能,如果主要功能只能使用以下内容查看网站 UIWebView
只是为了能够在商店分发应用程序,正如@Teofilo所说 不允许。目前,开发跨平台应用程序有不同的解决方案(即 PhoneGap的),允许您通过UIWebViews使用html5,ajax等技术为不同平台开发应用程序。
这取决于您希望为用户提供的功能类型,在本机开发的情况下,性能肯定是最佳的,因为您可以更好地控制应用程序和设备,但仍然可以方便地使用交叉-platform解决方案,如果共享功能易于实现,以便在不同平台上获得相同的结果。在后端使用什么样的技术也不是很重要,重要的是使用标准格式/协议进行通信(即http / json)。
这只是我的观点,我希望有人可以就这个话题给出他的看法,因为我注意到今天非常复发。
不过好问题。
这取决于。你基本上可以使用UIWebViews和自定义样式表使应用程序成为网站的门户,我相信facebook应用程序。它的性能不如真正的原生应用程序,但它可以很好地满足您的需求,同时减少维护工作量。