2021年快过完了,这份清单上的ios技能,学会多少了?(代码片段)

程序员大咖 程序员大咖     2023-02-11     671

关键词:

👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇

本文由作者在年初写的一份学习清单,列出了作者认为已经很重要或今年变得越来越重要的技术和技能。希望能激励读者们拓宽视野,学习新事物。或者,这份清单可能会激发您更新对以前看过但有一段时间没有注意的事物的了解。年底了,翻出来看看,一年时间,有多少是我们需要继续学习的。

Combine

Apple 在 iOS 13 中发布了 Combine 框架。Combine 是 Apple 的函数式响应式编程框架,与 RxSwift 类似,但也有很大不同。Combine 的主要卖点是它是一个第一方框架。这意味着它将由 Apple 维护,并随着 Apple 操作系统的发布而更新,这既有好处,也有缺点。不可否认,Apple 对 Combine 押下重注,值得一看。特别是因为 SwiftUI 大量使用了 Combine。

如果您想了解有关 Combine 的更多信息,我想推荐我的 Practical Combine 一书,以帮助您入门和运行。

SwiftUI

现在谈论 iOS 开发至少不能不提到 SwiftUI。事实上,SwiftUI 在 iOS 领域正迅速变得越来越重要。在这一点上,您不太可能需要了解 SwiftUI 才能在短期内就业。SwiftUI 是一个重要的学习框架,它肯定可以在找工作时提供优势。

如果您想学习 SwiftUI,可以查看一些很好的资源,包括 Apple 的教程、Paul Hudson 的 SwiftUI 100 天、objc.io 的 Thinking in SwiftUI、Daniel Steinberg 的 SwiftUI Kickstart 和 Majid Jabrayilov 的网站。当然,还有很多很多资源。

SwiftUI 是否可以投入生产是目前一个有趣的讨论。当然有一些粗糙的地方,我们正在共同研究如何在 SwiftUI 中正确编写应用程序。您可能想要查看的 SwiftUI 应用程序的流行架构是 pointfree.co 的可组合架构。

XCTest

如果有一件事我们都知道应该做,但经常跳过,不能做,不会做,或者干脆忘记,那就是单元测试。

尽可能地编写测试的动机是,它让我们知道某些事情是有效的,而不是认为在我们的代码库中的其他地方进行更改后它应该仍然有效。除非我们已经测试过,否则我们不能更确定认为某些事情有效。自动化测试确保我们永远不会忘记测试某些功能,而且它比手动测试要快得多。

最重要的是,作为开发人员,测试应该成为我们流程的一部分。测试可帮助我们编写解耦代码,一旦设置好,我们的测试就会一直运行。这比手动测试要快得多,也更严格。

Collection Views

在过去的几年里,Apple 一直在忙于改进 Collection Views。尤其是 iOS 13 的组合集合视图布局和可区分的数据源是对我们使用集合视图的方式的巨大改进。

在 iOS 14 中,苹果进行了更多改进。例如,我们现在使用非常灵活的集合视图列表布局,并且有一种新的方法来注册和出列自定义单元格,称为单元格注册。

如果您不熟悉集合视图,或者您还没有看过新功能,我强烈建议您这样做。Apple 在集合视图方面做得非常出色。请务必查看 Apple 的示例应用程序,以了解自 iOS 13 以来的大部分新功能。

Core Data

尽管 Core Data 不是一个新框架并且其根植于 Objective-C 领域,但它仍然是一项非常相关的技术。Apple 投入了大量资源让 Core Data 更容易和更好地使用,他们甚至在 iOS 13 中增加了与 iCloud 自动同步的功能。

严格来说,这不是 Apple 首次尝试将 iCloud 同步添加到 Core Data,但这无疑是 Apple 在这方面的最佳尝试。

如果您在 Apple 在 iOS 10 中添加 NSPersistentContainer 之前使用过 Core Data 并且不喜欢它,或者如果您被告知避免使用 Core Data,因为它笨重、糟糕、低效或难以使用,我强烈建议您现在可以试试。

Apple 在他们的网站上有很多关于 Core Data 的信息,像 Antoine van der Lee 这样的社区成员写了很多关于 Core Data 的文章。

Instruments

我们都希望我们的应用程序没有内存泄漏、帧丢失和其他对性能不利的特征。而发现性能问题最值得推荐的方法是 Instruments 工具。Instruments 是一个基本工具,在我看来,它值得在每个 iOS 开发人员的工具箱中占有一席之地。

要开始使用 Instruments,您可以查看 Apple 提供的这篇概述 https://developer.apple.com/library/archive/documentation/AnalysisTools/Conceptual/instruments_help-collection/Chapter/Chapter.html。

沟通技巧

