老司机 iOS 周报,只为你呈现有价值的信息。
你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。
福利
? 移动开发唱衰,iOS 开发者如何涅槃重生?
戴铭,绝对是 iOS 届的资深老司机,GMTC 全球大前端技术大会的专题出品人及讲师之一,前滴滴出行技术专家,在组件化方案落地、工程动态化、大前端建设、应用开发阶段效率的提升、上线后各种难点问题的解决等方面的经验非常丰富。极客时间的品牌我一向比较认可,专栏品质很有保障,《iOS 开发高手课》也是戴铭老师对移动开发这么些年沉淀下来的技术,详细而系统的输出。我看了目录,主要分为基础、应用开发、原理、前端与原生共舞的 4 个模块,你将获得:
1、资深 iOS 开发专家为你构建完整知识脉络 2、领略专家级大型开发项目,增强面试竞争力 3、深入 iOS 核心技术与原理,从源头上掌控新技术 4、精美手绘图解知识点帮助你轻松学习
周报编辑均已购买,来不及了快上车!!原价 ¥99,上新优惠 ¥68,赶快扫码直接订阅。通过以下链接购买的读者微信添加 AwayZ_T 或 Damonwong2,我们会返现 10元小红包,并邀请你进入我们老司机周报的读者群,一起学习戴铭老师的 iOS 进阶教程~
点我试读或购买「iOS 开发高手课」,快上车~
另外,我们在微博上发起了一个福利活动,赠送老司机定制 Logo T 恤衫和「iOS 开发高手课」,欢迎大家点我参与~
新闻
? 刚刚,阿里宣布开源 Flutter 应用框架 Fish Redux!
闲鱼团队是国内最早开始大规模使用 Flutter 的大公司团队,也是国内现在 Flutter 风潮的引领者。
在上周,闲鱼团队刚刚开源了名为 Fish Redux 的基于 Redux 数据管理的组装式 Flutter 应用框架,旨在解决大型复杂应用中的页面状态管理以及 UI 组件的复用等难点。
对于想要实践 Flutter 于大型应用的团队及开发者们来说,值得学习参考。
文章
? ? 庖丁解牛!深入剖析 React Native 下一代架构重构
去年六月,Facebook 宣布要重构 React Native。时至今日,开发团队取得的一些进展已经非常值得我们期待和持续关注了。本文通过分析源码仔细介绍了 RN 的重构设计思路和后续业务开发适配注意点,解释了新技术方案在解决性能问题上的优势,同时描述了官方对以后组件开发维护的一些规划,对保持社区的活跃性、提升框架集成使用体验和加快组件迭代速度等都有很大的帮助。
? 没有 AST, IDE 中的错误提示、自动补全、重构、语法检查......都玩不转了
当下的软件开发,实际上并不需要我们了解许多编译原理相关的知识。但编译原理作为一门计算机经久不衰的基础课程,自然有它存在的价值。其中的 parser 部分就值得好好看一看,这会在我们遇到相关的需求时候,如排版布局,想自己搞一套 DSL 等都会很有帮助。本文讲了 AST (抽象语法树)是如何工作的,虽然是以 JavaScript 的代码举例,但原理其实是通用的。
? How to integrate image recognition in iOS apps
本文介绍了如何在 iOS 应用程序中集成图像识别,文章作者介绍如何使用 Microsoft Custom Vision 构建 CoreML 模型,以便能够识别照片中的对象以及如何在 iOS 应用程序中使用它。您需要对 iOS 开发和 Swift 有基本的了解才能阅读这篇文章。
? The Xcode Build System
作者从 Xcode 的编译系统组件( 插件,平台组件,工具链 ),工程文件( pbxproj 文件,文件引用 ) 编译环境( 编译设定,Target,xccofig 文件 ),编译输出( 输出路径,输出文件 )等内容比较全面地介绍了 Xcode 的编译系统。读者阅读后可以对 Xcode 的编译系统有更加全面的认识。
? Swift Code Formatters
最近几天,Swift 社区一直在讨论 Tony Allevato 和 Dave Abrahams 关于 Swift 编码风格指南和格式化工具 的提案。
Mattt 专门在 NSHipster 撰文对社区现有代码格式化工具进行比较,包含 SwiftFormat、SwiftLint、Prettier with Swift Plugin 及 swift-format (proposed),分别从格式化结果及效率两个角度进行对比。
? 从源码解析 Swift 弱引用
弱引用的深层实现机制在 Objective-C 中,就让很多同学觉得云里雾里,那在 Swift 中又如何呢?和 Objective-C 中的实现又有何异同呢?作者通过研读源码,给我们深入剖析了 Swift 弱引用机制的实现方式,并比较了和 Objective-C 中的异同,非常值得我们借鉴学习。相关阅读:Friday Q&A 2017-09-22: Swift 4 Weak References
? 一步一步教你实现 iOS 音频频谱动画
当我们在听音乐的时候,总能看到音频频谱随着优美的音乐而跳动,那么有没想过这样的动画如何实现?
本文主要介绍了脉冲编码调制(PCM)基本音频处理概念;AVAudioEngine 音频播放和 AVAudioPCMBuffer 频谱数据的获取、计算、处理、音频动画绘制;频谱动画优化:锯齿消除、闪动优化等。
作者通过一步步探索最终实现完美的音频频谱动画,感兴趣的同学点击这里阅读源码,相信一定会有所收获。
? 已开源|码上用它开始 Flutter 混合开发——FlutterBoost
咸鱼团队在国内 Flutter 的探索上一直以来都是走在业界前列。近期,咸鱼技术团队开源了 Flutter 的混合开发框架 FlutterBoost。我们知道,在现有的工程中直接换成 Flutter 开发具有很高的成本以及风险,毕竟对于一些稍大些的工程,有些代码的业务逻辑已经很复杂了。所以,咸鱼团队基于对现状的考虑,采用 Native -> Flutter 渐进式的迁移方式,并将框架开源,对于想要在旧有工程上采用 Flutter 的同学可以看一下。
? ? How to build a simple tracker blocker for iOS
跨网站追踪是一种广告商用于搜集用户信息的方式,Apple 作为一家注重用户隐私的公司,在 iOS 里内置了 Content Blocker 等功能帮助我们不被追踪。
这篇文章就教我们如何使用 Content Blocker 和第三方黑名单来搭建一个反追踪的插件,并且还提供了相关的网站以便我们进行测试。
? Task-based concurrency in Swift
对一组有相互依赖的并行任务,OperationQueue,ReSwift,Future & Promise 都是常用的备选方案,但这些方案相对较重("heavy-handed"),作者基于 DispatchGroup 封装了一套轻量、简洁的 "Task-based" 的解决方案,推荐阅读。
工具
Localization in Swift like a Pro
你是否仍在用几年前的方式进行本地化?你知道有更好的方法吗?本地化一直令人痛苦,但阅读这篇文章后,你会发现它并不是那么糟糕。本地化的同步更新 Xcode 并不支持,但你可以使用 BartyCrouch 和 SwiftGen 这些工具来解救你。
XCSnippets
合理的使用代码片段可以有效提高你的 Coding 效率。XCSnippets 工具可以让你使用命令行方便的将 .codesnippet 从 Git 仓库安装到 Xcode。你还可以使用作者开源的代码片段仓库 XCUISnippets 或编写并开源自己的代码片段。
代码
? MVVM-TemplateProject
用 Swift 实现 MVVM 的 Demo 项目,可以同时配合作者关于 MVVM 的 3 篇文章学习,适合新手入门。
- How to implement MVVM pattern in Swift from scratch
- Unit Testing your MVVM architecture in Swift
- How to integrate RxSwift in your MVVM architecture
Nantes
著名的 UILabel 替代库 TTTAttributedLabel 的 Swift 复刻版,支持 UILabel 的及 TTTAttributedLabel 所增添的新特性,支持 iOS 8.0+。
音视频
ggtalk | 如何(连续两次)获得 WWDC Scholarship
新的一期 ggtalk 邀请到了 @ApolloZhu 来聊聊 WWDC Scholarship,WWDC Scholarship 是苹果的一个类似奖学金的奖项,申请的学生靠提交一个极具创意的 playground 的作品来参与评选,如果获奖则可以获得免费参加 WWDC 的机会,当然餐食和酒店也是包含了的。Apollo 目前还是高中生,但已经连续获得两次 WWDC Scholarship,这次分享里他谈了申请的一些技巧以及整个过程中有趣的体验。对 WWDC 感兴趣的童鞋不容错过。
内推
老司机周报团队联合知识小集和 SwiftGG 翻译组收录了一份靠谱的内推职位。
如果你想找工作,点这里:https://www.yuque.com/iosalliance/article/bhutav
如果你想招人,点这里:https://www.yuque.com/iosalliance/article/ycyhf3
当然,也欢迎你关注我们每一期的周报,我们会在每期周报底部及时更新编辑内推岗位。
关注我们
我们开通了公众号,每期发布时公众号(OldDriverWeekly)会推送消息,欢迎关注。
同时也支持了 RSS 订阅:https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom 。
本期编辑
@四娘,@享耳先森,@Damonwong,@折腾范儿_味精,@张嘉夫,@Parsifal,@aaaron7,@kyo,@tom510230,@anotheren,@水水,@looping,@老老老老老老老驴,@小非86,@邦ben,@红纸,@含笑饮砒霜,@JimQ,@老峰,@zvving,@J_Knight_
说明
? 表示需,? 表示编辑推荐
预计阅读时间:? 很快就能读完(1 - 10 mins);? 中等 (10 - 20 mins);? 慢(20+ mins)