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

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

新手推荐

Flutter 豆瓣客户端

@邦Ben:该开源库,对豆瓣客户端有一定的还原度,不过未实现部分也挺多,毕竟仅仅只是学习用途,暂时里面并没有用到更为复杂的 Rx 或者 Redux ,因此十分适合新手先上路。在学习 Flutter 的同学可以一看。

PS:项目需要还原一下 Podfile 为初始状态方可运行( BUG )

文章

? ? 移动开发这十年

@莲叔: 移动开发从诞生之日起,到现在已经过了十年时间,这篇文章是 InfoQ 邀请美团的藏成威老师回顾了移动开发技术的十年演变。笔者作为移动开发年限算比较久的老兵,有幸经历了其中大部分的浪潮。其中绝大多数技术升级都是围绕跨平台、动态性,归根到底技术体系的升级是围绕业务形态来决定的。文章比较全面的剖析了从 H5 hybrid,到 RN/Weex, 到 Flutter/小程序等不同阶段的跨平台技术。文章本身没有太多技术点,但非常适合拿来作为思考技术和业务是如何相互影响的素材,在阅读文章的时候要多问 Why,相信会有不少的收获。

? ? ? Reducing FOOMs in the Facebook iOS app

@zvving:Facebook 2015 年的一篇经典文章,提出优化 OOM 问题的一些思路:

  • 通过列举所有 App 被终止的已知路径区分是 FOOM 还是 BOOM
  • 分析内存使用状况,从 UIWebView 迁移至 WKWebView,降低内存占用
  • 避免内存重复申请与释放,减少多大 30% OOM Crashes
  • 完善基础设施:跟踪 App 中每个类的实例计数和内存占用

相关阅读:iOS微信内存监控

? ? iOS App 安全加固方案调研

@红纸:iOS 系统向来以安全著称,但是在越狱面前,我们的 App 接近于裸奔的状态。在本文中,作者整理了如下内容:

  1. 现有市面上已有的加固方案,以图片的方式,展示了各家公司的核心功能点。
  2. 对现有的加固方案,进行了一次规整,总体方案梳理
    1. 数据保护:细分中有网络数据、IPA 资源数据、沙盒数据、Keychain 数据
    2. 混淆保护:细分中有符号混淆、字符串混淆、指令混淆
    3. 反调试保护:细分方案有 ptrace 和 sysctl 两种防护策略,(有兴趣可以参考 关于反调试&反反调试那些事)
    4. 异常检测:动态监控 App 的异常信息,例如被注入、篡改代码、重签名等攻击行为

世界上没有绝对的安全可言,想要了解更多关于安全方面的知识,推荐沙老师的书《iOS应用逆向工程》,以及 念茜的安全攻防系列。

? ? ? 为什么需要 Reactive Programming?

@Jason:相信有不少同学都或多或少尝试过 ReactiveCocoa 或者 RxSwift,享受到了链式调用的快乐,但是对于 Reactive 思想的本质,可能不一定每个人都有深入的思考过。本文抛开 Rx 库本身,也没有再重复介绍如何使用 Rx,而是从一些日常开发过程中的问题出发,探讨 Reactive 思想的由来,它所解决的关于数据流、事件传播和观察者模式的一系列问题,以及作者在几年的使用中所领悟的一些更深层次的思考。

? Architecturing an app with functional reactive programming

@anotheren:本文从常见的“回调地狱出发”,讲述了为什么应该使用响应式框架来进行编程。并以 ReactiveX 框架为例,同步展示了在 Swift/Kotlin 中这类框架的思想和应用,推荐阅读。

? ? Optional, throws, Result, and async/await

@xiaofei86:在 Swift 5 之前,我们通过 optional 和 throws 来处理错误。在 Swift 5 中,虽然没有我们期盼的 async/await 特性,但在标准库中增加了 Result 类型。本文对这些 Swift 错误处理的方式进行对比,让你更好的了解 Swift 错误处理的进化过程。

工具

Xcode10 New Build System And CocoaPods

@享耳先森:Xcode 10 发布之后,你可能发现修改了 CocoaPods 依赖库的源码之后立即编译并不生效,必须 clean 整个项目重新编译,这其实是 Xcode 10 默认采用 New Build System 导致的,本文介绍了两种解决方案。

Marzipanify

@老峰:在 WWDC 2018 苹果分享了名为 Sneak Peak 的工具可以将 iOS APP 移植到 Mac 中,并宣布 2019 对第三方开发者开放,Marzipanify 是 Steven Troughton-Smith 自己开发的一个小工具让开发者提前体验 iOS APP to Mac APP,感兴趣的读者快来尝试吧。

代码

手把手教你在 Flutter 项目优雅的使用 ORM 数据库

@CrazyCoderShi:Flutter 现在开发上最大的槽点可能就是数据库使用了,Flutter 现在只提供了 sqllite 插件,手写 sql 代码,建表、建索引、transation、db 线程控制等等繁琐的事情必然接踵而至,这种数据库使用方式是最低效的了,又倒退回去裸写 sql,这对大部分团队都是重大的成本。

本文将详细介绍一种在 Flutter 项目中优雅的使用 ORM 数据库的方法,文中使用的 ORM 框架是包含在一个 Flutter 插件 flutter_luakit_plugin (如何使用可参考介绍文章)中的其中一个功能,本文只详细介绍这套 ORM 框架的使用和实现原理。并且给出了一个详细的 demo 。

开源库

NSFWDetector

@张嘉夫:CoreML NSFW(色情)内容检测器。NSFWDetector 是一个小型(17 kB)CoreML 模型,由 CreateML 训练,用于检测图片中的裸体。

