我正在开发一个 iOS 社交网络应用程序,该应用程序将涉及用户共享和评价照片。在过去的一年左右,我一直在自学如何使用可可触摸进行开发,现在我已经准备好开始使用该应用程序的网络方面了。不幸的是,我的网络/数据库经验为 0,并且想知道是否有人对要考虑的事项以及从何处/如何开始有任何好的建议。我很可能不会构建自己的服务器,而是会使用机架空间之类的东西。任何意见,将不胜感激。
2 回答
iOS 网络应用程序入门。以下是所需的东西:-您确实需要良好的MySQL 后端开发经验和复杂的数据库查询以及开发 Web 服务的经验。在根目录中,您需要服务器主机作为后端和管理模块,正如您在问题中提到的那样,例如竞赛空间或任何其他。你需要花几个月的时间来完成 mysql 后端、web 服务和管理模块的实现。
对于功能齐全的社交网络应用程序,您的首要任务是管理用户。登录/注册将在那里。每个用户都可以发布他的状态并可以评论其他用户的状态。所有状态帖子或评论都将具有其唯一的 ID 和与用户 ID 表的关系。可能是图片上传和对照片的评论也会在那里所以在后端会有很多表格和它们之间的关系。
对于社交网络应用程序,后端/Web 服务端和 iOS 端的工作量都会更大。
这是一个相当抽象的问题。
最终,您将不得不专注于特定架构(哪个数据库,哪种网络技术),但在此之前,您需要大致了解可用选项是什么以及每个选项的优缺点是。
服务器数据库可能是最简单的,因为它没有那么大的区别。选择是 sql 数据库(mysql、sqllite ....),而不是 sql 数据库(nosql,在内存表中)或更高级别的抽象,您可以在其中隐藏差异并稍后决定(例如核心数据)。这可能会受到您的部署决策的限制,例如,如果您选择 LAMP(Linux、Apache、MySql、PHP),您将有更多的机架选项选择。如果您坚持使用 Apple 套件并使用 MacOS X 后端,则您可能有其他网络架构选项(例如 DistributedObjects。
网络架构也是众多选择中的难点。确实有几十种选择,有很多不同的优点和缺点。由于这是您首次涉足该领域,因此我将易用性和帮助的可用性列为您的首要任务。以下是您可能想要研究的一些流行技术(按字母顺序排列,以尽量减少易燃性:))。DistributedObjects (apple), JAXP, JSON, RPC, SOAP, XML (bare, without the soapy bits)。
您应该问自己的另一个问题是“您可以只使用数据库连接,还是需要在后端进行处理?”。如果可以的话,你可能只需要使用远程数据库就可以逃脱,然后你只需要学习核心数据(这仍然会让你忙很长时间)。
一旦确定了要使用的技术,就可以开始学习了。
您提到使用托管服务器。您将希望能够在本地运行测试服务器。幸运的是,数据库和网络技术的几乎所有有价值的选项都可以在任何类似 unix 的机器上运行,因此您可能可以使用常规的开发机器。
还要记住,其中一些选择是宗教性的,所以你读到的每个人都会有强烈的偏见(当然包括我自己)。