-
开发者所需要知道的 iOS 11 SDK 新特性
年纪大了过了能熬夜看 WWDC 的时代了,但是还是在小小宝的哭闹和妈妈大人换尿布的催促中起了个大早。于是算趁着“热乎”把 WWDC 2017 的 Keynote 看完了。和往年差不多,虽然 WWDC 是一个开发者会议,但是 Keynote 并不是专门针对我们开发者的,它还承担了公司状况说明,新品发布等功能。作为技术人员,可能接下来的 session 会更有意义。要用一句话来评价今年 Keynote 所展现出来的内容的话,就是小步革新。大的技术方面可以说只有 ARKit 可堪研究,但是我们还...…
-
包教包会-弹性动画的原理与实现
弹性动画一直以来都深深地吸引我,随着知识储备增多,渐渐探索出一套弹性动画的实现原理。简介本文将从零开始,一步步解析弹性动画原理,包教包会。本文Demo简单地封装了一个动画库来测试,支持UIView的三种动画类型:Size、Position、Scale,动画运动曲线有:bounce、easeInOut。CALayer动画暂不支持。运动曲线从初中开始,我们就开始接触正弦曲线、余弦曲线,现在真的排上用场了(😭后悔当初数学没学好)。我们可以通过对正弦余弦做一些处理,来得到动画的运动曲线。弹性动...…
-
iOS - 被赶尽杀绝的Crash
Crash曾经是折磨我们的梦魇,程序员的头顶的一把铡刀,你永远不知道它什么时候降下来…背景现在市面上Crash收集做得好的平台已经很多了,比如说听云、Bugly等,听云的功能确实强大、Crash的崩溃轨迹是其他平台上没有看到的,但是其价格有点惊人,而Bugly只记录页面轨迹,但是Bugly是免费的。不管是听云还是Bugly,他们的功能其实都是很好实现的,下面我会一一介绍。收集Crash在AppDelegate加入收集Crash的方法,具体监听Crash代码新建一个类目或者建一个单例都可...…
-
iOS无埋点数据统计实践
手动埋点太麻烦了,谁用谁知道。背景一直以来,大数据紧紧的和埋点技术捆绑在一起,甚至大数据时代也可以说是埋点时代。这话没毛病,但是埋点一直都存在着效率低下的问题,构建起来费时间,容易出错,每次修改埋点都需要开发手动修改等问题。无埋点统计技术闪亮登场,很好地解决了这个问题,解放了程序员的双手。内容概要本文Demo已经实现以下内容: 主要功能 备注 crash监控 已完成 卡顿监控 ...…
-
再看关于 Storyboard 的一些争论
从 iOS 5 的时代 Apple 推出 Storyboard (以下简称 SB) 后,关于使用这种方式构建 UI 的争论就在 Cocoa 开发者社区里一直发生着。我在 2013 年写过一篇关于代码手写 UI,xib 和 SB 之间的取舍的文章。在四五年后的今天,SB 得到了多次进化,大家也积攒了很多关于使用 SB 进行开发的经验,我们不妨再回头看看当初的忧虑,并结合 SB 开发的现状,来提取一些现阶段被认为比较好的实践。这篇文章缘起为对使用 SB 的方式一文 (及其英文原文) 的回应,我...…
-
呦~ 玩转Git 多远端的应用
Git使用小技巧—食之无味,弃之可惜,坚持不铺张浪费的原则。背景对比GitHub和Bitbucket各有优劣势(国内的不敢用),单一使用都是各种限制,比如说GitHub什么都好就是私有仓库要收费,而Bitbucket虽然免费,但是又各种卡,推送和拉取都比较慢,我们的口号是鱼和熊掌兼得,取二者之长。文章结尾处还总结了两点妙用。 平台 私有仓库 io速度 使用频率 Github 收费 ...…
-
Jenkins+fir 上传更新日志
iOS开发自动打包应该很多人用了,但是其中还有一些地方不够完美,比如说打包上传成功fir和邮件没有更新日志内容,嗯,我要说的就是这个。背景在日常开发中持续集成可以节省开发者很多时间和精力,fir下载地址和邮件没有更新日志内容,这样无法通知测试人员具体修改内容,造成了很多不便,所以有了这个需求,下面贴一张没有更新日志和有更新日志对比图。步骤前提:首先你得先折腾好打包工具吧,现在的教程都已经很多了,贴一下当时我看的教程:1.Jenkins+GitHub+Xcode+fir自动打包教程2.我...…
-
所有权宣言 - Swift 官方文章 Ownership Manifesto 译文评注版
Swift 团队最近在邮件列表里向社区发了一封邮件,讲述了关于内存所有权方面的一些未来的改变方向。作为上层 API 的使用者来说,我们可能并不需要了解背后所有的事实,但是 Apple 的这封邮件中对 Swift 的值和对象的内存管理进行了很全面的表述,一步步说明了前因后果。如果你想深入学习和了解 Swift 的话,这篇文章是非常棒的参考资料。我尝试翻译了一下全文,并且加上了一些自己的注解。虽然这篇文章比较长,但是如果你想要进阶 Swift 的话,不妨花时间通读全文 (甚至通读全文若干遍)。...…
-
编程秘籍之四两拨千斤-递归
刷了一段时间剑指offer的算法题,收获了很多,其中对递归的印象尤其深。递归给我一种四两拨千斤的感觉。背景递归,一种能够装逼的编程技巧。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量,在算法题中有广泛的应用。掌握递归的4个要点写好一个递归算法,主要是把握好如下三个方面:1. 正确的时机退出。递归很容易造成死循...…
-
使用邮件来进行信息管理,顺便介绍最近写的一个小 app - Mail Me
距离上一次自己在 App Store 发布个人 app 已经过去了两年多了。这段时间里把精力主要都放在了公司项目和继续进一步的学习中,倒也在日常工作和出书等方面取得了一些进展。个人 app 这块近两年虽然有写一些便捷的效率类应用,但是几次审核都被 Apple 无情拒掉以后,也就安心弄成自用的小工具了。看着自己逐渐发霉的开发者证书,果然觉得还是找时间倒腾点什么比较好。于是就有了现在想要介绍给大家的这个工具,Mail Me - 一个可以帮助你快速给自己发送邮件的小 app。基于邮件的信息管理方...…