InAppViewDebugger

@红纸:UIView Debugger,类似于 Reveal 和 Xcode 中集成的组件,其比较方便的是能够在 APP 内就可以直观的去查看,但目前它只是处于 1.0 版本,功能仅限于查看视图层级,期待其能拥有更加完善的功能。

内推

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

如果你想找工作,点这里:www.yuque.com/iosalliance…

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

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

关注我们

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

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

说明

? 表示需翻墙,? 表示编辑推荐

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

转载于:https://juejin.im/post/5ccfaacdf265da03b57b6bd5

老司机 iOS 周报 #66 | 2019-05-06相关推荐

  1. 老司机 iOS 周报 #67 | 2019-05-13

    老司机 iOS 周报,只为你呈现有价值的信息. 你也可以为这个项目出一份力,如果发现有价值的信息.文章.工具等可以到 Issues 里提给我们,我们会尽快处理.记得写上推荐的理由哦.有建议和意见也欢迎 ...

  2. 老司机 iOS 周报 #62 | 2019-04-08

    老司机 iOS 周报,只为你呈现有价值的信息. 你也可以为这个项目出一份力,如果发现有价值的信息.文章.工具等可以到 Issues 里提给我们,我们会尽快处理.记得写上推荐的理由哦.有建议和意见也欢迎 ...

  3. 老司机 iOS 周报 #48 | 2018-12-17

    老司机 iOS 周报,只为你呈现有价值的信息. 你也可以为这个项目出一份力,如果发现有价值的信息.文章.工具等可以到 Issues 里提给我们,我们会尽快处理.记得写上推荐的理由哦.有建议和意见也欢迎 ...

  4. 老司机 iOS 周报 #65 | 2019-04-29

    老司机 iOS 周报,只为你呈现有价值的信息. 你也可以为这个项目出一份力,如果发现有价值的信息.文章.工具等可以到 Issues 里提给我们,我们会尽快处理.记得写上推荐的理由哦.有建议和意见也欢迎 ...

  5. 老司机 iOS 周报 #36 | 2018-09-17

    老司机 iOS 周报,只为你呈现有价值的信息. 你也可以为这个项目出一份力,如果发现有价值的信息.文章.工具等可以到 Issues 里提给我们,我们会尽快处理.记得写上推荐的理由哦.有建议和意见也欢迎 ...

  6. 老司机 iOS 周报 #56 | 2019-02-25

    老司机 iOS 周报,只为你呈现有价值的信息. 你也可以为这个项目出一份力,如果发现有价值的信息.文章.工具等可以到 Issues 里提给我们,我们会尽快处理.记得写上推荐的理由哦.有建议和意见也欢迎 ...

  7. 老司机 iOS 周报 #49 | 2018-12-24

    老司机 iOS 周报,只为你呈现有价值的信息. 你也可以为这个项目出一份力,如果发现有价值的信息.文章.工具等可以到 Issues 里提给我们,我们会尽快处理.记得写上推荐的理由哦.有建议和意见也欢迎 ...

  8. 老司机 iOS 周报 #50 | 2019-01-02

    老司机 iOS 周报,只为你呈现有价值的信息. 你也可以为这个项目出一份力,如果发现有价值的信息.文章.工具等可以到 Issues 里提给我们,我们会尽快处理.记得写上推荐的理由哦.有建议和意见也欢迎 ...

  9. 老司机 iOS 周报 #47 | 2018-12-10

    老司机 iOS 周报,只为你呈现有价值的信息. 你也可以为这个项目出一份力,如果发现有价值的信息.文章.工具等可以到 Issues 里提给我们,我们会尽快处理.记得写上推荐的理由哦.有建议和意见也欢迎 ...

最新文章

  1. knockout 学习笔记
  2. 英伟达jetson TX1的caffe-ssd配置
  3. java cas是原子性的么_Java 并发编程:AQS 的原子性如何保证
  4. LeetCode206:Reverse Linked List
  5. LeetCode 1223. 掷骰子模拟(DP)
  6. ZZULIOJ 1114: 逆序
  7. 请举例说明python中**运算符的含义_举例讲解Python中的身份运算符的使用方法
  8. java控制台打印输出改个颜色吧
  9. postgresql 客户端连接方式差异造成的时间差异
  10. 文件搜素神器-everthing 快
  11. mybatis自定义枚举类型的转换器以及各种使用场景
  12. Nginx源码阅读:ngx_palloc 内存池
  13. oracle资产负债表重分类吗,​资产负债表一般是重分类还是不重分类
  14. 服务器固态硬盘当作系统盘,只当系统盘太屈才,这些地方都能用上固态硬盘!...
  15. 十款浏览器插件,让你拥有更好的浏览器体验
  16. 阅读书籍:Monte Carlo Methods(第一章 Introduction to Monte CarloMethods)
  17. HTTPDNS基礎知識
  18. (NCRE网络技术)中小型网络系统总体规划与设计方法-知识点
  19. Pthreads并行编程之spin lock与mutex性能对比分析(转)
  20. js 年会大屏_年会H5大屏互动游戏案例分享

热门文章

  1. [NPUCTF2020]ezlogin xPATH注入
  2. Java中的反射和枚举
  3. essp8266------mqtt服务器搭建
  4. Linux下架构安全邮件服务器之Sendmail
  5. 如何写一个魔方二维动态还原MATLAB仿真程序
  6. 铁路cj继电器,一种铁路继电器底座锁住方法专利_专利申请于undefined_专利查询 - 天眼查...
  7. 视频课--高斯消元法习题课
  8. C++ nth_element 介绍
  9. CET-4 高频核心 week1
  10. 为英雄无敌3写个游戏修改器