这里记录过去一个月,我看到的值得分享的内容,包含但不限于iOS知识,每月的最后一天发布。 欢迎推荐内容,能够前往zhangferry/iOSMonthlyReport提交issue。 ios
图片上的闪光动画,相似这种效果: git
CAGradientLayer
+
CABasicAnimation
实现:
func showGradientAnimation() {
let gradient = CAGradientLayer()
gradient.frame = canvasView.bounds
//左上角到右下角的渐变
gradient.startPoint = CGPoint(x: 0, y: 0)
gradient.endPoint = CGPoint(x: 1, y: 1)
gradient.locations = [0.0, 0.0, 0.0]
//调透明度渐变要使用白色
gradient.colors = [UIColor.init(white: 1, alpha: 0.0).cgColor,
UIColor.init(white: 1, alpha: 0.3).cgColor,
UIColor.init(white: 1, alpha: 0.0).cgColor]
canvasView.layer.addSublayer(gradient)
let animation = CABasicAnimation.init(keyPath: "locations")
//从0位置开始从1位置结束
animation.fromValue = [0, 0, 0.3]
animation.toValue = [0.7, 1, 1]
animation.duration = gradientAnimationDuration
animation.repeatCount = 1
animation.isRemovedOnCompletion = true
gradient.add(animation, forKey: nil)
}
复制代码
这个是onlink总结对于各个平台对应用间跳转的支持状况,其中deeplink指Universal Links: github
若是是facebook某一主页,能够经过:编程
//这里能够替换成本身的主页id
let url = URL(string: "fb://page?id=**")!
UIApplication.shared.open(url, options: [:], completionHandler: nil)
复制代码
这是使用了app scheme的方式进行跳转的,要求本机安装了facebook才能跳转成功。canvas
若是是跳转到某一个主页的某一个帖子,能够经过:swift
//这里替换成固定的帖子连接
let url = URL(string: "https://www.facebook.com/**/posts/**")!
UIApplication.shared.open(url, options: [:], completionHandler: nil)
复制代码
这是经过Universal Links
方式跳转的,该连接能够经过苹果的验证。若是未安装应用会跳转到网页端,若是安装了就直接跳到指定页面。浏览器
那正常来讲,facebook主页也应该能够经过支持deep link的https连接跳转才对,但实际测试来看是不行的。因此若是要加上是否安装的逻辑的话,就是:app
let url = URL(string: kFacebookHomePageSchemeUrl)!
if UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
UIApplication.shared.open(URL(string: kFacebookHomePageUrl)!, options: [:], completionHandler: nil)
}
复制代码
推荐:将链接复制到便签,邮件,短信,或者使用二维码的形式使用。框架
不要将连接粘贴到 Safari 中 - iOS 目前阻止从任何浏览器的地址栏进行深度连接。工具
验证apple-app-site-association的链接,能够苹果的验证工具
在一次使用lottie调用设计提供的动画时,该动画是一个放烟花,而后散开的动画。用网页预览能够完美展现效果,可是放到客户端运行时,却只展现一部分即烟花上飞过程,而没有散开效果。最后仔细查看文档,找到这个:
Repeater(中继器)
控件,而该控件在lottie的3.0版本还不支持,可是在2.5.2版本是支持的,回退版本至2.5.2解决了动画确认问题。
PS:一些古怪问题,第一反应要从官网文档说明、Issues、QA中找答案
ROI(return on investment):投资回报率 反应产品的盈利状况,用百分比表示。 市场营销、运营活动,都是企业获利为出发点,经过利润/投资量化目标。利润的计算涉及财务,不少时候用更简单的收入做分子。当运营活动的ROI大于1,说明这个活动是成功的,能赚钱。 ecpm(effective cost per mille):每千次展现能够得到的广告收入 这是广告主预估自身收益的指标。 arpu(Average Revenue Per User):每用户平均收入 ARPU注重的是一个时间段内运营商从每一个用户所获得的利润。很明显,高端的用户越多,ARPU越高。 LTV(life time value):生命周期总价值 意为客户终生价值,是公司从用户全部的互动中所获得的所有经济收益的总和。
对23位iOS开发者的采访,一块儿来看下他们眼中这届WWDC什么最让人兴奋。
6月份的WWDC给咱们开发者带来了不少东西,Dark Mode、Swift UI、Combine、iPad OS等等。也是我感受近几年WWDC干货最多的一界了。干货太多不知道怎么学习怎么办?这里没故事的卓同窗分享的WWDC2019 内参
免费领取名额。能够看各位大佬对WWDC的最新解读分析,目前二十多天里已经更新了30篇文章!。
这是一篇解读SwiftUI的文章,目前还有第二篇。而喵神也在计划写一本关于SwiftUI
和Combine
的书籍
我已经计划写一本关于 SwiftUI 和 Combine 编程的书籍,但愿能经过一些实践案例帮助您快速上手 SwiftUI 及 Combine 响应式编程框架,掌握下一代客户端 UI 开发技术。如今这本书已经开始预售,预计能在 10 月左右完成。若是您对此有兴趣,能够查看 ObjC 中国的产品页面了解详情及购买。十分感谢!
我发现喵神总能一下找到做为新概念最应该注意的问题,好比SwiftUI和Swift5.1的关系,为何须要新系统才能预览以及ViewBuilder里接受那些条件语句等。想了解SwiftUI 这篇文章真是必读
使用 SwiftUI
& Combine
和MovieDB API实现的一款应用。 Talk is cheap, show me the code. 结合实践是最快速的了解一个概念的方式。这也是最近一段时间上升最快的SwiftUI&Combine
相关仓库了。
一个帮助理解Combine
概念的 Swift Playground。对于首次接触响应式编程的人来讲具体事例是帮助理解概念很好的方式。
该Playgrounds要求Xcode11 beta2及以上版本才能查看。
列举了Combine
和RxSwift
之间的差异和一些概念上的对比,对于有一点RxSwift概念的人来讲能够快速的理解Combine,也是对于想从RxSwift迁移至Combine的一份参考。
普通选民也开始意识到,民主机制已经再也不可以为他们带来权力。世界正在变化,但他们摸不清变化的方式和缘由。权力正在转移,但选民不知道权力去了哪儿。在英国选民的想象中,权力被欧盟夺走了,因此他们投票脱欧。而在美国选民的想象中,是既得利益者垄断了权力,因此他们支持反体制的候选人,好比伯尼·桑德斯和唐纳德·特朗普。但可悲的事实是,没有人知道全部的权力去了哪儿。就算英国离开欧盟、特朗普接掌白宫,权力也毫不会回到普通选民身上。 --将来简史
WWDC发布的信息里面最让我感兴趣的就是SwiftUI
和Combine
,目前从Github的活跃状况来看也是这两个技术相关仓亏最多。SwiftUI解决了写UI布局的痛点,而Combine的出现代表了苹果对响应式编程的承认,对于我这种使用了一年RxSwift的人来讲简直是一种福音。还有一点是这两个大招都是对Swift的支持,这是一个很明显的信号:Swift已经很成熟了,很强大了,之后还会有更多更好的优化。
过去几年,你能够忽视 Swift,可是,将来几年,若是不拥抱 Swift,将没法紧跟着 Apple 生态圈。
从上个月开始有规律的进行跑步,上个月跑步里程是60km,这个月是70km,距年初定的目标已经完成了56%。 跑步带来的一个好处是最近一段时间的睡眠质量有显著提升,睡得更香了。若是你有睡眠质量问题,能够考虑跑步这个方式尝试解决哦。
封面图来自于在公司园区跑道上的拍摄。