Tag: Rxswift

RxFlow第2部分:实践中

RxFlow是基于Reactive Flow Coordinator模式的iOS应用程序导航框架。 该项目是RxSwiftCommunity组织的一部分。 这三篇文章对它的详细概念进行了解释: RxFlow第1部分:理论上 RxFlow第2部分:实践中 RxFlow第3部分:提示和技巧 这是Github存储库:https://github.com/RxSwiftCommunity/RxFlow 感谢您的反馈,随时可以贡献contribute 综上所述, RxFlow旨在: 简化将导航切割为逻辑部分 从视图控制器中删除导航代码 鼓励视图控制器的可重用性 促进反应式编程 促进依赖注入 快速提醒您以下术语: Flow :每个Flow都定义了应用程序中的导航区域。 步骤 :每个步骤都是应用程序中的导航状态。 流程和步骤的组合描述了所有可能的导航操作。 步进器 :可以是任何可以发出步进的东西。 步进器将负责触发流中的每个导航动作 可表示的 :它是可以表示的东西的抽象,基本上UIViewController和Flow是可表示的 NextFlowItem :它告诉协调器将在其响应式机制中产生新步骤的下一件事是什么 协调员 : 协调员的工作是以一致的方式混合流程和步骤的组合 同样重要的是要记住, RxFlow使用面向协议的编程,这样它才不会将代码冻结在继承层次结构中。 在RxFlow仓库中,您将找到一个演示应用程序。 它几乎显示了每种可能的导航类型: 导航堆栈 标签栏 掌握/细节 模态弹出 RxFlow主要是关于以反应方式处理导航状态更改。 为了在多个上下文中重用,这些状态必须不知道用户所处的当前导航流。因此,状态不是表示“我要转到此屏幕”,而是表示“某人或某件事已完成”。此操作”, RxFlow将根据当前导航流选择正确的屏幕。 使用RxFlow时 ,此导航状态称为步骤 。 枚举是描述步骤的好方法: 它们易于使用, 一个值只能定义一次(因此状态是唯一的) 使用它们是安全的,因为Swift希望您在switch语句中实现所有可能的值 他们可以嵌入将从一个屏幕提供给另一个屏幕的值 它们是值类型,因此不存在传播不受控制的共享引用 例如,在演示应用程序中,所有这些都是我们涵盖导航可能性所需的所有步骤 。 […]

Swift Talk从SwiftyJSON Advanced MVVM开始Alamofire [第7集]

Swift讨论将继续进行有关高级MVVM的讨论,并介绍使用Alamofire进行网络连接以及使用SwiftyJSON进行JSON解析的方法,以及用于在Swift 4中处理网络的两个出色的第三方库。 RxSwift即将上映。 很有趣,不是吗? 订阅并注意更多乐趣! 请观看以下链接提供的所有剧集: 第1集-https://youtu.be/fH9paWpCvQsEpisode 2- https://youtu.be/qLbUzwZrQjcEpisode 3 — https://youtu.be/qLbUzwZrQjcEpisode 4 — https://youtu.be/b1GadsUtB9s第5集- https://youtu.be/EZtCOQyRK7w第6集- https://youtu.be/T0yT6J_Mp9U 观看其他TOP编程教程,网址为: youtube.com/c/letscodeeasy 请关注我们: http://letscodeeasy.com www.facebook.com/letscodeeasy https://twitter.com/letscodeeasy

RxSwift:Mengawasi可观察属性di Semua元素数组Secara Bersamaan dengan Observable.combineLatest()

Judul yang panjang,塔皮萨达提达克menemukan judul yang lebih baik untuk pikirkan oleh程序员pemula dengan kasus yang sama kecuali关键字di atas。 Jadi saya berharap dengan judul yang panjang namun jelas maka tujuan dari artikel ini telah didefinisikan sejak awal。 >简洁明了 就像Swift的方式一样! Kasus: Seperti yang saya katakan tadi,Kasussaya dapat disimpulkan oleh judul dengan cepat。 可以观察到Saya memiliki数组dari sebuah objek yang memiliki属性。 丹·赛亚·英金·琼脂·塞蒂亚普·佩鲁巴汉·达里·特雷塞普·阿塞·迪·塞巴坎·科塞蒂亚普的观察员yang […]

