我刚开始学习iOS时希望有人告诉我的5条提示

由Johann Kerr | SWARM开发人员

考虑进入iOS应用程序开发领域,但不确定从哪里开始? 你不是一个人。 该过程可能令人生畏,尤其是在从多种语言,框架和最佳实践中进行选择时。 如果您需要一些建议以帮助您快速开始学习,或者需要一些鼓励以保持势头,那么这里有5个提示。

提示1:学习Objective C和Swift。

如果您想为iOS编程,但又不能决定要学习Objective C还是Swift,请不要浪费时间,不要仅仅因为它更简单而选择Swift。 虽然目标C已有25年历史,但现实是它不会很快消失。 许多公司仍然在Objective C中有代码库,许多iOS和OS X框架都是用Objective C编写的。如果仅学习Swift,就会处于不利地位。 此外,同时学习两者将使您成为更好的开发人员。

当我第一次学习为iOS编程时,我不必选择一种语言,因为Objective C是唯一的选择。 我记得很不情愿地步履蹒跚,发现它是一种丑陋,令人沮丧的语言。 Swift在2014年6月问世时,我立即为找到一种更快,更直观的语言而感到欣慰。 我爱上了Swift简洁明了的语法(即,不需要用分号分隔语句),并赞赏了它与Obj-C相比的许多优点,例如其简洁性,速度以及处理内存管理的能力。 Swift中的编码使我更容易学习和体验快速看到工作成果的快感。 不用说,我立即跳船,没有回头。

…直到我开始在SWARM工作并意识到目标C仍然很重要。 尽管Swift似乎是大多数项目的首选语言,但我们确实会使用现有应用程序来吸引客户,并且这些应用程序通常是用Objective C进行编码的。此外,遗留库也位于Objective C中。我发现自己按顺序浏览了旧教程赶上我原本会迷路的语言。 因此,请帮自己一个忙,同时学习Objective C和Swift。 您永远不知道何时需要它。 尽管Swift可能是未来,但我们还不能放弃ObjectiveC。

提示2:情节提要,笔尖或代码? 学习全部三个。

当我第一次学习如何为iOS编程时,我观看的每个视频教程都使用Storyboard来布局多个应用程序视图以及它们之间的过渡。 结果,我习惯了在每个项目中都使用Storyboard,并避免以编程方式创建视图,因为Storyboard似乎是标准。 甚至我也忽略了使用Nibs(或Xibs),因为Storyboard似乎囊括了所有使用Nibs的优点。

但是,当我从SWARM开始时,我很快就了解到故事板不一定是通过iOS应用程序以图形方式显示用户路径的最佳方法。 我必须努力学习这一点,因为刚开始我要负责开发新的Apple tvOS,并且每当我尝试触摸Storyboard时,Xcode beta都会崩溃。 我意识到我的团队没有使用情节提要,而是使用原始代码构建了几乎所有项目视图。

故事板非常适合小型项目以及处理诸如主从视图集或用于身份验证和注册的视图集之类的事情。 与团队一起处理较大的应用程序时,情况并非如此。 大型情节提要板可能难以浏览和维护,并且在多个开发人员需要处理同一文件时变得更加困难。 想象两个或两个以上的开发人员试图创建视图并同时提交? 考虑版本控制冲突。 kes!

现在,我在SWARM工作了近10个月,我开始欣赏以编程方式精心布置iOS应用程序所带来的美丽和简单。 尽管它可能需要一些额外的击键,但它使我可以完全控制自己的创作。

我的建议:学习故事板,笔尖和代码以创建视图。 它不仅可以为您遇到的任何类型的系统做准备,还可以使您认真思考布局视图的方式以及如何在不同屏幕上重用这些视图。

提示3:不要仅仅依靠椰子。

DRY“不要重复自己”是程序员之间为避免重复代码而使用的常见开发格言。 鼓励开发人员编写可重复的代码。 这是面向对象编程背后的主要思想之一。 CocoaPods通过为开发人员提供超过一万八千个库来简化任务并帮助扩展项目,从而实现了这一目标。 例如,Alamofire启用网络​​连接。 Snapkit是AutoLayout的编程替代。 该代码编写良好,由开放社区积极维护。 尽管每个程序员都同意CocoaPods是有价值的,但是能够从头开始编写代码很重要,因为在某些情况下CocoaPods并不是最可靠的。 例如,当tvOS首次发布时,绝大多数CocoaPods尚未更新为可与tvOS一起使用。 结果,要发布的第一天,我必须回到基础知识,并利用本机Apple框架来完成任务。

我对您的建议请注意以下几点:

  1. CocoaPods相对较新,因此cocoapod中可能存在错误或安全漏洞。 尽您所能进行研究,以确保研究得到充分的记录,支持和安全。
  2. cocoapods的更新可能会由于代码更改而导致应用程序出现错误。
  3. 有时您不能使用cocoapods,即当tvOS出现时,cocoapods最初不可用

尽管可可足目有用,但仅应使用定期维护的可可足目。 了解本机框架的工作方式也很关键,因为它将帮助您制定针对客户问题的量身定制的解决方案。 通过学习这些框架的工作原理,您甚至可以编写自己的cocoapods,并以开发人员的身份脱颖而出。

提示4:对产品进行单元测试以最大程度地降低风险,并每次都进行。

开发人员经常忽略单元测试。 由于需要尽快完成功能,因此大多数开发人员都跳过编写单元测试。 然而,我们所有人都知道,花了数小时浏览代码才能发现错误的感觉,只是意识到它是由最简单的错误引起的。 单元测试可以帮助诊断错误并验证应用程序是否可以正常运行。 这将确保您的代码更可靠,更安全且更易于调试。 尽管不能使用单元测试来测试每个功能,但是它们确实有助于验证某些部分是否按预期运行。 尽管可能会增加开发时间,但可以显着减少错误分类时间。 在诸如Swarm之类的机构等快速发展的环境中,利用测试帮助我们尽早发现问题并避免了我们提供给客户的产品中的错误。

提示5:您的投资组合很重要,因此请经常构建和构建。

作为初级开发人员或任何级别的开发人员,您可以为自己做的最好的事情就是构建尽可能多的应用程序。 这听起来似乎很明显,但是许多开发人员忘记了将项目提交或提交到应用商店或github。 请记住,如果您的应用解决了问题,则很可能会为其他人解决相同的问题。 即使这只是您喜欢制作的一个激情项目,也可以将其放在github上并展示您的作品。

许多工作申请的基本要求是您必须已向应用商店提交了x个应用。 尽管这并不总是很紧迫,但重要的是,提交应用程序可以让您更加自信,因为您知道自己的作品集可以说明一切。 此外,向App Store提交还附带许多小细节,这些细节需要在应用程序被商店接受之前就正确了。 通过提交一个或两个应用程序来了解此过程的来龙去脉,这将使您的技能扩展到不仅仅是编写代码行的能力。 如果您不确定要提交到App Store,请将其推送到github,以便其他人可以看到。 即使您的项目没有达到您希望的复杂程度,也可以随时进行改进。 不要仅仅将那些较小的项目留在无人看管的地方,也不要记录在案。 确保正确记录它们,因为如果它们在github上并且是公开的,则几乎任何人都可以访问您的代码。 数量很重要,但是质量更重要。 不要构建完全相同的应用程序。 尝试挑战自己并使您的投资组合多样化。 到那里去构建您设想的Find Chicken and Waffles应用程序,完成后将链接发送给我们! 🙂

最初发表于SWARM