知识是好的,非常棒。 但也需要练习,才能使用接收到的数据,将其从“被动存储”状态转变为“主动使用”状态。 不管理论训练有多好,“实地”工作仍然是必要的。 上述内容几乎适用于任何研究领域,当然包括软件开发。
今年,GeekBrains 作为在线大学 GeekUniversity 移动开发学院的一部分,开始与互动机构 AGIMA 合作,后者的团队是专业开发人员(他们创建复杂的高负载项目、企业门户和移动应用程序,仅此而已)。 AGIMA 和 GeekBrains 创建了一门选修课,旨在深入探讨移动应用程序开发的实际问题。
有一天,我们采访了 iOS 专家 Igor Vedeneev 和 Android 专家 Alexander Tizik。 感谢他们,移动开发选修课变得更加丰富和实用
以 RxSwift 为例的 iOS 响应式编程
选修课教师 Igor Vedeneev:“有了 RxSwift,你的应用程序将会飞速发展”
学生在选修课期间收到哪些信息?
我们不仅讨论框架的功能,还展示如何在经典的 MVVM + RxSwift 组合中使用它。 还讨论了几个实际例子。 为了整合获得的数据,我们编写了一个尽可能接近现场操作条件的应用程序。 这将是一个音乐搜索应用程序,使用
RxSwift - 为什么 iOS 程序员需要这个框架,它如何让开发人员的生活更轻松?
RxSwift 简化了事件流和对象之间连接的处理。 最简单、最明显的例子是绑定:例如,您可以通过简单地在 viewModel 中的变量中设置新值来更新界面。 因此,界面变成了数据驱动的。 此外,RxSwift 允许您以声明式风格描述系统,这使您可以组织代码并提高可读性。 所有这些都有助于更有效地开发应用程序。
对于开发人员来说,了解该框架也是简历上的一个很好的加分项,因为对反应式编程的理解,尤其是 RxSwift 的经验,在市场上很有价值。
为什么选择这个特定的框架而不是其他框架?
RxSwift 拥有最大的社区。 也就是说,开发人员面临的问题更有可能已经被某人解决了。 还有大量开箱即用的绑定。 此外,RxSwift 是 ReactiveX 的一部分。 这意味着 Android 有一个类似的工具,例如(RxJava、RxKotlin),并且研讨会中的同事可以彼此使用相同的语言,尽管事实上有些人使用 iOS,其他人使用 Android。
该框架不断更新,修正了小错误,添加了对新版本 Swift 功能的支持,并添加了新的绑定。 由于 RxSwift 是开源的,因此您可以跟踪所有更改。 此外,您可以自己添加它们。
RxSwift 应该用在哪里?
- 绑定。 通常,我们谈论的是 UI,即更改 UI 的能力,就像对数据更改做出反应一样,而不是明确告诉界面该更新了。
- 组件和操作之间的关系。 只是一个例子。 我们需要从网络获取数据列表。 事实上,这并不是一个这么简单的操作。 为此,您需要发送请求,将响应映射到对象数组中,将其保存到数据库并将其发送到 UI。 通常,不同的组件负责执行这些操作(我们喜欢并遵循以下原则
SOLID ?)。 手头有像 RxSwift 这样的工具,就可以在其他地方描述系统将做什么以及如何做。 因此,可以更好地组织代码并提高可读性。 相对来说,代码可以分为目录和书本身。
Kotlin 中的协程
选修课老师Alexander Tizik:“现代发展需要现代技术手段”
作为品牌季度的一部分,GeekBrains 教师将教授哪些内容?
理论、与其他方法的比较、纯 Kotlin 和 Android 应用程序模型中的实际示例。 至于练习,我们将向学生展示一个应用程序,其中所有内容都与协程相关联。 事实上,大多数应用程序都是完全异步和并行计算的。 但 Kotlin 协程允许将混乱、异构或过于复杂且对性能要求较高的代码简化为单一、易于理解的样式,从而在正确执行和性能方面获得好处。
我们将学习在协程中编写惯用的代码,这些代码可以解决实际问题,并且即使没有深入了解协程如何工作(对于像 RxJava 这样的库就不行了),乍一看也可以理解。 我们还将了解如何使用更复杂的概念(例如参与者模型)来解决更复杂的问题(例如MVI概念中的数据仓库)。
顺便说一句,还有更多好消息。 在录制选修课时,发布了 Kotlin 协程库的更新,其中出现了该课程 Flow
- 类型的类似物 Flowable
и Observable
来自 RxJava。 从应用程序开发人员的角度来看,该更新本质上使协程功能变得完整。 确实,仍然有改进的空间:尽管事实上,由于 kotlin/native 中协程的支持,已经可以在 Kotlin 中编写多平台应用程序,而不会受到缺乏 RxJava 或纯 Kotlin 类似物的困扰, kotlin/native 对协程的支持尚未完成。 例如,没有演员的概念。 总的来说,Kotlin 团队计划在所有平台上支持更复杂的参与者。
Kotlin 协程 - 它们如何帮助 Kotlin 开发人员?
协程提供了编写可读、可维护、安全、异步和并发代码的绝佳机会。 您还可以为代码库中可能已使用的其他异步框架和方法创建适配器。
协程与线程有何不同?
Kotlin 团队将协程称为轻量级线程。 另外,协程可以返回一些值,因为协程的核心是暂停计算。 它不直接依赖于系统线程;线程只执行协程。
哪些实际问题可以使用 Coroutine 解决,而使用“纯”Kotlin 无法或难以解决?
任何异步、并行、“竞争”任务都可以使用协程很好地解决 - 无论是处理用户点击、上网还是订阅数据库更新。
在纯 Kotlin 中,这些问题的解决方式与 Java 中相同——借助数千个框架,每个框架都有自己的优点和缺点,但没有一个具有语言级别的支持。
总而言之,值得一提的是,两门选修课(以及主干课程)都是根据外部条件的变化而更新的。 如果语言或框架出现重要更新,教师会考虑到这一点并修改程序。 可以这么说,所有这些都使您能够掌握开发过程的脉搏。
来源: habr.com