RxSwift中的TableView –第1部分

什么是RxSwift? Rxswift是iOS开发中最受欢迎的库之一。 这是一种管理数据流的新方法。 当我开始学习反应式编程时,我想到的第一个问题是,我们该怎么办? 还有很多其他问题。 因此,要回答这些问题以及不熟悉反应式编程和RxSwift的人员,我希望您看看LeandroPérez的这篇文章。 在开发应用程序时,需要编写很多东西,从UI到应用程序逻辑。 在RxCocoa的帮助下,我们可以以反应式方式为UI编写代码。 最受欢迎的UI元素是TableView,我们多次编写TableView委托和数据源,但是现在我们有了更多处理TableView的方法。 在这一部分中,我们将设置一个具有一部分和单元格类型的TableView。 所以我在Github上创建了一个简单的项目,您可以在这里下载它。 我们将致力于这个项目。 我在该项目中使用了MVVM设计模式。 安装吊舱 要使用RxSwift和RxCocoa,可以通过cocoapods安装它们。 我们有三个单独的层。 模型 我们创建具有三个属性的产品模型。 感谢您阅读本文,如果喜欢,请与他人分享share。 我正在等待在评论部分中看到您的评论或推荐。

使用与RxCocoa绑定的可点击按钮在Playgrounds中测试RxSwift代码。

想象一下建立一个注册流程,您想在其中改善Rx代码的特定部分。 想象一下,对于要测试的每个小更改,您都必须构建并运行该应用程序,点击注册,输入您的凭据,等等…… 幸运的是,有一种更快的方法。 您可以将Playgrounds与RxSwift结合使用,甚至可以制作可点击的实时按钮,并将其与RxCocoa绑定,以便您对水龙头做出反应! 如果您按照以下步骤进行操作,则非常简单: 创建一个新的Xcode项目。 (适用于iOS的Single View App) 安装“ RxSwift”和“ RxCocoa”吊舱。 (不要忘了关闭项目,然后从.xcworkspace文件再次打开它) 现在转到层次结构根目录的“项目”导航器(如果选择了任何内容,则可以通过以下方式取消选择它:Command + Tap),然后单击左下角的加号按钮以添加文件…,然后滚动到底部并选择在操场下的空白。 生成的项目结构应类似于下图。 我将游乐场命名为RxCocoaPlayground,但是您可以选择任何喜欢的名称。 4.现在,将以下代码添加到您的游乐场:

使用RxSwift和ViewModel进行TableView搜索

让我们使用结合了MVVM的RxSwift做一些繁重的工作。 使用UISearchController进行TableView搜索,并使用ViewModel中的Variable绑定搜索文本。 我说过重吗? 我们没有这样做,RxSwift却这样做。 了解过滤后的数组如何与源数组绑定,进而以最少的代码即时更新tableview。 如果您喜欢这些教程的质量,请喜欢,订阅和分享。 请观看以下链接提供的所有剧集: 第1集-https://youtu.be/fH9paWpCvQsEpisode 2- https://youtu.be/qLbUzwZrQjcEpisode 3 — https://youtu.be/qLbUzwZrQjcEpisode 4 — https://youtu.be/b1GadsUtB9s第5集- https://youtu.be/EZtCOQyRK7w第6集- https://youtu.be/T0yT6J_Mp9UE第7章- https://youtu.be/ur-U9nzazbc 观看其他TOP编程教程,网址为: youtube.com/c/letscodeeasy 请关注我们: http://letscodeeasy.com www.facebook.com/letscodeeasy https://twitter.com/letscodeeasy

Rx简介

