戴铭的博客 - 星光社

戴铭的博客 - 星光社

一个人走得快,一群人走的远

我写技术文章的一点心得
前言非常感谢大家抽出生命中宝贵的一段时间来听我接下来的一大段关于写文章那些事的唠叨。写文章的好处看看《觉醒年代》就知道了。 这篇文章我不会写一些常说的技巧,比如文章的内容前后要有逻辑关系,内容之间有关联。所讲知识前后的层次要平,不要在某个部分挖掘过深。写作过程中牢牢抓住要表达的内容,不要过于偏离主题。类似这样的技巧不会说。都说一流的人讨论思想、普通人讨论事情、三流的人讨论人,那么为了提高文章高度,除了说些事情,我还打算加些思想的内容。 大家都习惯去阅读他人人生体验来体验不一样的人生,这样的方式和评头论足一样简单舒服,轻松爽快。而主动去对自己思想进行研究和开发,通过写作输出自己独特的经历和...
WWDC 2021 Day1 笔记
WWDC开始了,一周时间会有大量Session可学习,这个页面https://github.com/twostraws/wwdc 收集了来自社区的各种WWDC活动、新闻和教程的链接,随着WWDC的进行,页面内容会不断更新,去年2020年的汇总页在这里https://github.com/twostraws/wwdc/blob/3d3b093218af06465b6b268b23e13e2ad6e2d9f8/README.md 。Apple官方收集的开发者组织活动页面是https://developer.apple.com/wwdc21/beyond-wwdc/ ,其中有SwiftGG翻译...
A站 的 Swift 实践
文章已发在快手大前端公众号,欢迎关注,文章地址如下: A站 的 Swift 实践 —— 上篇 A站 的 Swift 实践 —— 下篇 新文章写得贼累。完美错过了一览祖国大好人海的机会,TIANROAST🦔咖啡也没喝成,新买Switch怪物猎人崛起也仅限于炎火村。如果喜欢的话,求转发、“在看”和一个大大的赞。 下面是正文内容,我转到博客里来。 背景介绍 AcFun俗称为“A站”,作为一款二次元内容社区产品,以“认真你就输了”为文化导向,倡导轻松欢快的亚文化。AcFun涵盖了中长视频,小视频,番剧,文章等众多内容,支撑这些内容的大部分功能都选择了用Swift开发,早在2019年,AcF...
深入剖析 JavaScript 编译器/解释器引擎 QuickJS - 多了解些 JavaScript 语言
介绍最近在做 JavaScript 和 Native 打交道的工作,虽然6年前服务端和前端包括 JavaScript 经验也有些,不过如今前端标准和前端引擎也发展了很多,这里做个记录吧。本文会着重介绍 QuickJS,其中会针对 js 语言的一些特性来看这些特性在 QuickJS 是如何解释执行和优化的,能够加深对 js 语言的理解。QuickJS 是在 MIT 许可下发的一个轻量 js 引擎包含 js 的编译器和解释器,支持最新 TC39 的 ECMA-262 标准。QuickJS 和其它 js 引擎的性能对比,可以参看 QuickJS 的 benchmark 对比结果页,从结果看,J...
App 启动提速实践和一些想法
前言启动是门面,好的印象也助于留存率提高。苹果也在系统启动上不断努力,提升用户体验,最新的 M1 宣传中还特别强调了翻盖秒开 macOS,可以看出其对极致启动速度的追求。这篇文章提到,据 Akamai 调查,每多1秒等待,转化率会下降7%,KissMetrics 的一份报告说启动超5秒,会使19%的用户放弃等待卸载 App。 高德 App 启动优化专项完成后已经有一段时间了,一直保持实属不易,我一年前在这篇文章里也做了些总结。我这里再补充些启动优化用到一些手段和一些想法,希望这些能够对你有帮助。 通过 Universal Links 和 App Links 优化唤端启动体验App 都会...
我为什么写了《跟戴铭学iOS编程》这本书
在我改了几次封面后,书已上架。 为什么写《跟戴铭学iOS编程》又到了新的一年开始换工作的季节,我身边好多熟人也都开始寻找机会,看起来离职原因各有不同,有绩效不好的、和领导处不好的、多年难晋升的、做的事情难提升自己的、有更好机会的。但究其核心,我觉得还是危机感,想着如果脱离现在所处公司环境,没有现在的级别位置,自己还剩下什么,在一群候选人里,自己有没有胜于其他人的亮点,是否能够脱颖而出。我时常会思考这些问题,做了多年技术,一直在想,相同时间里接触和学习什么知识才是物有所值的。 计算机领域,作为开发者最开始接触,同时也是运用最多的就是编程语言,现在学习 iOS 开发一定要选择用 Swift...
Apple 操作系统可执行文件 Mach-O
介绍Mach-O 的全称是 Mach Object File Format。可以是可执行文件,目标代码或共享库,动态库。Mach 内核的操作系统比如 macOS,iPadOS 和 iOS 都是用的 Mach-O。Mach-O 包含程序的核心逻辑,以及入口点主要功能。 通过学习 Mach-O,可以了解应用程序是如何加载到系统的,如何执行的。还能了解符号查找,函数调用堆栈符号化等。更重要的是能够了解如何设计数据结构,这对于日后开发生涯的收益是长期的。了解这些对于了解编译和逆向工程都会有帮助,你还会了解到动态链接器的内部工作原理以及字节码格式的信息,Leb128字节流,Mach 导出时 Tri...
在快手做分享、无用类检查、在广州做 SwiftUI 学习笔记分享、InfoQ二叉树视频
在快手做分享 前滴滴同事邀请我去快手做分享。下面是分享时的 Slides: 详细文章介绍:如何对 iOS 启动阶段耗时进行分析 | 星光社 - 戴铭的博客 代码:GitHub - ming1016/MethodTraceAnalyze: 方法耗时分析 无用类检查如果包里有一堆没用的类,不光会影响用户下载速度,也会影响启动加载速度。检查无用类,一次是无法获得全部无用类的,因为无用的类里用了其他无用的类就算是有用了,所以需要进行递归查找,这样才能够连根拔起。这个过程如果是手动做比较费劲、收益无法一次评估,很难推动。同时还需要在线上灰度运行时检查实际类的使用情况,很多静态层面关联的类使用,实...
avatar
戴铭
极客时间《iOS开发高手课》和纸书《跟戴铭学iOS编程》作者