Iphone 从现有网站制作移动应用程序

Iphone 从现有网站制作移动应用程序,iphone,ios,mobile,Iphone,Ios,Mobile,我已经开发了一个功能齐全的网站,我们的团队正在寻找将这个网站导出到iPhone应用程序(最终还有其他平台)。我能举的最好的例子是,我基本上已经制作了Facebook,现在我想制作Facebook的应用程序(从iPhone主屏幕启动的应用程序,而不是从浏览器启动的应用程序)。所以,很明显,我们已经有了这个功能,我们只需要将它转换到另一个平台。这有多困难?我们是否必须制作一个全新的软件,并且基本上忽略我们已经拥有的所有现有PHP代码?该应用程序将基本上是相同的网站,除了一些布局的变化。我们可能希望它

我已经开发了一个功能齐全的网站,我们的团队正在寻找将这个网站导出到iPhone应用程序(最终还有其他平台)。我能举的最好的例子是,我基本上已经制作了Facebook,现在我想制作Facebook的应用程序(从iPhone主屏幕启动的应用程序,而不是从浏览器启动的应用程序)。所以,很明显,我们已经有了这个功能,我们只需要将它转换到另一个平台。这有多困难?我们是否必须制作一个全新的软件,并且基本上忽略我们已经拥有的所有现有PHP代码?该应用程序将基本上是相同的网站,除了一些布局的变化。我们可能希望它能够访问摄像头功能,并且肯定能够上传图片,我认为这将排除移动应用程序的可能性?我仍然不明白制作移动应用程序和从iPhone主屏幕启动的应用程序之间的区别。你们对从哪里开始以及这一切有多困难有什么建议吗?如果我们能够获得我们想要的功能,并通过使用现有代码使自己变得更容易,我们将非常激动


谢谢,视情况而定。你基本上可以使用UIWebView和自定义样式表使应用程序成为网站的门户,我相信facebook应用程序就是这样做的。它的性能不如真正的本机应用程序,但它可以在较少维护的情况下很好地满足您的需要。

请参阅《应用商店审查指南》第2.12条

…仅是捆绑为应用程序的网站的应用程序。。。可能被拒绝


让我们从基础开始

移动网站是通过手机的web浏览器访问的网站。HTML页面由web服务器提供(UI针对手机布局进行了优化)

本机应用程序(通常称为“应用程序”)本质上是下载到手机上的可执行应用程序。对于iPhone,它们是用Objective-C编写的。对于Android,它们是用Java编写的。对于Windows Mobile,它们是用C#等语言编写的

以下是您面临的坏消息:

-为了让您的应用程序从iPhone的“主屏幕”启动,必须使用Objective C进行编译。Android/Java也是如此

-为了访问摄像头,需要使用Objective C(或Android的Java)对其进行编译

所以这里有一些好消息给你:

-您可以轻松地将本机应用程序编写为纯UI前端,并使用REST API模型调用现有的服务器端代码以实现业务逻辑。您只需向应用程序公开所需的功能。因此,这是重用现有代码库并使应用程序更简单的一种方法。有一些很好的目标C框架,比如RESTKit,使这变得非常简单

-你可以让你的应用程序真的很俗气,基本上可以让它成为你网站的网络浏览器,但如果你不为iPhone定制它,苹果可能不会批准。对于那些期望应用程序能像应用程序一样运行的iPhone用户来说,这将是一次糟糕的体验。我不建议这样做

-如果您计划在多个平台上发布,或者真的不想维护一个Objective C项目(以及未来的Java项目),您可以使用PhoneGap、Appcelerator Titanium或Sencha Touch之类的工具。这些是包装器,它将把用web技术(HTML5)编写的应用程序编译成本地应用程序。这些HTML5应用程序可以访问摄像头等。您现有的开发人员不必学习Objective-C,可以使用他们已有的HTML/JavaScript技能。这些技术有很多好处。缺点是你的应用程序看起来/感觉不如本地应用程序好,或者使用手机的任何“酷”功能。它会像一个好的移动网站一样运行。如果你有优秀的UI/设计人员,你可以使用这些web技术创建一些非常好的东西。但是,如果你只是想把一个网站模仿成一个本地应用程序(而不是创建下一个杀手级游戏),那么出于一些原因,它可能是你最好的选择


如果你用谷歌原生应用程序与phonegap(或sencha touch)进行对比,你会看到大量关于优缺点的信息。这可能是你开始学习的好地方。

除了@Joel的良好响应之外,你应该首先了解你应该向用户提供什么样的功能,如果主要功能只能通过使用来查看网站,只是为了能够在商店中分发应用,正如@Teofilo所说。目前,开发跨平台应用程序(ie)有不同的解决方案,允许您通过UIWebView使用html5、ajax等技术为不同平台开发应用程序。
这取决于您希望向用户提供的功能类型,在本机开发的情况下,性能肯定会最好,因为您对应用程序和设备有更多的控制权,但如果共享功能易于实现,则使用跨平台解决方案可能仍然很方便,为了在不同的平台上获得相同的结果。同样,无论您在后端使用何种技术,重要的是使用标准格式/协议进行通信(即http/json)。 这只是我的观点,我希望有人能对这个话题给出自己的观点,因为我注意到这在今天是非常反复出现的。

然而,这是一个好问题。

为许多设备优化转换后的应用程序非常困难。如果我是你,我不会一个人做那件事。只需使用Jambrum转换您的网站,而不是自己完成。 资料来源:

你知道Objto-C有多好吗?不多,我有一些好的C++背景,我对OB-C的不同之处有一个大致的了解。这就是我的研究让我相信的,只是有时候人们会用“应用程序”这个词