reactivecocoa

转【唐巧】的谈谈 React Native

为君一笑 提交于 2019-12-03 01:38:42
前言 几天前,Facebook 在 React.js Conf 2015 大会上推出了 React Native( 视频链接 )。我发了一条微博( 地址 ),结果引来了 100 多次转发。为什么 React Native 会引来如此多的关注呢?我在这里谈谈我对 React Native 的理解。 一个新框架的出现总是为了解决现有的一些问题,那么对于现在的移动开发者来说,到底有哪些问题 React Native 能涉及呢? 人才稀缺的问题 首先的问题是:移动开发人才的稀缺。看看那些培训班出来的人吧,经过 3 个月的培训就可以拿到 8K 甚至上万的工作。在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资。这说明当前移动互联网和创业的火热,已经让业界没有足够的开发人才了,所以大家都用涨工资来抢人才。而由于跨平台的框架(例如 PhoneGap,RubyMotion)都还是不太靠谱,所以对于稍微大一些的公司,都会选择针对 iOS 和 Android 平台分别做不同的定制开发。而 JavaScript 显然是一个群众基础更广的语言,这将使得相关人才更容易获得,同时由于后面提到的代码复用问题得到解决,也能节省一部分开发人员。 代码复用的问题 React Native 虽然强调自己不是 “Write once, run anywhere” 的框架,但是它至少能像 Google 的

ReactiveCocoa入门教程——第一部分

血红的双手。 提交于 2019-12-01 16:57:53
作为一个iOS开发者,你写的每一行代码几乎都是在响应某个事件,例如按钮的点击,收到网络消息,属性的变化(通过KVO)或者用户位置的变化(通过CoreLocation)。但是这些事件都用不同的方式来处理,比如action、delegate、KVO、callback等。 ReactiveCocoa 为事件定义了一个标准接口,从而可以使用一些基本工具来更容易的连接、过滤和组合。 如果你对上面说的还比较疑惑,那还是继续往下看吧。 ReactiveCocoa结合了几种编程风格: 函数式编程( Functional Programming ):使用高阶函数,例如函数用其他函数作为参数。 响应式编程( Reactive Programming ):关注于数据流和变化传播。 所以,你可能听说过ReactiveCocoa被描述为函数响应式编程(FRP)框架。 这就是这篇教程要讲的内容。编程范式是个不错的主题,但是本篇教程的其余部分将会通过一个例子来实践。 Reactive Playground 通过这篇教程,一个简单的范例应用 Reactive Playground ,你将会了解到响应式编程。下载 初始工程 ,然后编译运行一下确保你已经把一切都设置正确了。 Reactive Playground是一个非常简单的应用,它为用户展示了一个登录页。在用户名框输入user,在密码框输入password

ReactiveCocoa & MVVM 学习总结二

蓝咒 提交于 2019-12-01 16:57:39
二. MVVM 1. 什么是MVVM From: https://github.com/ReactiveCocoa/ReactiveViewModel#model-view-viewmodel MVVM是指 Model-View-ViewModel的简称,与MVC的一个主要区别是 view 拥有view model。这个与MVC不一样,MVC中应该是controller拥有view。同时,view model 中应该不包含相关view的代码,这样以来,view model就是独立的,可以与任何view进行绑定。 A view model is like an adapter for the model that makes it suitable for presentation. The view model is also where presentation behavior goes. From: http://cocoasamurai.blogspot.fr/2013/03/basic-mvvm-with-reactivecocoa.html MVVM是微软提出的,基于MVC的一种设计模式,更准确来说是基于Martin Fowlers Presentation Model ( http://martinfowler.com/eaaDev/PresentationModel

iOS开发 MVVM-ReactiveCocoa资料

人走茶凉 提交于 2019-12-01 16:57:29
相对好懂一点的: http://southpeak.github.io/blog/2014/08/02/reactivecocoazhi-nan-%5B%3F%5D-:xin-hao/ http://southpeak.github.io/blog/2014/08/02/reactivecocoazhi-nan-er-:twittersou-suo-shi-li/ http://www.cocoachina.com/ios/20140115/7702.html 然后看一下实际代码怎么实现: http://www.cocoachina.com/ios/20140224/7868.html 还有sunny对于ReactiveCocoa源码的解析及使用讲解 http://blog.sunnyxx.com/tags/Reactive%20Cocoa%20Tutorial/ 还有实用方面: http://blog.csdn.net/womendeaiwoming/article/details/37597779 https://github.com/jimple/JCiOSProjectSampleWithRAC MVVM框架设计原理及ReactiveCocoa的使用: http://yulingtianxia.com/blog/2015/05/21/ReactiveCocoa-and

ReactiveCocoa & MVVM 学习总结一

▼魔方 西西 提交于 2019-12-01 16:57:08
主要是为了总结学习RAC的过程中,遇到的一些困惑点,一些阅读的参考资料,文笔也不是很好。建议大家学习RAC参考文章: https://github.com/ReactiveCocoa/ReactiveCocoa/tree/master/Documentation 以及花瓣工程师的一篇很棒的文章: http://limboy.me/ios/2014/06/06/deep-into-reactivecocoa2.html 把自己的学习心得写了一个小demo,放在了github上面,欢迎一起学习交流: https://github.com/lihei12345/RACNetwokDemo ===================================================================== 一. ReactiveCocoa monad术语: “It’s a specific way of chaining operations together. ” , http://stackoverflow.com/questions/44965/what-is-a-monad 1. RACSignal / RACSequence: RACSignal与RACSequence是可以相互转换的。RACSignal是push-driven的

