Swift还是Objective-C? 适用于iOS开发人员的工具提示。

在创作过程中,总会有一些选择和矛盾之处。 在UX设计师就Photoshop vs Sketch主题进行辩论并就有效的原型工具发表意见时,iOS开发人员也有自己的争论。 今天,我们将介入并在一些关于哪种编程语言是Objective-C或Swift的全球讨论中添加一些想法。 我们要求Tubik CTO和经验丰富的iOS开发人员Maria Nazarenko与Tubik Blog读者分享她的观点。

简要背景

让我们从一点点历史开始。 在讨论的一对编程语言中,第一个也是最老的是Objective-C。 它最初是由Brad Cox于1980年代初发明的。 因此,可以肯定地应用于这种编程语言的要点之一是,它确实经过了几代开发人员的反复试验和测试。

目前,Objective-C通常被描述为通用的,面向对象的编程语言,它将Smalltalk样式的消息传递添加到C编程语言中。 在Swift出现之前,Objective-C一直是开发人员用于OS X和iOS操作系统及其API的主要编程语言。

在2014年苹果WWDC上推出的Swift带来了自己的革命。 概括而言,Swift是一种通用的多范式编译程序语言,它是为iOS,OS X,watchOS,tvOS和Linux开发的,拓宽了以前的操作系统范围。 Swift旨在与Apple的Cocoa和Cocoa Touch框架以及已经为Apple产品编写的大量Objective-C代码一起使用。

最初,Swift的目标是比Objective-C更具弹性和安全性,并且更加简洁和友好。 它是使用LLVM编译器框架(包括Xcode 6)以及使用Objective-C运行时库构建的,该库使C,Objective-C,C ++和Swift代码可以在一个程序中运行。 因此,它为开发人员扩大了专业视野,使他们的工作更有效率。

这是开发人员开始讨论更好,传统或创新的里程碑。

哪个更好:Objective-C还是Swift?

前段时间,我们在关于Photoshop和Sketch之间选择的热烈的全球讨论中表达了我们的看法:“ 我们要给出的答案确实很简单。 可以互相补充的选项之间不应有任何战争。 显然,现在没有任何完美而理想的设计软件:如果存在,那么每个人都只会使用这一理想选择,而无需战斗。 »

似乎在iOS开发中,今天的情况确实相似。 即使阅读完Swift与Object-C的所有扩展功能之后,选择似乎也不是那么明显。 实际上,在Swift尚不成熟的时候,Objective-C便经过了多年的检查和测试。 在Objective-C中已经开发了大量产品,因此过渡到其他视图肯定需要花费一些时间和精力。

根据她在iOS开发中的丰富实践经验简要地描述了编程语言,Tubik CTO Maria提到,尽管Objective-C年龄较大且很常见,但是Swift可以被描述为语法更简单,工作过程更稳定。

哪种编程语言更有用?

由于Xcode是带有一组软件开发工具的集成开发环境(IDE),iOS开发人员实际上可以使用同一开发人员工具来应用Objective-C或Swift。

只要Objective-C存在更长的时间,使用这种语言自然就可以完成许多简单和复杂的应用程序。 不了解Objective-C并直接从Swift开始会限制开发人员的专业灵活性。 在开发人员必须更新现有产品的情况下,这一点尤其明显。

有时会发生这样的情况,开发人员只知道Swift,建议将现有的(也许是大的甚至是巨大的)代码从Objective-C重写为Swift,客户在逻辑上不认为这是可以接受的,当然也不接受为此付出代价的必要工作。

考虑到这一点,最好的选择是同时了解两种语言。 这为开发人员提供了自然的专业灵活性,使其可以处理当前项目中必须处理的任何任务和环境。 有两种策略主要取决于可用时间。

如果在学习基础知识和将其应用到实际实践之间花费了大量的时间,我们的建议是从Objective-C开始。 尽管它通常被描述为更复杂,但是它为创建和使用iOS系统的应用程序的基本原理和例程奠定了坚实的基础。 在此基础上,学习语法上更简单的另一种iOS语言(例如Swift)似乎并不难。

但是,还有另一种策略,它比以前的策略更具动态性,适用于那些没有足够时间处理需要尽快开始实际工作的人。 在这种情况下,您可以从Swift开始,因为它的语法更简单,并且与其他编程语言更相似,因此开始实际编码所需的时间更少。 通过这种方式获得开发的基础知识,不要忘了将Objective-C添加到实践中,并用两种语言完善技巧。 如果认真周到地对待它,肯定会产生结果。

在Tubik Studio中,我们认为设计师和开发人员唯一需要考虑的就是最终产品的高质量。 最高的。 质量。 可能。 期。

只要能为客户和最终用户提供高效的产品,为此目的选择的任何工具和方法都是一种好方法。

不要错过我们有关iOS开发的下一篇文章,其中提供了实用技巧和编码复杂设计决策的案例研究。