DandJ

70
获赞数
14
关注数
26
粉丝数
成都
成都信息工程大学 | 信息安全
IP 属地未知
2018-05-25 加入
浏览 8.1k

iOS developer.

195 声望|学徒
ios
174
objective-c
73
性能优化
54
avplayer
50
apple
50
黄金勋章
暂未获得该勋章
如何获得
白银勋章
暂未获得该勋章
如何获得
1 青铜勋章
个人动态
  • 发布了文章2019-03-14
    Flutter系列:4.基于注解的代码生成应用
    api数据序列化为model实例是移动开发中很常见也是很基础的技术点,得益于运行时等动态技术在ios开发中我们可以借助JSONModel或者SwiftyJSON很方便的实现序列化,对于刚刚接触flutter的开发者来说其序列化体验无疑是非常糟糕的。本身Dart语言是支持反射的,但是在Flut...
  • 发布了文章2019-01-10
    Flutter系列:3.APP基础设施搭建
    在上一篇文章Flutter系列:2.实现一个简单的登录界面通过一个简单的登录页面带入了Flutter中页面构建的方式以及一些简单控件的使用;在开发一个app前首要的任务往往是搭建app需要的基础结构,比如底部菜单,路由导航,网络请求以及一些常用的颜色、图标、按钮、toast...
  • 发布了文章2018-11-05
    block解除了循环引用后还需要注意
    block代码块在开发中常用于异步开发,例如GCD就是提供block的异步块,同时在使用block的时候往往需要注意避免循环引用,而消除block循环引用就是靠__weak来实现,比如:
  • 发布了文章2018-11-03
    KVO 让人刮目相看
    KVO在OC中是实现键值(key-value-observing)观察的方式,在设计模式中是典型的观察者模式,当被观察者的键值发生改变时会通知到事先添加的观察者,在app开发中经常被使用,达到事半功倍的效果。但同时KVO在使用的过程中有许多需要特变注意的地方,稍有不慎就会导致app...
  • 发布了文章2018-11-01
    Flutter系列:2.实现一个简单的登录界面
    上一篇文章Flutter系列:1.开发环境配置已经配置好了基本的开发环境,那么这篇将直入主题,实现一个简单的登录页面,实现输入用户名密码点击登录后验证输入有效性,模拟调用api登录,最终弹窗提示登录成功。
  • 发布了文章2018-11-01
    Flutter系列:1.开发环境配置
    Flutter是Google推出的跨平台App开发SDK,通过自己实现高性能引擎相较于RN和Weex的JS桥接方案有本质的性能优势,具体原理对比可以阅读此文移动端跨平台开发的深度解析进一步了解。
  • 发布了文章2018-08-31
    iOS短视频播放缓存之道
    一套基于AVPLayer短视频播放缓存库ShortMediaCache GitHub地址。 主要特点: 1.为短视频量身设计,接入方便,不侵占业务 2.边播变缓存,缓存后直接播放 3.预加载功能,秒播下一条短视频 4.自动缓存管理 原文地址 业务背景 公司电商APP接入短视频模块也有半年多的时间...
  • 发布了文章2018-07-24
    method swizzling你应该注意的点
    方法交换是OC运行时特征之一,通过方法交换可以hook方法,在实现一些需求时可以达到事半功倍的效果,但使用不慎同样可能导致难以想象的后果。在使用method swizzling前都应该理解以下注意点。
  • 发布了文章2018-07-13
    一款简单好用的UICollectionView横向滚动刷新控件
    点我跳转原文源码地址:(GitHub) 实现功能: 接入简单,不侵入代码 右拉刷新,左拉加载更多 自定义提示文案和加载动画 方便隐藏和显示加载提示文本和动画 支持 ‘没有更多数据’ 提示 接入方式 下载源码,将文件夹 "SideRefresh"添加进工程 引入头文件 #import "UIColle...
  • 赞了文章2018-05-28
    iOS一个灵活可扩展的开源Log库
    目前大部分iOS的小型开发团队都不是很重视log,导致很多线上发生的或者用户反馈的bug难以排查。对于App来说一个好的日志系统可以帮助我们用最小的代价来排查一些疑难bug,我们唯一要做的就是在合适的位置打印日志,记录App的运行状况。这样做不仅仅可以让我们在debug...
  • 回答了问题2018-05-28
    ios uicollectionview 能不能为不同的section设置不同的高度?
    (CGSize)collectionView:(UICollectionView )collectionView layout:(UICollectionViewLayout)collectionViewLayout referenceSizeForHeaderInSection:(NSInteger)section;
  • 回答了问题2018-05-28
    AVPlayer 播放网络视频失败
    url是一个内网地址吧?播放mov格式的视频经过我们测试发现要等视频加载到70%左右才能播放,所以用AVPlayer尽量不要播放mov格式的,或者换个播放器ijkPlayer, 地址:[链接]
  • 发布了文章2018-05-28
    iOS响应者链彻底掌握
    iOS响应者链(Responder Chain)是支撑App界面交互的重要基础,点击、滑动、旋转、摇晃等都离不开其背后的响应者链,所以每个iOS开发人员都应该彻底掌握响应者链的响应逻辑,本文旨在通过demo测试的方式展现响应者链的具体响应过程,帮助读者彻底掌握响应者链。
  • 发布了文章2018-05-28
    iOS显示性能优化过程讲解
    iOS系统界面滑动流畅性的保持主要是依靠CPU和GPU两大处理硬件间通力合作的结果,一个视图的显示需要先经过CPU创建、布局计算、对图片解码、文本绘制,然后CPU将计算的结果交给GPU,GPU可能需要对图形进行变换、合成、渲染,GPU然后将渲染的结果提交到帧缓冲区等待下...
  • 发布了文章2018-05-25
    iOS显示性能优化过程讲解
    iOS系统界面滑动流畅性的保持主要是依靠CPU和GPU两大处理硬件间通力合作的结果,一个视图的显示需要先经过CPU创建、布局计算、对图片解码、文本绘制,然后CPU将计算的结果交给GPU,GPU可能需要对图形进行变换、合成、渲染,GPU然后将渲染的结果提交到帧缓冲区等待下...