iOS ReplayKit 与 屏幕录制、也谈“前端已死” | 每日掘金第 207期

935 阅读8分钟

Hello,又到了每日掘金时间。酱酱们的每日掘金新增优质作者介绍和码上掘金板块,专注于发掘站内优质创作者和优质内容,欢迎大家多提宝贵意见!

本文字数2600+,阅读时间大约需要 15分钟。

  • 【本期每日掘金】亮点:
  • iOS ReplayKit 与 屏幕录制
  • 使用 Rspack 构建真实开源项目,看看迁移成本和性能收益如何?
  • 模块化热点 Pure ESM 与 Dual Package,你怎么看?
  • 也谈“前端已死”
  • “当高启强遇到陈书婷”与TCP协议
  • LinkedBlockQueue 知根知底
  • ……

筛选规则:文章发布时间在本期「酱酱们的每日掘金」发布时间的 1-3 天内,且符合社区推荐标准,也会同步发布在掘金相关技术社群。

今日主理人|每日掘金

本期每日掘金由 帅气的法医 负责制作,法医是一个长期活跃于沸点的最佳摸鱼手,热爱Coding,喜欢分享,五湖四海皆兄弟,欢迎大家一起在沸点摸鱼,在掘金创作。

每日干货|每日掘金

主理人们会对近期(1-3 天)社区深度技术好文进行挖掘和筛选,优质的技术文章有机会出现在下方列表,排名不分先后。

『前端』

对于 exclidraw 这个基于 webpack 的相对复杂的开源项目而言,我们把构建工具迁移到 Rspack 并没有想象中那么繁琐,迁移过程相对轻松,主要有两个原因

该项目是一个全栈可视化项目,主要用于展示各类数据信息。目前支持主题切换、国际化、高德地图、Echart图表绘制、浏览器定位等功能。本文将围绕这些功能进行着重描述,并分享如何开源该项目的经验和技巧,最后会附上项目地址

Pure ESM 是目前模块化中比较有意思的一个话题,最早由sindresorhus 在 Github 上的一个帖子中提出,它的意思不难理解,"纯净的 ESM",对此暂且有两种解读:一种是比较狭义的理解,即 npm 包仅保留 ESM 格式产物,抛弃其他格式产物;广义的理解包容性更强,即所有的 npm 包都提供 ESM 格式产物。

随着消费和广告行业的慢慢复苏,前端的就业情况会有所好转。但是……首先,这个好转不会很快,而是很缓慢那种,因为当一个事物陷入低谷再要起来,前期都是缓慢的,需要升到某一个临界点之后,才会明显加速。其次,就算前端的就业情况有所恢复,也不可能恢复到疫情之前的那种火热,那个时候遍地都是前端培训班,非常夸张。至于前端是否会死,这个完全不要担心。

BEM。就像前端开发领域的所有技术一样,以BEM格式编写CSS可能是两极分化的。但它是——至少在我的 Twitter bubble 中——更受欢迎的 CSS 方法论之一。就我个人而言,我认为 BEM 很好,我认为你应该使用它。但我也理解你为什么不这么做。

大家是否经常听别人提起TCP协议的三次握手和四次挥手呢?🤔是否看过很多相关的文章都没看懂或是没记住呢🤷‍?看过我上篇的小伙伴都应该知道TCP协议是属于传输层中的协议。TCP协议中的三次握手和四次挥手是计算机网络中最重要的知识点,也是我们面试过程中经常问到的点。TCP协议(Transmission Control Protocol,传输控制协议)是处理可靠传输的,保证数据的正确性,只要使用这个协议,那双方的数据永远不可能错乱,多个字或者少个字的情况。

『后端』

队列在生活中随处可见,医院缴费需要排队、做核酸需要排队、汽车等红绿灯需要排队等等。队列是一个按照先来到就排在前面,后来到排在后面的数据结构,并且出队的时候也是按照先来到先出队。使用数组和链表进行实现。通常用于协调任务的执行和数据的交换。

我(本文中的“我”皆指原文作者,非译者!)一直在研究计算机如何用二进制表示事物的有关问题,其中有个问题被问了好几次——为什么 x86 架构使用8位字节?为什么不用其他大小呢?对于这个问题,我认为有两种存在可能的答案

春天到了大地都复苏了,沉寂了很久的cpu也开始慢慢复苏了,所谓前人埋坑后人填坑,伴随着阿里云监控报警,线上CPU使用率暴增,于是就开始了排查之路。

Race-To-Empty顾名思义,就是以极快的动作导致目标对象为空的攻击手段,通过快速地调用某个代码导致被攻击者的账户中有用资产为空的情况。

现我国现有4471w视障/听障人士,60岁及以上人群达2.6亿规模。微信作为国民级应用,实现无障碍迫在眉睫。为了帮助他们更好地使用微信 App,Android微信完成了适老化及无障碍改造。本文主要介绍Android 微信开发团队根据适老化及无障碍需求,完成的一个协助业务侧进行无障碍功能开发的框架。希望能给广大开发爱好者带来帮助和启发!

『移动端』

个人于2019年5月开源了WanAndroid的Flutter版本,截止目前也有660+的star,在过去的4年中,大家对Flutter的关注也越来越多,且有很多已经在商业项目中使用。这中间也陆陆续续有不少朋友问我什么时候能升级一下Flutter的版本,毕竟太老了。所以这次也是借着这个机会,把这个项目升级一下,熬了两个大夜,终于算是适配好了。

通过在关键流程,如启动页面、页面首帧绘制阶段 优化相应消息的顺序 可以提高相应流程的速度,避免因为其他消息阻塞了关键流程;消息顺序的修改只能优化局部问题,从整体上看,耗时问题并没有解决,只是将问题延后了。消息耗时的监控及治理是解决根本问题的方式

Flutter自己, 和React Native一样, 仅仅是一个UI框架而已. 这跟Android, iOS系统还是差了很多. 也就是说, 当涉及到: 指纹, 地理位置, 设备文件, 拍照, ... 等等诸多非UI的工作时, Flutter自己是处理不了的.但是Flutter提供了一个跨平台框架, 叫做MethodChannel, 来下沉这种非UI的工作到native平台去. 说人话就是, Flutter自己不支持拍照功能, 但Android, iOS支持啊. 于是当用户在Flutter中想拍照时, Flutter就告诉Android或iOS, 说"请你拍照, 拍完了告诉我". 这样当native平台干完了活, 就告诉Flutter完成结果(成功的数据, 或失败的原因). 这种就是所谓的"下沉到native平台"的工作.

经过一段时间的工作(摸鱼划水),从几个很小的地方给大家介绍下我是如何提升编译构建速度的,但是本次分享内容还是主要针对当前阿逼的工程架构,不一定对你们有帮助哦。

在客户端开发的生涯里,有时会遇到这样一些场景,需要对用户在应用内的操作做进行屏幕录制,甚至是系统层级的跨应用屏幕录制来实现某种特殊需求,例如在线监考、应用问题反馈、游戏直播等。
苹果提供了 ReplayKit Framework 来满足这些需求,目前云音乐 LOOK 直播客户端内就是采用这个系统框架来实现跨应用录屏直播的。

📖 投稿专区|每日掘金

👉 大家可以在评论区推荐认为不错的文章,并附上链接和推荐理由,有机会登上下一期。文章创建日期必须在近 1-3 天内;可以推荐自己的文章、也可以推荐他人的文章。