ios - 创建端到端 iOS 应用程序时,应该先创建前端还是后端?

标签 ios cocoa lamp frontend backend

<分区>

我已经做了 10 年的开发人员(非 iOS),并且在一家大公司工作,从未创建过端到端的应用程序。刚刚在非常大的应用程序上工作。

我开始接触 iOS 是为了好玩,脑子里有一个我想创建的应用程序。我已经使用 iOS 应用程序“界面”对整个事物进行了线框化。从那时起,我就开始编码了。我在 Storyboard中有大约 15 个场景(整个应用程序可能超过 100 个),现在我只是使用硬编码的“假”数据。

但是,我最近开始考虑也许我应该在那里创建数据库和一些初始数据,而不是使用所有这些硬编码的虚假数据。

有没有人有任何建议和理由说明为什么一种方式比另一种方式更好?

我应该在创建前端之前创建后端吗?如果我这样做,那么我添加的每个新场景都可以从一开始就使用真实数据,而不必替换伪造的硬编码数据。

此外,我对创建后端知之甚少。我正在创建的应用程序与 twitter 完全不同,但对于数据访问和本例而言,假设它是。它的应用程序主视图类似于 twitter。用户可以点击刷新并从服务器获取许多新数据点(twitter 中的“tweets”)。所以应用程序可能是非常数据密集型的。我最好还是使用 Parse 之类的东西并为他们的服务付费,或者在 LAMP 中创建一些东西,或者其他东西。在过去的 10 年里,我经常使用 SQL 和数据库,并且对后端的这方面非常满意。

想法?有什么建议吗?

谢谢!

最佳答案

我会说你在这里有 3 个选择:

先前端,后后端

好消息是在开发前端时,您可能会了解什么是真正相关的,什么不是。您可能不会在后端部分做任何不必要的事情。坏事是,当您尝试将后端连接到前端并在前端进行一些代码重构时,可能会发生不好的事情,如果您至少不确保它们 可以一起工作。

先后端,后前端

在开发后端时,您可能在这里并没有真正看到您要去哪里。您会发现(您甚至可能已经知道)您为客户端创建的内容可能并不像您想象的那样。您可能不得不在后端进行大量返工。

前后端一体

这就是我平时的工作方式。像处理硬编码数据一样启动前端,然后尽快开始处理后端。将您的样板数据移到上面,这样您就可以确保它们能够很好地沟通。然后,尝试同时进行这两项工作。这样一来,如果您对一方面的事情改变了主意,就不必在另一方面重做很多代码。


关于后端解决方案,我几乎只能说我使用了 Parse.com 服务,它真的很好。就我而言,我还没有准备好自己创建一个完整的后端。如果可以,也许您不需要它们。但是,(而且它很大),Parse 的 SDK 可以处理后端和前端之间的整个通信。您不必管理网络可用性、缓存内容以及在为移动操作系统开发时必须考虑的所有事情。这非常好。

他们的免费计划可让您每月运行 100 万次查询,这是相当多的。但是如果你想走得更远并减少对 Parse 的请求数量,你可以将你自己的后端和他们的后端结合起来。它可能不适用于您的特定情况,但您可以让用户访问您的服务器以检查是否有新数据可用,然后才查询 Parse。例如,对于新闻应用程序,在 parse.com 上获取新闻,将最新的新闻日期存储在您的服务器上,将最后更新日期保存在客户端设备上,并且在访问 parse 之前,将日期与您的服务器进行比较。如果需要,查询parse,如果不需要,就去缓存(由parse的SDK处理)。这样您就可以限制查询的数量并继续使用免费计划。

在选择之前,您可能应该尝试估计每月的查询数量和金钱影响。

只是我自己的意见:]

关于ios - 创建端到端 iOS 应用程序时,应该先创建前端还是后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21707711/

相关文章:

cocoa - NSTableView:仅调用 numberOfRowsInTableView:数据源

linux - 用于生产的 LAMP、XAMPP

php - 什么是选项 +FollowSymLinks?

ios - 与CGPathCreateCopyByStrokingPath相反?

android - 警察扫描仪 radio 应用程序如何工作?具体来说,他们从哪里获得流式音频数据?

ios - 搜索栏在 swift 3 中不起作用。无法将类型 (_) -> Bool 的值转换为预期的参数类型 NSPredicate

iphone - 从 UITabBarController 中消除 UIImagePickerController

ios - 快速设置 maxConcurrentOperationCount

iphone - 阐述一种无需编写任何 SQL 命令即可将对象保存在 SQLite 数据库中的机制

updates - 如何更新 Bitnami LAMP 堆栈?