【问题标题】:Objective C & Swift -- do they handle both Client and Server Side?Objective C & Swift——他们同时处理客户端和服务器端吗?
【发布时间】:2017-08-18 04:09:17
【问题描述】:

这是一个非常笼统的问题。

在更“传统”的基于 Web 或浏览器的开发中,您有 Java、C# 等服务器端语言。然后,在客户端,有 HTML、CSS 和 JavaScript。

关于原生移动应用开发(注意:不是移动 Web 开发)我想知道的是......

服务器端和客户端之间是否有如此清晰的界限?每个都有单独的工具和语言吗?如果分开,UI 开发使用哪些工具?

或者,对于 iOS,Objective C 和/或 Swift 两者都处理吗?

【问题讨论】:

  • 不,它是分开的。
  • 通常 Obj-C 和 Swift 仅用于客户端,使用您提到的那些服务器端语言,您将拥有单独的后端服务。但是,您也可以 执行server-side with Swift language,尽管它不是很常见。您通常希望使用 XCode 作为您的 IDE 进行拖放所见即所得的 UI 开发,尽管您也可以通过编程方式对您的 UI 进行编码(就像 HTML 和 CSS)。
  • 你可以做服务器端的Objective-C。 objective-cloud.com
  • 完全可以制作一个没有服务器组件的移动应用。一个例子可能是计算器。

标签: objective-c swift mobile


【解决方案1】:

服务器从不返回移动开发中的任何视图。它只是需要来自任何服务器的数据时可以调用的 api。其余的东西(主要是本地存储和屏幕)放在设备上。 Apple 的 Xcode(用于开发基于 Apple 的应用程序)以 .storyboard 文件的形式为您提供 InterfaceBuilder,可用于两种语言,Objective-C 和 Swift。

【讨论】:

  • 当然有道理。我想我想知道的是......什么工具用于开发用户界面?它只是内置在IDE中吗?您在屏幕上排列图像等?
  • 如果您打算使用 Swift 进行移动开发,那么您将使用 Xcode。
  • 更新了我的答案@CaseyCrookston
【解决方案2】:

正如您所注意到的,服务器端代码和客户端代码之间有一个非常清晰的分离。他们有不同的要求:

  • 服务器软件不需要 UI,或者可能需要生成网页。
  • 服务器软件需要在相对较少的高性能机器上运行大量用户
  • 客户端需要实现响应式 UI
  • 客户端通常是移动的,需要处理不良网络
  • 客户端通常运行相对较弱的硬件(以节省电池)
  • 客户端通常可以垄断其硬件(与服务器相比)

还有更多,但您已经可以看到服务器和客户端有时甚至有相互矛盾的要求。因此,它们通常以更符合这些要求的不同语言或框架实现。

还有历史原因。后端通常已经作为 Web 服务器存在,只是在以后扩展为作为应用程序的后端工作,或者被设计为不同客户端的后端,这就是它们用不同语言编写的原因。

也就是说,您没有理由不使用与应用相同的语言编写后端。在共享数据结构或匹配服务器端算法方面有明显的协同作用(例如,游戏可以在连接缓慢时预测服务器的响应)。

有些应用会这样做,这取决于您的应用和环境是否合适。

鉴于差异,各方面都有特定的工具,但同样,如果需要,您可以使用相同的工具完成大部分工作。对于 Swift/Objective-C,通常是编辑器和编译器/链接器。大多数人为此使用 Xcode,但如果您不在 Mac 上,您将使用其他工具,例如 vi 或 emacs 进行文本编辑,并使用 clang 作为编译器。

Objective-C 和 Swift 的主要用途是客户端,因此您可以使用 UIKit 及其标准库来完成大部分工作。服务器端 Swift 相当新,而服务器端 Objective-C 不是很常见,因此您可能很难找到有用的库(至少与为后端使用而开发的语言相比,如 Python 或 Ruby)。

【讨论】:

    猜你喜欢
    • 2012-10-09
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多