前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >成为一名优秀 Swift 开发人员的 10 个小技巧

成为一名优秀 Swift 开发人员的 10 个小技巧

作者头像
Swift社区
发布2022-05-19 08:23:11
2.3K0
发布2022-05-19 08:23:11
举报
文章被收录于专栏:Swift社区

作者 | Ivano Di Gese 来源 | Medium Better Programming https://medium.com/better-programming/10-tips-to-be-a-good-swift-developer-7860c1e67337

在编写 iOS 代码时,有一些关键点可以让我们的代码更具可读性、高效和可维护。Swift 是一种现代语言,支持许多现代编程概念,同时保持代码的简洁。

如果你想改进 Swift 代码,可以参考一下以下几点建议。

1. 使用 Protocol

Protocol 在 Swift 中可以做很多事情。使用协议,我们可以设计软件组件的行为,使其符合特定的实现。Swift 协议类似于 Java 中的接口,这是 OOP 编程中最基础的理论。

以下是使用协议的一些场景:

  • 让 modal 与呈现它的组件进行通信;
  • 让多个 UIViewController 或 多个 Cocoa Touch 类实现相同的行为;
  • 在 UITableCell 向父 UIViewControllers 发送事件;

这是我们在 iOS 编码过程中最常见的一些场景。

2. 重构并提高可性

Xcode 11 对重构功能做了很大的改进。新的 Xcode 的重构操作更加简洁,让我们可以很容易重命名类、引用和方法。我已不记得有多少次我认为一个名称是合适的,而后来又决定修改。之前的 Xcode 在这方面做得并不好,但从 Xcode 11 开始,这个操作变得更可靠了。

3. 使用标记

从 Objective-C 开始,我就一直很喜欢标记。当控制器有成百上千行代码时,标记就显得很重要了。使用标签来分割和管理代码非常重要,可以在代码中快速导航。Xcode 11 在右侧有一个代码导航器,基于此可以更频繁地使用标记。

4. 首先代码来实现导航,而不是 Storyboard

Storyboard 很好,自从 Apple 推出后,我就一直使用。但是,当应用程序开始增长,需要处理数十个 ViewController 时,使用代码来管理和处理导航比使用 Segues 和 Storyboards 更加便捷。此外,通过代码导航可以在导航时更好地控制共享参数和特定行为。还可以避免让 Storyboard 变得一团糟。

5. 在项目中集成最热门的第三方库

尽量不要重新发明轮子。为项目选择正确的库是一项有意思的工作,大多数情况下,使用基本库就正确的做法。这可以让你专注于特定应用程序的特定功能,而不是在常见的功能上浪费时间。我经常会用到以下库:

  • HTTP 层:使用 Alamofire;
  • 图像处理库:使用 Alamofire image 或 Kingfisher;
  • 自动布局辅助库,如 Snapkit;
  • UI 工具,如 HUD、masonry CollectionView layouts、颜色可渐变库之类的;

更重要的是,保持 Pod 的更新,以避免使用低版本产生的错误。

6. 使用扩展并合理使用它们来创建公共库

我很喜欢 Swift 扩展。在使用 Objective-C 时,我总是不情愿地使用继承。当然这并不总是错误的,正确的使用子类也不会出错。但是 Swift 扩展可以轻松地将简单方法集成到通用类上,而无需做任何复杂的事情。如何还不够的话,在 @IBDesignable 你甚至可以支持 Storyboards 的扩展,它有很多扩展集合,我喜欢编写简短的方法来扩展字符串、按钮等以完成简单的任务。扩展很棒,你可能会过渡使用它。不过没关系,将扩展组织到单独的文件中,保持可读性就行了。

7. 尽可能使用容器视图

随着 UI 越来越复杂,我们通常必须集成 Tab、滑动布局,Page 等内容。容器视图通常不是现成的,需要花一些时间编码,但这绝对是值得的,我们最终总是可以复用这些控制器。

8. 保证 UI 关键组件可见并在顶部输入

有时界面会很有挑战性,特别是在集成了许多功能的应用程序上。幸运的是,我有一位 UI/UX 专家与我一起工作,为我提供了很多有关如何正确操作的建议。但作为开发人员,需要记住两点:

  • 首先,不要让导航过于复杂,除非有简单的方法可以返回主页可撤消操作,否则不要在模态上再展示模态,也不要在 UINavigationController 上 push 多个组件。使用 UITabBarControllers、抽屉和类似的方法来简化操作。
  • 其次,尽可能选择在屏幕上方输入。用户可能被迫伸出手来操作它,但是最好实现 UIScrollView 并处理滚动操作以避免键盘覆盖输入内容。

9.使用通知

通知中心是在组件之间分发消息的好工具。在开发文档中,通知是在控制器与模型或服务之间实施通信可同步模式的正确方法,我在项目中经常使用 Notification Center,基本上实现了观察者模式,并让应用程序带有更多响应式的元素。

可以使用观察者模式实现许多关键功能,我发现它非常有用。该方法非常简单,且大多数操作都可以用一行代码进行编码,使用 target 和 user info 来传递所有数据。一个重要的建议是:需要在 deinit 或 viewWillDisappear 方法中删除未使用和不必要的观察者,以避免内容泄漏和重载。

10. 事件操作中 sender 参数非常有用

最后一个技巧是使用 sender 参数。每个响应事件的方法或选择器都可以知道是谁触发了事件。在常见情况下,请考虑这样一个场景,使用具有相似行为的多个按钮,来处理相同的操作。只需要将所有 UIButton 连接到相同的 @IBAction,然后使用发送方找出触发了该事件中的哪一个,并为该特定行为编写正确的实现即可。此外,在 UI 元素上使用 tag 来标识它们,而不是使用其标题或其它内容来区分。

结论

我没有提到所有基本的 OOP 原则。显然,您必须以正确的方式实现类,封装,抽象和设计模式。在本文中,我将重点更多地放在Swift功能上,以提高代码效率并传递Swift机制的优点。我提供了一些简单的示例,说明每个iOS应用程序和开发人员应关注的重点。

- EOF -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Swift社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 使用 Protocol
  • 2. 重构并提高可性
  • 3. 使用标记
  • 4. 首先代码来实现导航,而不是 Storyboard
  • 5. 在项目中集成最热门的第三方库
  • 6. 使用扩展并合理使用它们来创建公共库
  • 7. 尽可能使用容器视图
  • 8. 保证 UI 关键组件可见并在顶部输入
  • 9.使用通知
  • 10. 事件操作中 sender 参数非常有用
  • 结论
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档