作为开发人员,能够有效地进行沟通很重要。无论是口头的,还是书面的。在我看来,我们从来没有改善我们的沟通方式。

这就是为什么,在 2021 年,我认为花一些时间来提高你所谓的“软”技能是件好事。这将帮助您成为更好的团队成员、更有效的沟通者和更好的倾听者。

这些是我认为开发人员经常低估的技能,这就是为什么将其添加到列表中对我来说很重要。(感谢 HeidiPuk 的提示)。

可以帮助您入门的一些资源是来自 Ask Furrow 的演讲 https://vimeo.com/198777217 以及 Sean Allen 和 Mayuko 的采访/播客节目 https://youtu.be/XHG6OBw_ig4。

练习你的沟通技巧,经常写作,确保你倾听别人的意见,并在可能的情况下就你的沟通技巧寻求反馈。如果你经常这样做,我相信到 2021 年底你会成为一个更强大的沟通者。

构建通用应用程序

现在这是一项我个人希望在 2021 年花大量时间研究的技术。在过去的几年里,Apple 一直在向我们展示如何构建在 iOS 和 Mac 上运行的应用程序。首先使用 catalyst,然后使用 SwiftUI。

既然 Apple 的 M1 Mac 已经推出并且它们可以本地运行 iOS 应用程序,我认为是时候开始考虑将 Mac 作为一个平台,我们应该尽可能为其编写应用程序。类似于我们尝试确保我们的大多数(如果不是全部)应用程序在 iPad 和 iPhone 上运行的方式。

ARKit(和 RealityKit)

随着有关 Apple 眼镜的传言越来越强烈,我认为我们最终可能会看到它们。也许在 2021 年,也许更晚。

然而,一旦这些眼镜(不可避免地)发布,我们可能会想要为它们构建应用程序。

我敢打赌,一旦我们能够为眼镜构建应用程序,我们将在 Apple 的增强现实框架之上进行。

在我看来,现在是开始学习 ARKit 并构建一些增强现实体验的最佳时机。特别是如果您有兴趣为传闻中的 Apple 眼镜制作应用程序。

除了 ARKit 的文档和 WWDC 视频之外,Apple 还提供了大量资源来帮助您开始使用增强现实。

Async / Await

虽然此功能尚未在 Swift 中正式可用(该功能已在 Swift 5.5 中实现),但由于其零碎部分仍在 Swift 论坛上进行审查,我认为 async / await 是今年最值得关注的新事物之一。

我不知道哪个 Swift 版本将包含官方的 async/await 版本,但如果您使用的是最新的 Swift 版本,您可以立即试用该功能。

Async/await 将显着改变我们在 Swift 中编写异步代码的方式,我对此感到非常兴奋。

如果您想关注它的发展,您可以在发布所有评论和推介的 Swift 论坛上进行。

总之

这份 2021 年应该关注的 10 件事清单是我认为相关的清单。当然,有些事情可能与您无关。或者,这个列表可能缺少您认为每个人都应该关注的重要技术或技能。

没关系,我只是希望这份清单为您提供了学习(新)事物的方向。我清单上的一些东西已经存在一段时间了,其他的则是全新的。如果你今年没有时间学习全新的东西,那也没关系。按照您自己的节奏学习和调查,专注于让您到达想去的地方。

-End-

最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!

点击👆卡片,关注后回复【面试题】即可获取

在看点这里好文分享给更多人↓↓

猿创征文|2022年快过完了,是时候总结一下那些优秀的react组件库(代码片段)

⭐️本文首发自前端修罗场(点击加入),是一个由资深开发者独立运行的专业技术社区,我专注Web技术、Web3、区块链、答疑解惑、面试辅导以及职业发展。2022年只剩下2个月,在这快一年的开发过程中,我觉得是... 查看详情

如今2021年都快过完了,android还没有凉,那2022年呢?

近几年,随着互联网市场的日渐成熟,无数企业平地而起。应届毕业生心中最炙手可热的公司从BAT扩展到了TMD及各路独角兽公司,因为这些公司代表着科技最前沿,能够许诺高薪和美好前景。但身边有很多朋友都... 查看详情

2019年快来了,送给每位程序员一份新年计划清单

点击关注加星标,江湖要事早知道一日之计在于晨,一年之计在于春,对于程序员来讲,挑战自我很重要。有创造力的以及技术性的休整是可行的。给自己的新年列个计划清单,一起在新的一年更好地成长吧! 进入真实生活... 查看详情

炸裂!这份阿里p8大佬手写“java核心技能精选”惨遭疯抢!

前言本次很荣幸能够邀请这位阿里P8的大佬为我们整理了这份“JAVA核心面试知识点”,这份资料就比较厉害了,它几乎涵盖了所有的Java核心知识点,并且融入了大佬自己的一些经验和思想!文档涵盖知识:面... 查看详情

