老司机 iOS 周报 #113 | 2020-05-18

老司机 iOS 周报,只为你呈现有价值的信息。前端

你也能够为这个项目出一份力,若是发现有价值的信息、文章、工具等能够到 Issues 里提给咱们,咱们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。react

新闻

Flutter web 最新进展: 发掘更多可能!

@老驴:Google 又来更新 Flutter Web 的进展啦。在最新的版本中,Flutter 已经提供了 PWA 的支持,也有愈来愈多的插件开始提供对 Web 的支持,同时 Flutter 也进一步改进了 Web 的调试与测试。ios

虽然 Flutter Web 支持仍是处于 beta 阶段,可是,Google 正在努力一步一步提高 Flutter 的表现,也但愿广大开发者也能加入进来,一块儿完善 Flutter Web。git

新手推荐

Settings Bundles Management in Xcode

@极速男孩:Settings Bundles 支持开发者在 iOS 设置中加入一些自定义的内容。本文主要介绍了如何经过 shell 脚原本在设置中根据不一样的 Configuration 或者不一样的 Targets 来加入不一样的内容。github

文章

🌟 🐕 TrampolineHook 学习笔记

@五子棋:虽然这个库是我写的,可是没想到居然有大神这么详细的剖析了里面的每一方面。太赞了,必须推荐。web

🌟 🐕 超详解析 Flutter 渲染引擎|业务想创新,不了解底层原理怎么行?

@CrazyCoderShi:小编强烈推荐在用 Flutter 的小伙伴仔细阅读这篇文章,本文由手淘技术产出,从渲染引擎层面详细分析了一个控件是如何展现到屏幕上的,细致入微。文末简要地提了一下,手淘在 Flutter 上的一些探索,也是社区内常提到的把 Flutter 引擎做为小程序的渲染引擎👍。shell

🐕 What’s new in Swift 5.3?

@享耳先森:Swift 5.3 即将发布,本文给你介绍 Swift 5.3 的新特性,最显著的两个就是 多尾随闭包(Multiple trailing closures) 与 多重异常捕获(Multi-pattern catch clauses),其他特性请阅读原文。小程序

  • 5.3 之前尾随闭包只能做于最后一个 closure 类型参数,对于有多个 closures 参数的状况,也不建议使用尾随闭包,Swift 5.3 开始将支持多 closures 参数使用尾随闭包模式。swift

  • 之前一条 catch 语句中只能匹配一种 error,5.3 开始将支持多个 error后端

    do {
        let result = try checkReactorOperational()
        print("Result: \(result)")
    } catch TemperatureError.tooHot, TemperatureError.tooCold {
        print("Shut down the reactor!")
    } catch {
        print("An unknown error occurred.")
    }
    复制代码

🐕 Flutter 在 PLUS 业务中的探索和实践

@looping:本文介绍了京东 PLUS 会员业务团队入坑 Flutter 的缘由,以及当时须要探索和解决的问题调研结论,而且详尽地描述了 Flutter 在 PLUS 业务中的实践过程,这对正在研究 Flutter 的同窗是一份很好的学习交流资料。

🐕 WKWebView 默认缓存策略与 HTTP 缓存协议

@含笑饮砒霜:WKWebView 默认缓存策略彻底遵循 HTTP 缓存协议,苹果并无作额外的事情。WKWebView 默认缓存策略流程总结以下:

    1. 是否有缓存,没有则直接发起请求,有则进行下一步
    1. 是否每次都得进行资源更新校验(响应头是否有 Cache-Control:no-cache 或 Pragma:no-cache 字段),不须要则进入 3,须要则进入 4)
    1. 缓存是否过时(响应头,Cache-Control:max-age、Expires、Last-Modified 启发式缓存),没过时则使用缓存,不发起请求,过时了则进入 4
    1. 客户端发起资源更新校验请求(请求头,If-Modified-Since: Last-Modified 值、If-None-Match: ETag 值),若是资源没有更新,服务器返回 304,客户端使用缓存;若是资源有更新,服务器返回 200和资源

推荐阅读: 多是最被误用的 HTTP 响应头之一 Cache-Control: must-revalidate

🐕 The different categories of Swift protocols

@EyreFree:本文做者提供了一种新的 Protocol 分类设计思路,即根据它们所属的类别来区分它们。归纳地说,做者将协议分为四个类别:

  • 动做使能器:使咱们可以对每种符合类型执行统一的操做。它们一般具备以 able 结尾的名称,例如 Equatable
  • 需求定义:使咱们能够将需求形式化为某种对象,例如 SequenceNumericColorProvider
  • 类型转换:协议用于让各类类型声明它们能够转换为另外一种类型,或者能够经过原始值或文字进行表达(例如 CustomStringConvertibleExpressibleByStringLiteral);
  • 抽象接口:充当能够多种类型实现的统一 API,从而使咱们能够按需快速替换实现代码而无需改动调用方代码,封装第三方代码或在测试中模拟某些对象。

你是否定可这种分类方式呢?或许看完本文你可以有本身的见解。

🐕 "零"学习成本:使用 Web 标准开发动态化 Flutter 应用

@邦Ben:该文介绍了阿里的一个 Kraken 项目,该项目核心是用 Web 标准进行开发,Flutter 进行解析渲染。简而言之就是,HTML -> Flutter Render,基本有也能够理解为小程序的模式,最大的特色就是使用 W3C 标准规范,Web 童鞋入坑成本低。同时也介绍了其配套工具和一些性能特性,可是还没开源,能够做为一个思路进行参考。

工具

How to add a shield on the App Icon of beta builds

@红纸:若是你还在烦恼装了太多测试包,却不能直观看出测试包版本/构建信息的话。不妨尝试下本文中的这个工具 「Badge」,其容许你在 App 的 Icon 中添加你指定的版本信息。集成也很是方便,能够经过 Xcode 中的 Run Script Phase 或者经过 Fastlane 中对应的 badge 插件进行集成。

内推

上海 - 字节跳动:TikTok iOS/Android/前端/后端工程师

TikTok是目前全球最火爆,国内出海最成功的短视频App,全球累计下载接近20亿次。

目前团队规模落后于需求增加,很是缺人,经验不限,应届生老司机专家都欢迎。

简历发送至 martin.lv@bytedance.com

老司机周报团队联合知识小集和 SwiftGG 翻译组收录了一份靠谱的内推职位。

若是你想找工做,点这里:www.yuque.com/iosalliance…

若是你想招人,点这里:www.yuque.com/iosalliance…

固然,也欢迎你关注咱们每一期的周报,咱们会在每期周报底部及时更新编辑内推岗位。

关注咱们

咱们开通了公众号,每期发布时公众号(OldDriverWeekly)会推送消息,欢迎关注。

同时也支持了 RSS 订阅:github.com/SwiftOldDri…

说明

🚧 表示需某工具,🌟 表示编辑推荐

预计阅读时间:🐎 很快就能读完(1 - 10 mins);🐕 中等 (10 - 20 mins);🐢 慢(20+ mins)

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息