使用可观察流进行异步编程的API。 Rx结合了Observer模式,迭代器模式和函数式编程的最佳创意。 您可以轻松创建事件流,使用类似于查询的运算符来组成和转换流,订阅任何可观察的流以执行副作用。 Rx无处不在,它适用于一切 :RxJava,RxJS,rx.NET,RxScala,RxCpp,RxRb,RxPY,RxGO等…(http://reactivex.io/languages.html) 我个人开始在ORFIUM(https://www.orfium.com)的最新iOS应用程序上使用它,我在问自己为什么以前不使用它。 我个人的观点是,至少每个移动开发人员都应该尝试一下(稍后您将感谢我 )。 Rx的基础 Microsoft的团队面临着解决异步,可伸缩,实时应用程序开发问题的挑战。 他们独立于公司的核心团队在图书馆工作,大约在2009年某个时候,他们提供了一个新的客户端和服务器端框架,称为.NET(Rx)Reactive Extensions。 它是.NET 3.5的可安装附件,后来成为.NET 4.0中的内置核心库。 自2012年以来,它一直是开源组件,并允许其他语言和平台重新实现相同的功能,这使Rx成为跨平台标准。 今天,我们有RxJS,RxKotlin,RxSwift,rx.NET,RxScala等。 所有这些库都努力实现相同的行为和相同的表达性API。 最终,使用RxSwift创建iOS应用的开发人员可以与其他使用Web上的RxJS的程序员自由讨论应用逻辑。 Rx代码的三个构建块是可观察对象,运算符和调度程序。 可观察的 观测值是Rx的核心。 您可能会看到可观察的,可观察的序列,序列或流,实际上它们都是同一回事。 一切都是一个序列。 可观察只是一个序列,具有某些特殊功能。 其中之一(实际上是最重要的)是异步的。 在一段时间内,可观察到的东西会产生事件,其过程称为发射。 事件可以包含值,例如数字或自定义类型的实例,或者它们可以被识别为手势,例如轻击。 一个observable发出包含元素的next事件。 它可以继续执行以下操作: …发出错误事件并终止,或者 …发出已完成的事件并终止。 可观察对象一旦终止,就无法再发出事件。 让我们创建一个可观察的 可观察对象在收到订阅之前不会执行任何操作。 如何订阅一个Observable? 订阅触发一个可观察的事件开始发出事件,直到发出.error或.completed事件并终止。 我们还可以通过取消对可观察对象的订阅来手动使其终止。 (处理) 订阅元素处理程序 订阅发生在数字上。 订阅 ,此时可观察对象正在发出事件。 输出 下一个(1) 下一个(2) 下一个(3) 已完成 订阅事件处理程序 输出 1个 2 3 已完成

RxSwift:subscribeOn与observeOn?

它允许您更改将在其上执行订阅代码的调度程序。 subscriptionOn更改其之前的调用的线程以及其后的方法。 顺序无关紧要,subscribeOn可以放在任何地方。 它允许您更改将在其上执行观察者代码的调度程序。 让我们了解两者: watchOn仅在下游工作 subscriptionOn位置无关紧要。 它在下游和上游工作 连续的subscribeOn不会更改线程 随之而来的watchOn确实改变了线程 观察值不能被subscribeOn覆盖 如果您有兴趣探索更多内容,RxJava中有一篇不错的文章: http://tomstechnicalblog.blogspot.com/2016/02/rxjava-understanding-observeon-and.html 您可以在以下位置找到我: Linkedin: Aaina Jain 推特: __aainajain 如果您对下一篇文章有​​任何建议,请给我发送电子邮件至aainajain100@gmail.com。

使用RxDataSources的TableView中的节和动画

仅使用RxSwift,就很难实现TableView动画,并且很难用Header文本配置表视图部分。 同时配置多种类型的单元也是一个挑战。 Rx社区非常庞大,并且对RxSwift有很多有用的扩展。 RxDataSources就是其中之一,它可以解决上述所有问题。 您可以在重新加载,插入,更新或删除时为Tableview单元设置动画。 您可以根据需要自定义和配置不同的单元。 您可以将节添加到TableView并配置Header。 这可以用很少的代码来完成。 这一集展示了所有这一切。 如果您喜欢这些教程的质量,请喜欢,订阅和分享。 请观看以下链接提供的所有剧集: 第1集-https://youtu.be/fH9paWpCvQs 第2集- https://youtu.be/qLbUzwZrQjc 第3集- https://youtu.be/qLbUzwZrQjc 第4集- https://youtu.be/b1GadsUtB9s 第5集- https://youtu.be/EZtCOQyRK7w 第6集- https://youtu.be/T0yT6J_Mp9U 第7集- https://youtu.be/ur-U9nzazbc 第8集- https://youtu.be/6KC1GdLnez0 第9集- https://youtu.be/fT_VI1SiapQ 观看其他TOP编程教程,网址为: youtube.com/c/letscodeeasy 请关注我们: http://letscodeeasy.com www.facebook.com/letscodeeasy https://twitter.com/letscodeeasy

象老板一样的可观察者— RxSwift简介

现在该开始您的反应式编程之旅了! 您的生活将不再相同。 这是将要发生的事情:我将尝试以可能最有趣,最简单,最令人难忘的方式来解释RxSwift(我已经研究了大约6个月)中的概念。 许多人告诉我他们已经开始学习Rx,但是却找不到继续的时间或精力。 我们开工吧。 你是一条狗。 您的主人可能会或可能不会有食物。 如果他们确实有食物,正在考虑食物,甚至看过食物,那么您想知道! 您想立即知道,以便做出最佳舞蹈动作并打扮迪斯科风格,以便可以吃饭。 这是你的生活,这是你的使命。 使用可观察对象非常像这样。 事情可能会或可能不会发生,当事情发生时,它们可能会有价值,也可能不会。 无论哪种方式,它们都为我们提供了一个可以处理几乎所有类型的类,我们可以对此做出反应。 通常在iOS中,我们将创建一个数据模型,将其放置在某个地方并设置我们的视图。 问题在于,我们希望有机会在数据发生变化时做出响应:某人只是喜欢一个帖子,您的爱犬朋友刚刚发现了一根骨头,或者您可以感觉到自己最大的克星并需要告诉世界:猫。 我们可以通过传统方式实现:我们可以拥有一个委托(可以响应特定事件并处理它们的东西),可以使用通知中心或使用回调。 通过Rx,我们将使用可观察的东西! 在本教程中,我们将以它们的基本形式查看它们,将它们弄乱一些,然后讨论如何使其变得更好。 我们的第一观察 让我们创建一个单视图应用程序,并使用Cocoapods或Carthage将RxSwift导入到我们的项目中。 导入RxSwift 想象一下,我们想制作一个翻译应用程序,该应用程序可以说狗叫(最先进,最精致的交流形式)并将其翻译为他们会理解的奇怪的人类声音。 通常,我们只需要创建一个String变量,但是使用Rx时,我们要处理的是Observable,它们实际上是随时间变化的值。 时间很重要,因为我们不知道什么地方或什么时间会改变: 让dogToSpeechTest = Observable .just(“ Woof”) 在这里,我们使用具有”语法的泛型,指定要处理的类型。 我们使用方便的’.just()’方法为可观察对象提供初始值。 我们可能还想向我们理解缓慢的所有者发送一系列消息: 让dogToSpeakArray = Observable 。from([[“ Get”,“ me”,“ food”]) 我们使用’.from()’运算符从数组创建事件序列。 关键是,我们实际上可以做什么? 好吧,我们可以订阅它们。 我们会讲出每个单词并在说出来时进行翻译,并更新用户界面! 观察值使我们可以访问以下内容: – onNext –下一个值已到达,已更改,这里是最新值–就像通知 – onError –出现问题了,您有机会对错误做出回应 – onCompleted-此任务已完成 – onDisposed –我们不再需要对此可观察的订阅,因为它不需要 […]