关键20小时,快速学会任何技能

《关键20小时,快速学会任何技能》是一本很神奇的书,就算你觉得这个名字哗众取众,你还是会忍不住打开想看看它讲些什么。技能习得与技能学习的区别《关键20小时,快速学会任何技能》首先介绍了技能习得和技能学习这... 查看详情

1天学会用python写爬虫

...称为Python爬虫技能)。资料的主要面向群体是已经看完了Python基础课程(0基础小白一般一个下午就能学完Python基础课程),正准备进行编码实践的爬虫小白。资料讲述的内容为基本的Python爬虫技巧,能应付普... 查看详情

考研初试将近,收好这份准备清单,祝你一战成硕

初试倒计时数字越来越小,离迈入考场的时间越来越近,最后这段时间,希望你按部就班,稳住不慌,坚持到底。这里博主有一些初试注意事项要叮嘱大家。有关准考证的注意事项如下:准考证不需要彩色... 查看详情

2021入坑机器学习,有这份指南就够了

这是一份适用于小白的机器学习超丰富资源指南。机器学习社区社交媒体上经常有人提出这样的问题:我如何开始机器学习?我如何免费学习?什么是人工智能?我怎样才能学会它?人工智能是如何工作的ÿ... 查看详情

前端技能清单

HTML,CSS,JAVASCRIPT响应式网页开发前端框架:angularJS,vueJS,KnockoutJS等(不一定要全会,但是至少得熟悉一个,可以开发项目)版本控制:git网页性能浏览器开发工具构建和自动化工具:grunt,gulp,bower,Yeoman等测试框架Mocha,Jasmine... 查看详情

近期计划

一个寒假快过完了,趁开学初还没有什么作业,赶紧继续学东西。 搞完了树形dp和状压dp(都是初步),现在打算胡乱搞一下KMP和LCA还有RMQ。 查看详情

学交互设计,这份超全学习清单给你准备好了

刚入行用户体验设计的人在学习时总会遇到这样的难题:网上的文章看了不少,行业大V也follow了好几个,但是摄入的知识总感觉是一盘散沙,心里仍然没个底儿。  为此我们特推荐墨刀整理了一个学习清单有系统的UX设计... 查看详情

我听不懂这份清单的理解(代码片段)

a=[x+yforxin['Python','C']foryin['Language','Programming']]print(a)输出为['PythonLanguage','PythonProgramming','CLanguage','CProgramming']我认为两个列表加在一起应该像['Python','C','Language','Programming']答案简单地从左到右“解构”理解,这与嵌套for循环为您提... 查看详情

github上的资源清单

依赖管理——用于依赖管理的包和框架Composer/Packagist :一个包和依赖管理器ComposerInstallers:  一个多框架Composer库安装器Pickle:可以在任意平台上安装PHP扩展包依赖管理的附加部分——其它依赖管理的相关工具... 查看详情

如何从rancher1.6迁移到rancher2.0?这份清单可以帮助你!

Rancher1.6是一个深受广大用户喜爱的容器编排平台,帮助企业用户在生产环境中运行和管理Docker和Kubernetes。Rancher1.6支持多种容器编排框架,包括Kubernetes、Mesos、DockerSwarm,默认的基础编排引擎是Cattle,Cattle极简的操作体验受到了... 查看详情

一个合格的web前端程序员要学会哪些技能?

...,要学习的东西有很多,那么web前端要学会哪些技能呢?来看看下面的详细介绍就知道了。  一个合格的web前端程序员要学会哪些技能?想从事web前端开发,只会HTML、CSS和JavaScript这三个要素是远远不够的。身为... 查看详情

年前刷完了这份足足485页的“1000道java工程师面经”,成功上岸!

本人18年毕业于一家普通二本,考研裂开了且没有实习经验,只做过两个项目会一点SpringBoot,每天就是不断地投简历、刷面经,感觉自己都要抑郁了,最后勉强进入了一家学校合作的互联网公司干了3年的CRUD&#x... 查看详情

学会python真的有高收入?盯,请查收这份入坑指南(代码片段)

对于Python,目前仅限于初学阶段,真的比不上各位大神。对于那些打算入坑Python的小伙伴,想必会有疑问,Python可以为你带来高收入吗?好了,看了这些,是不是真的就认定Python可以拿高薪?这可... 查看详情

职业规划

...,每个人都在寻找各自的事业途径。您只有保证了足够的技能储备,才能确保能够得到一份足够满意的工作。为了保证您的职业发展,您应当定期地更新您的技能和知识。 2.学会问、学会听,学会学习一个好的倾听者可以习... 查看详情