您的位置:首页 > 其它

源码推荐(8.11):Pinterest开源图片下载和缓存框架,查看单元格渲染时间

2015-08-11 09:01 537 查看
Pinterest开源图片下载和缓存框架--PINRemoteImage
PINRemoteImage是知名图片社交应用Pinterest开源的一款线程安全、高性能、功能丰富的图像下载库。除常规的异步下载和缓存外,PINRemoteImage还支持多种类型的文件下载,比如PNG、JPG、WebP,甚至是动态图。在弱联网环境下,PINRemoteImage通过两种方法来提高下载体验,其中之一是支持渐进的JPG,但并不是很老的渐进显示,而是添加了美观的模糊效果来处理扫描。


查看单元格渲染时间--DWURecyclingALert
在APP中下拉,可看到每个单元格所需渲染时间,并可在用户滚动APP时标记任何内容,以便开发者了解需要缓存的内容。
测试环境:Xcode 6.2,iOS 6.0 以上


打造超级NSUserDefault—ANKeyValue(作者:springox)
ANKeyValue尝试保留UserDefault的Key-Value接口理念的同时,扩展其适用的范围和层面。我们首先要做一个技术的预判——整个对象结构列表的存取(即归档)是否有意义?对此,笔者的实践经验是持肯定态度。App大量爆发的移动互联网时代,每一款涉及互联网业务的app都免不了运营类数据的加载和展示,这些数据往往通过合适的数据交换技术(字节流传输和恢复)达到客户端,这些数据往往也仅在经过解析和映射后用于整体展示用途,比如新闻、视频、购物、餐饮等首页,大部分还只是静态展示,少量数据涉及本地动态变化,变化的频率更为稀疏。如果以写字节流到本地文件的方式,每次加载都会因解析和映射重复消耗计算和内存,同时还无法支持对数据本地动态调整,比如“计数加1”、“点个赞”、“加个评论”等等。如果选择数据库方式,显然也不合适这种需要高效可复用的场景(运营开发的需求的变更和迭代确实相当惊人!),同时又不太能发挥数据库自身的优势,比如“增删查改”。相比之下,归档显然更具备优势,首先归档不需要再次解析和映射,其次基于反射,完全可以做到对象的自动序列化,对于开发效率的帮助更是数据库无法望其项背的,在例子中,将可以看到支持一份list数据,仅仅需要数行代码,不再需要准备更多。因此,基于这样预判,ANKeyValue是值得我们去尝试。正如开头提及的,ANKeyValue提供类似UserDefault的Key-Value接口,高度封装具体的持久化逻辑,我们只需要像对待一块内存一个对象那样去存取我们的对象即可,不仅如此,为了让ANKeyValue真正具备项目应用价值,我们为它实现了以下的特性:
1、业务逻辑可分表,这从UserDefault得到灵感后第一个希望支持到的特性,我们的业务逻辑完全可以根据自己的需要创建独立的table,而且table与table也是做到存储上隔离的,至少目前是如此;
2、反射自动序列化,对象不必手动编写序列化(当然也可以接受手动编写),业务侧完全不必考虑持久化逻辑,同时也有利于组件自身的迭代优化;
3、异步执行序列化,默认所有的序列化操作均为异步(当然也能支持同步操作),因此,set/get操作的速度仅此于Map/Dicitonary容器,另外,相关的同步保护逻辑都已考虑;
4、数据安全机制,支持存储目标文件名哈希,提供AES级别的加解密Key-Value接口;
5、大数据块优化,设想下,如果写入的对象list包含图片等资源,直接归档将会多么低效,为了减少存取的开销,资源均独立存储,并且限制反复无效读写;
6、版本升级管理,ANKeyValue提供了简单的版本号机制,可用于升级时抛弃式的数据升级;
7、更多地特性将会被继续发掘和实现......
测试环境:Xcode 6.2,iOS 6.0 以上


method swizzling封装成 C函数和 NSObject分类,使用非常简单(作者:12207480)
TYSwizzleDemo method swizzling easy to use,C Function and NSObject Categary
我已经把 method swizzling 封装成 C 函数 和 NSObject 分类 ,使用非常简单,demo附带测试
测试环境:Xcode 6.2,iOS 6.0 以上


仿QQ空间,微博欢迎界面及发布界面按钮弹出动画效果(作者:breaking1800)
根据新浪微博欢迎界面实现头像弹出,标题渐变显示功能
点击按钮从下往上弹出界面,并有以下功能
界面显示过程中底部按钮顺时针旋转
新界面中功能按钮按顺序依次弹出
以上个界面作为背景模糊效果显示
点击按钮实现放大消失效果
点击关闭按钮功能按钮逆序弹出
关闭按钮逆时针旋转直到界面消失
测试环境:Xcode 6.2,iOS 6.0 以上

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: