【问题标题】:Getting started with servers / networking for an iOS applicationiOS 应用程序的服务器/网络入门
【发布时间】:2012-07-12 04:35:07
【问题描述】:

我正在开发一个 iOS 社交网络应用程序,该应用程序将涉及用户共享和评价照片。在过去一年左右的时间里,我一直在自学如何使用可可触摸进行开发,现在我已经准备好开始使用该应用程序的网络方面了。不幸的是,我的网络/数据库经验为 0,并且想知道是否有人对要考虑的事项以及从何处/如何开始有任何好的建议。我很可能不会构建自己的服务器,而是会使用机架空间之类的东西。任何建议将不胜感激。

【问题讨论】:

    标签: iphone objective-c ios cocoa-touch network-programming


    【解决方案1】:

    iOS 网络应用程序入门。以下是所需的东西:- 您确实需要有良好的 MySQL 和复杂数据库查询方面的后端开发经验以及开发 Web 服务的经验。在根目录中,您需要服务器主机作为后端和管理模块,正如您在问题中提到的那样,例如竞赛空间或任何其他。您需要花费几个月的时间来完成 mysql 后端、Web 服务和管理模块的实现。

    对于功能齐全的社交网络应用,您的首要任务是管理用户。登录/注册将在那里。每个用户都可以发布自己的状态,也可以评论其他用户的状态。所有状态帖子或 cmets 都有其唯一的 ID 和与用户 ID 表的关系。可能是图片上传,照片上的cmets也会有,所以后端会有很多表和它们之间的关系。

    对于社交网络应用,后端/Web 服务端和 iOS 端的工作量会更大。

    【讨论】:

    • 感谢您的评论。只是出于好奇,为什么需要 PHP?我认为这仅适用于 HTML 和网页。还有,网络服务是什么意思?
    • 另外,只是好奇,但这会涉及后端的开发人员团队吗?只是扮演魔鬼倡导者......
    • 好吧,我对 PHP 这个词表示歉意,更具体地说,它应该是“PHP Web 服务”。它是开发 Web 服务的替代方案,或者您也可以使用 .net 来开发 Web 服务。
    【解决方案2】:

    这是一个非常抽象的问题。

    最终,您将不得不专注于特定架构(哪个数据库、哪种网络技术),但在此之前,您需要大致了解哪些可用选项以及优势和每个人的弱点是。

    服务器数据库可能是最简单的,因为它并没有太大的区别。选择是 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 的机器上运行,因此您可能可以使用常规的开发机器。

    还要记住,其中一些选择是宗教性的,所以你读到的每个人都会有强烈的偏见(当然包括我自己)。

    【讨论】:

    • 感谢您长时间、深思熟虑的回复。我认为我很有可能只需要一个数据库连接就可以摆脱困境,但我不确定我是否理解 CoreData 如何从我所读到的内容中发挥作用。 CoreData 似乎是在客户端存储对象?我在 Apple 中读到它不被视为数据库......但也许我没有正确理解它。
    • Core Data 是数据存储之上的一层,它处理内存中的对象以及与存储的交互。您可以选择您希望它使用的存储方法(数据库、普通文件、xml 等)。
    猜你喜欢
    • 2011-02-19
    • 2021-01-17
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多