[干货分享]一篇可能会让你爱上MVVM与ReactiveCocoa的文章

≡放荡痞女 提交于 2019-11-30 11:43:13
概要 在此工程中,本文将讨论将MVC改造为MVVM需要的一些基本方法,同时会适当穿插部分关于MVVM概念性的讨论!本文最大的意义在于,提供了一种读者可以复现的方式,逐步引出从MVC向MVVM尽可能平滑过渡的一种方案;此外,也是为数不多的ReactiveCocoa实例文章之一.本文是MVVM系列文文章的第二篇,在阅读之前,您可能需要先阅读下第一篇文章: 写给iOS小白的MVVM教程(一): 从MVC到MVVM之一个典型的MVC应用场景 Apple本身的UIKit框架是为MVC模式设计的,所以你在无形之中写就的代码其实就是MVC,而且你甚至会觉得代码就应该这么写,不这么写还能怎么写?!MVVM由于缺乏框架级别的支持,所以在iOS的开发中一直似乎是很鸡肋式的存在.直到出现了 ReactiveCocoa !它从框架界别支持MVVM模式,它让你真切地感觉到自己以前的代码真的太乱了,它也让你真正有兴趣去尝试下一些比较流行的编程模式,比如响应式,函数式,MVVM等.出于自己的实际项目需要,必须最低支持 iOS 7版本,所以在进行本文之前,先对 RAC(ReactiveCocoa的简称,后文同)作了一番研究.虽然官方文档指明 3.0版本的RAC,最低支持的 是iOS 8.0,但是我们依然可以通过 CocoaPods 安装 2.5版本的ReactiveCocoa来在自己的项目中使用,具体细节参见:

RAC/MVVM个人学习资源汇总

眉间皱痕 提交于 2019-11-29 09:28:47
RAC和MVVM可以说是最近比较热门的话题,本着对新技术的好奇心,我也是东看看西看看了一个月,也算是初步入门了一下,于是便准备在这里向新新手推荐一些个人学习时所看过的博客以及demo。 个人认为先了解一下大概的使用方法和使用实例再去看原理性的东西可能更有利于学习,当然你可以按自己的喜好去选择学习顺序。( 以下文章皆为中文 ) 入门应用教程 这个是我看的第一篇文章,也是通过这个了解了RAC和MVVM大概是什么东西,英文好的可以去看文中的原文链接。 ReactiveCocoa 和 MVVM 入门-超长篇 这两个则是BenBeng博主的两篇入门文章,也是初步的概括了RAC一些基本使用并且每篇都会有一个小DEMO,让人能够印象更加深刻一点。 ReactiveCocoa入门教程——第一部分 ReactiveCocoa入门教程——第二部分 原理及概念 在看过上面文章之后对于rac的使用其实有了一个大概的了解,但是对于RAC的如何实现已经其中很多的概念方法属性的了解其实还是很模糊(当然可能是我比较愚笨)。然后下面的几篇文章,可以帮助你了解到很多关于RAC的底层原理的知识。 RAC源码解析,这篇文章个人认为还是需要一些基础才能够看得懂的,我是看了上面的文章之后才看的,看了好几遍之后感觉收获十足。 ReactiveCocoa2 源码浅析 下面则是简书作者 啊崢 刚出的两篇关于RAC和MVVM的文章

ReactiveCocoa常用方法总结

最后都变了- 提交于 2019-11-28 05:37:57
1、RACSignal使用: // RACSignal使用步骤: // 1.创建信号 + (RACSignal *)createSignal:(RACDisposable * (^)(id<RACSubscriber> subscriber))didSubscribe // 2.订阅信号,才会激活信号. - (RACDisposable *)subscribeNext:(void (^)(id x))nextBlock // 3.发送信号 - (void)sendNext:(id)value // RACSignal底层实现: // 1.创建信号,首先把didSubscribe保存到信号中,还不会触发。 // 2.当信号被订阅,也就是调用signal的subscribeNext:nextBlock // 2.2 subscribeNext内部会创建订阅者subscriber,并且把nextBlock保存到subscriber中。 // 2.1 subscribeNext内部会调用siganl的didSubscribe // 3.siganl的didSubscribe中调用[subscriber sendNext:@1]; // 3.1 sendNext底层其实就是执行subscriber的nextBlock // 1.创建信号 RACSignal *siganl =

ReactiveCocoa实践

拈花ヽ惹草 提交于 2019-11-26 10:19:16
1.按钮addTarget [[ self . aDepositBtn rac_signalForControlEvents :UIControlEventTouchUpInside ] subscribeNext :^( __kindof UIControl * _Nullable x) { //点击处理 }]; 2.View加tap事件 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] init]; @weakify ( self ); [[tap rac_gestureSignal ] subscribeNext :^( id x) { @strongify( self ); }]; [infoView addGestureRecognizer :tap]; 3.KVO监听对象的某个属性 [ RACObserve( self .mobileTextField, text) subscribeNext:^( id _Nullable x) { NSString * text = (NSString *)x; if (text.length) { //将提交按钮置为蓝色 } else { //将提交按钮置为灰色 } }]; 4.通知传值 [[ NSNotificationCenter