人物访谈 | 人在上海的东阁堂主

人物访谈 | 人在上海的东阁堂主

东阁堂主是我非常早就关注到的一位开发者,他写过不少开源库,个人 Github 地址是:https://github.com/dudongge 。本人非常热爱技术,最近翻译了一本 iOS 架构相关的技术书。因为他在上海,还处于封控期间,除了聊工作也会聊一下他目前的生活状态。

简单介绍下自己吧

大家好,我是东阁堂主,在成为码农之前,在车企里做过售后,仪器厂做过测试,电子厂做过机修。受室友影响,15 年入坑 iOS,目前在 B 站的漫画事业部。

工作相关

能简单分享下你的工作内容吗?

目前我在项目负责哔哩哔哩漫画国内版和国际版的需求开发,也会做些性能优化,比如启动优化,包体瘦身,核心页面的秒开优化等。从 20 年开始,B 漫就在项目中嵌入 Flutter,目前新需求基本都是 Flutter 开发。Flutter 开发页面很快,开发人员没有增加的情况下,开发效率反而大幅提升了。当然测试效率也会提高,之前要两端都要测试,现在只有着重测试一端,另一端测测兼容即可。

最近在上海的工作状态怎么样,生活各方面造成的影响大不大?可以分享一些这段期间学到的「封城」生存之道。

受疫情影响,我不得不蜗居在公司附近的出租房里,工作可以在家办公,但效率会稍微打折(主要是没有大屏的显示器)。狭小的空间限制我的躯体,却限制不了我的灵魂,我一向比较乐观,最近也是被抢菜搞得有些疲惫,生活物资基本全靠团长和政府救济,不能想吃什么吃什么了。总结一些封控期间囤物资的技巧吧:

  • 如果有官方消息要留在家中,可乘空闲时候去附近超市采购,如果厨具齐全,米面油,杂粮,速食,干蔬之类的可多备点,注意,在采购东西时一定要注意安全。

  • 封控期间可在 App 上抢东西,比如叮咚,美团,盒马,他们会在规定的时间内开放购买入口,要先把东西提前加入购物车,因为等开放时刻再加,基本上是来不及的。用安卓手机的可以在网上下载个抢菜插件(https://github.com/Skykai521/DingDongHelper),iOS 用户有筋膜枪就用筋膜枪吧。还有就是注意捡漏,时不时刷一刷,厂商也会时不时补货。等货到后,要注意货物表面消毒。

  • 加入小区群,这个是最靠谱,最省时省力的方式。团长发起团购消息时,及时回应,因为团购有截止时间。我加入的团购群有猪肉群,鸡蛋群,蔬菜群,牛奶群,面包群等。有什么需求,可以直接在小区群里咨询,有富裕的东西可以物物交换。

  • 找跑腿小哥,不过会加相应的跑腿费,只要价钱合适,会有小哥接单的,让小哥代买一些食品。

在 Bilibili 工作是一种什么体验?

在 B 站漫画部门上班,氛围比较轻松,也算是弹性上班,公司鼓励奇装异服,彰显个性,可以带宠物上班,也有很多流浪小动物寄养在公司,哦对了,入职即送 B 站大会员🍻。

iOS 开发没人要了,网上有很多这样的劝退论调,结合你跟 iOS 之间结下的渊源与实际的工作情况来说一下你对这个现象的看法。

我是 15 年踏入 iOS 开发行列的,那时移动端正值繁花卓锦,烈火烹油的时代,各行业都想分一杯羹。所以 iOS 开始开发者岗位也是与日俱增,19 年的时候大浪淘沙,行业洗牌,很多公司倒下了,也直接导致了 iOS 的岗位减少。现在初级的 iOS 需求量确实少了,但还是有的,就像 B 站每年都有 iOS 实习生的名额。至少到现在,我认识的 iOS 开发者都有工作,当然打铁还需自身硬,提高自己的技能才是王道。

学习相关

看到你整理翻译的这本 iOS Architecture 书,能简单介绍它的主要内容吗?做这件事的出发点是什么?一共花费了多长时间?最终的收获又是什么?

这本书前四章会介绍架构的理论基础,会涉及到一些常用的设计模式,结合例子给出具体的代码实现,和读者一起讨论哪种架构适合自己的业务,以及使用架构会带来哪些益处。接下来几章会着重介绍MVVM、Redux、Element 架构的具体实现,使用时注意事项以及优缺点。最重要的是可以启发我们思考,当前我们的项目有哪些可以改进的地方。

因为之前没有系统想过 iOS 架构相关东西,想在这方面深入了解一下,就找到了这本书。整理和翻译花费近两个月,通过这本书的完成,使自己对通用架构有了更深一层的认识,感觉自己的 English 没有白学😅,当然体会到了翻译的不容易,算是完成了自己今年初定下的第一个目标吧。

对于一些非工作项的事情像是翻译书籍、写开源库,你是如何自我驱动来实现的。会不会遇到一些阻力,遇到阻力的话是如何克服的?做这些事情有没有给你带来一些意外收获?

翻译整理书籍主要就是想挑战一下自己,也希望可以帮助其他人,自己也是看别人翻译的文章和分享的库来满足日常的开发需要。写开源库,也是记录自己学习的一种方式,或许能帮到有类似需求的小伙伴。遇到的阻力就是时间节点问题吧,开始以为很快就能完成的,事非经过不知难,制定的计划会被其他干扰因素打破(比如上海这次疫情),根据实际情况修正计划,当胜利的曙光到来时,自己的幸福满足感爆棚。

结合自己的经历,能否分享一下对你来说好的学习经验和学习习惯?

工作中的经验积累很重要,要时不时的总结一下,好记性不如烂笔头,这些经验或者教训可是经过实际检验的,比自己写的 Demo 更具有可操作性。平时就是多看技术博客和技术公众号,多和组内的人交流。

可以在油管上找些教程,YouTube 可以自动生成字幕,不用担心听不懂。

这里特别强烈推荐一款应用,就是苹果自己家的:Developer。这款应用有 WWDC 相关的技术视频,可以缓存下来,也有字幕,闲时找自己感兴趣的看一看,还是会有收获的,稍微介绍一下,说不定你就会爱上它。

个人爱好

除了作为开发者的身份,还有其他什么兴趣爱好可以分享的吗?

平常爱运动,也爱旅游,参加过几次马拉松,喜欢中国古典诗词文化,偶尔也会写首顺口溜。

之前在群里有看到你发的桌面照片,有很多手办,这是 B 站的风格还是你的风格。补几张照片让我们都开开眼吧

我不是真正的二次元,但也不排斥二次元文化,我的手办不多,补几张大佬的桌面吧。

作为 B 站人,肯定少不了刷 B 站,推荐几个你感觉不错的up主吧。

硬核的半佛仙人:有搞笑的配图和内容,给平淡的生活增加一些笑意。

罗翔说刑法:让你在故事中读懂法律。

冒险雷探长:算比较早是旅游达人,可以领略到到国外的风景。

再推荐几个入站必看视频吧:

再推荐一本书或者一个开发工具吧

在这里我不推荐学习相关的东西了,推荐一本书吧《明朝那些事》算是一套白话历史的丛书书,讲的诙谐生动,用现代人的观点解读当时的情境。网上也有相关音频,地铁上,睡觉前,都可以听一听,作为消遣娱乐。

可以谈一个自己最近才明白的心得、感受或者体会吗。

生于忧患死于安乐,家里常备粮,心里才不慌,意外和明天真不知道哪一个会提前到来,善待自己,善待他人。

有没有想借助于摸鱼周报宣传的。

漫画部门暂时没有 iOS 坑位 (⊙︿⊙),其他部门有,有看上的可以直接投递,也可以敲我:

人物访谈 | 东坡肘子:健康&开发

人物访谈 | 东坡肘子:健康&开发

肘子是摸鱼周报的一位编辑,最早知道他还是通过他写的几篇关于 Swift 的博客。他的博客专注于 Swift 领域,每篇文章的质量都很高,是这个领域非常值得关注的博客之一。后来了解到他之前得过一场大病,现在的生活节奏基本平稳有序。又想到其他几位圈里同样受到疾病影响的开发者,就决定了这次访谈的主题:健康&开发。

简单介绍下自己吧

大家好,我是东坡肘子,70 后。小学时获得了我的第一台电脑(CPU 是 MC6800),几十年来更换过不少设备,算是亲身经历了信息时代的巨大变迁。尽管一直以来都对于硬件开发、软件编程十分喜爱,但并没有以此为职业。最近几年,由于疾病的原因,目前赋闲在家,通过博客 肘子的 Swift 记事本 记录一些关于 SwiftUI、Core Data、Combine 等方面的学习心得。

由于治疗的需要,我从一个不喜欢记笔记的的人变成了每天必须要记录大量数据(其实主要还是依赖我妻子)的人。前年通过手术,生活质量获得了较大的改善,本以为所需记录的数据能少一点,但事与愿违,数据量减少了,数据种类却大大的提升了,而且可以明确的是,这些数据将要在我有生之年一直记录下去。因为喜欢技术和记笔记的需求,于是就开发了一款 iOS app ——「健康笔记」。

最近也经常听到一些上班族特别是程序员群体相关的健康话题,很显然健康非常重要也很容易被大家忽视。方便讲一下你患病的原由吗,也提醒大家重视健康问题?

2013 年,我的身体状况出现了异样,每天不停的呕吐,几乎无法进食。当时工作很忙,休息时间无法得以保障,自认为或许是睡眠不足导致的肠胃问题。在家人的强烈要求下,去医院做了检查。简单的化验后,医生立刻就明确了问题所在——尿毒症。入院时的身体相当糟糕,肌酐达到 2100μmol/L(正常值通常低于 100)、血红蛋白 4.6(男性正常值通常高于 12)。

人是一种挺神奇的动物,在去医院的前一周,我还跑了三个城市。但在住院后,透支的身体立刻就无法继续坚持了,出现了数次的生死危机。经过几年的透析治疗,我在 2018 年接受了肾移植手术,目前各方面都恢复的不错。

都说久病成医,作为一个经历较大疾病的人,有没有什么忠告或建议给大家?

我很幸运,在关键时刻就医、有家人的悉心照顾、有不错的医疗资源。在身体逐渐恢复后,我迫切地希望有更多的人能够及早认识到健康的重要性,避免走到难以挽回的地步。

如实在无法做到早睡早起、按时吃饭、健康饮食、科学养生,希望至少重视以下两点:

  • 尊重你身体的求救信号。绝大多数的疾病,都不会毫无预警地凭空而来。不要将身体的一切不良反应都归于工作忙、压力大等因素。最起码要严肃的面对每一次的体检结果,及时完成需要进一步随检的内容。
  • 不要过度。在连续的熬夜加班后休息半天,休息后再工作或许可以取得意想不到的进展,熬夜加班中休息半天,或许可以取得意想不到的工作进展,更加关键地是,可以让你紧绷的身体获得适度的放松。身体是属于你自己的,也只有你自己可以对其负责。爱惜它、保养它,真正做到「活久见」,而不只是当成一个梗。

这几年我在知乎上从一个曾经的透析患者角度,对尿毒症、肾移植等方面的内容做了些介绍和解答。以下是其中的一篇,希望帮助到有需要的人——刚确诊尿毒症,患者和家属应该注意什么?。当然也衷心地希望大家都能身体健康。

@zhangferry:我的父亲也是尿毒症患者,于 19 年做了肾移植。他早期是痛风,痛风患者是需要严格控制喝啤酒的,他忌不住嘴,导致病情加重,以至于发展为慢性肾炎。后来看一则广告推荐的中医,治疗不当,最终发展为尿毒症。我曾随父亲多次往返医院的血液净化中心,也见过很多年轻的患者,对这个病感触非常深。现在回想过来正是由于早期很多应该做的措施没有做对,才造成了最终的后果。当前的教训就是:重视健康问题,及早正确的治疗。

从痛风这个点说起,它的前身一般是高尿酸血症,长期的高尿酸血症易发展为痛风。目前高尿酸血症的患病人数为 1.77 亿,痛风患病人数为 1466 万,这个比例已经很大了,以至于高尿酸血症被称为”第四高”。尿酸指标属于肾功能检查(非血常规),一般体检都会有,当尿酸数值超过 420μmol/L 即表示为高尿酸血症。如果是爱康国宾的体检的话,App 里体检报告的基本健康数据就会显示尿酸数值。

高尿酸血症及痛风的高发人群是:偏好海鲜等高嘌呤食物、过度饮酒不节制、作息不规律、纵容肥胖,不爱运动、吸烟。所以如果你的尿酸指标已经高了的话切记克服以上的生活习惯。

人身体的潜能和耐受力都是巨大的,特别是年轻的时候,但要知道这不是挥霍身体的理由。这副躯体我们是要用一辈子,而且没法随意更换的,我们一定要好好爱惜它。最后还是希望通过肘子跟我的一些经历,提醒到大家重视健康问题。

数据参考:第一财经商业数据中心:2021中国高尿酸及痛风趋势白皮书

你在开发的一款应用是「健康笔记」,能简单介绍下这款应用的功能和未来规划吗?

透析阶段,我采用的是腹膜透析方式。它的优势是可以在家中进行,无需每周多次往返透析中心。腹膜透析每天需要做多次的透析液更换,并且每个月都需要去医院做随诊和验血。数年间,我记录了大量的有关透析治疗和身体检验等方面的数据(数个笔记本)。移植手术后,因为需要终身服用免疫抑制剂,目前仍每个月进行一次验血,以跟踪某些指标。

尽管市面上已有一些针对特定疾病进行数据跟踪管理的 App,但随着治疗的发展,需要记录的内容也不断发生变化,到达某个阶段后,这些 App 便无法继续胜任了。 因此,我决定开发一款可记录各种数据类型的 App。

本质上讲,「健康笔记」是一款支持高度定制数据类型的记录工具。目前支持七种数据格式,并可为数据设置各种验证条件。除了健康数据外,使用者还可以使用「健康笔记」记录生活、工作中遇到的绝大多数可量化或不可量化的内容。

相较于纯记录型工具,「健康笔记」更注重对数据的分析和管理。提供了多维度的图表,并且使用者可以将 App 中的数据导出到其他的软件或工具中进行分析。

「健康笔记」基于 SwiftUI 和 Core Data with CloudKit 进行的开发。目前可用于 iOS 14 以上的设备。当前的版本为 2.x,3.0 版本目前仍在开发中。

健康笔记

现在的生活节奏怎么样?你说目前是处于一种赋闲在家的状态,对于没有外界约束的状态,保持规律的作息是比较难的一件事,你每天的时间是怎么安排的呢?

当前的生活状态可以用两个字来总结——规律。每天早上 6:00 点起床、晚上 10:00 睡觉,三餐准时,全年不变。生活的内容主要围绕着照顾猫狗、健身、学习、阅读。

我已无需强迫自己遵循以上的作息,相反,如果某天意外地违反我反倒有些不适应。

你是怎么考虑独立开发和远程工作的?

「健康笔记」算是我的独立作品,但我并不算是独立开发者。

以我的理解,严格意义上的独立开发者至少要满足两个条件:

  • 将商业的思维贯穿于开发行为之中,开发的是商品而不是作品
  • 要有以开发成果作为其主要收入来源的决心

当有了以上觉悟的情况下,结合自身的情况再决定是否踏足这个领域。

因为疫情的原因,远程工作得到了前所未有的发展。在某些领域,远程的的效率甚至高于传统的工作形式。但无论远程有多么的方便,仍应尽量保持一定量面对面的交流。摄像头、麦克风、文字所能传递的情感与信息实在有限。

对于技术,目前主要就是在研究 SwiftUI 和维护自己的应用吗?2022 年,有没有什么新的技术方向的规划?

SwiftUI 是一个比较新的框架,处于快速变化和发展中,今年仍会投入不少的精力对其跟踪和学习。「健康笔记」也会做一次彻底的更新,相对于功能上的增加,我更想在 app 架构上有所突破。今年会着重于夯实基础,逐渐从「知其然」向「知其所以然」转变。

看你每周都会固定输出 Swift 相关文章,而且质量都很高,相信肯定是花了不少时间整理的。也看到你最近发了一篇停更说明,说是遇到了一些瓶颈,计划用一段时间做一些系统性的充电。这种严谨的学习态度非常让人钦佩,但另一方面产出数量就会降低,能说下你对自己产出内容数量和质量上的一些想法吗?

创建「肘子的 Swift 记事本」的初衷很单纯,通过记录加深理解、梳理思路。我对内容的产出数量并没有具体要求,但希望做到言之有物,在满足自身学习需求的同时具备一点分享的价值。

「肘子的 Swift 记事本」和「健康笔记」之间是相互依存的关系。因为想写「健康笔记」,所以创建博客帮助学习;文章的方向基本围绕着「健康笔记」的需求展开;学习的结果又通过「健康笔记」来得以实践。

从去年年中开始,我便开始了「健康笔记」3.0 版本的开发。在已完成了 80%左右的情况下,我决定将之前的工作全部推翻。尽管相较于 2.x 版本来说,新版代码有了些提高,但对我本人来说并没有质的飞跃。「健康笔记」作为个人实践和检验学习结果的载体,我并不希望为了升级而升级(从功能和稳定性角度来看,2.x 版本目前仍可胜任)。

此次停更便是想用一段时间来系统改善开发过程中发现的不足。此阶段的学习重点集中于理论层面,大多与语言和平台无关。希望届时能够有所收获。

写文章非常容易遇到知识盲点,对于这种问题,你是如何快速梳理出正确脉络的,有没有什么可以借鉴的技巧分享下?

事实上,并非总能快速梳理出思路。当碰到一个盲点时,我喜欢采用拓展阅读的方式,可能仅仅因为某个没有使用过的 API 而借机学习了解一下整个框架;一个短时间就能找到解决方案的问题,我会将其扩张成几天才能学完的内容。前期这种做法会十分耽误时间,但在有了一定的储备后,对于之后遇到的问题,梳理起来就会方便很多。

另外,我会订阅大量优秀博客的 RSS 或 Newsletter。每天早上我会用 30-60 分钟,将最新的文章进行一遍通读,在将来遇到问题时,从记忆中找寻解决之道。

以下是我经常关注的英文Blog或Newsletter,中文内容还需更多地关注摸鱼周刊。

名称 地址 简介
Augmented Code https://augmentedcode.io/ 频谱查看应用 Signal Path 作者 Toomas Vahter 的博客。每个月 2-3 篇的更新量。内容主要涉及 SwiftUI、UIKit、XCTest 等。
Create with Swift https://www.createwithswift.com 由三名意大利人(Giovanni Monaco、Tiago Gomes Pereira、Moritz Philip Recke)创建的博客。内容以 Combine、SwiftUI 为主。
Donnywals.com https://www.donnywals.com Practical Combine 以及 Practical Core Data 两本书籍的作者作者 Donny Wals 的博客。主要聚焦于 Core Data、Combine、SwiftUI 等内容。
Dave Delong https://davedelong.com Dave Delong 的博客,最近一年更新的不太频繁。2020 年创建了一系列有关如何用 Swift 开发 HTTP Stack 的精彩内容。
Filip Němeček https://nemecek.be ImpressKit 作者 Filip Němeček 的博客。关于 UIKit 方面的内容较多。
FIVE STARS https://www.fivestars.blog/ Federico Zanetello 的博客。当前集中于 SwiftUI 方面的内容,每篇文章都很有价值。
Hacking with Swift https://www.hackingwithswift.com 畅销书籍作者 Paul Hudson 创建的网站,内容涉及 Swift 的各个方面。
Holy Swift https://holyswift.app Leonardo Pugliese 的博客。除了有关 Swift 的内容外,每篇文章都会介绍一副绘画作品。
iOS Dev Weekly https://iosdevweekly.com Dave Verwer 创建的 Newsletter 站点。少有的仅以 Newsletter 作为表述方式的作者。
Masilotti https://masilotti.com/ Joe Masilotti 的博客。有不少关于单元测试、UI 测试方面的内容。
Oleb https://oleb.net Ole Begemann 的博客。十多年间持续创作和 iOS 开发有关的内容。
onmyway133 https://onmyway133.com Khoa 的博客。非常高产,最近两年有关 SwiftUI 的内容居多。
Raywenderlich https://www.raywenderlich.com 知名的技术书籍出版商。尽管是商业机构,但仍提供了大量优秀的免费课程(课程基本上都会提供完整的项目代码)。
Sarunw https://sarunw.com 泰国开发者 Sarun W 的博客。创作了很多有关苹果生态开发的内容。他开发的 codeshot 可以方便的将代码转换成漂亮图片以利于交流。
Swift with Majia https://swiftwithmajid.com Majid Jabrayilov 的博客。他关于 Swift UI 数据架构方面的文章对我的影响很大。最近在做 Microapps 的专题。他的周刊 SwiftUI Weekly 已经提供了超过 90 期的内容。
SwiftLee https://www.avanderlee.com Antoine van der Lee 的博客。除了原创的文章外,每周通过 SwiftLee Weekly 介绍其他优秀的文章和工作机会。他开发的 RocketSim 对于 Xcode 的使用者帮助不小。
Swiftly Rush https://www.swiftlyrush.com Adam Rush 的博客。坚持周更,以 Tips 为主。也提供周报
Swift Rocks https://swiftrocks.com Bruno Rocha 的博客。更新不频繁,但不时会有相当有深度的内容出现。
Swift by Sundell https://www.swiftbysundell.com Swift 静态站点生成器 Publish 的作者 John Sundell 的博客(我的博客就是由 Publish 构建)。除了每周精彩的文章外同时还通过 Podcast 与很多业内专家交流最新的技术动态。
The SwiftUI Lab https://swiftui-lab.com Javier 的博客。他撰写的关于 SwiftUI 的文章对 SwiftUI 的开发者影响很大。他开发的的 A Companion for SwiftUI 是每个 SwiftUI 开发者都应购买的工具。
Trailing Closure https://trailingclosure.com 着重于 Swift UI。每篇文章都会介绍一个 SwiftUI 动效方面的具体实现。
Try Code https://trycombine.com Marin Todorov 的博客。作者参与了不少苹果官方的开源项目。最近正在打造一款轻量级的 Swift IDE。
Yet Another Swift Blog https://www.vadimbulavin.com Vadim Bulavin 的博客。内容主要涉及 Swift、SwiftUI、单元测试等。

现在很多开发者会因为程序员是青春饭而焦虑,而你作为一个技术领域的老兵却时刻保持着对技术的热情,能说下你能一直保持热情的原因吗?

学习使我快乐,能力提高让我获得满足。有点类似于打游戏,不断通关,坚持不 Game Over。

当前的职场环境好像给每个参与者都带来了不小的压力。与其为年龄而焦虑,我觉得更应该时刻关心自己是否保持了学习的热情和动力。技能往往是与职业绑定的,而学习能力与职业无关。人一生中处于不同的岗位或职业是十分正常的事情。相较于 IT 届,年龄因素在很多其他行业占据着更加重要的位置。无论身处什么行业,在职业技能提高的同时,也要做到个人综合能力的提升。尽管未必能减轻多少因年龄而产生的焦虑,但至少可以获得更多面对未来的信心。

人物访谈 | 老司机周报主编 Parsifal 专访

人物访谈 | 老司机周报主编 Parsifal 专访

Parsifal 是老司机周报的主编,今年他给摸鱼周报提供了很多帮助和建议,这里对他再次表达一下感谢。这次邀请他来做一期访谈,主题分为两部分,一部分是老司机周报的发展故事和他的行业观察,另一部分是他对开发者的一些建议。如果大家还有其他问题欢迎留言提问~

简单介绍下自己吧

哈喽,各位摸鱼周报的读者好,我是 Parsifal,是一位 iOS 开发多年的老司机了。17 年底开始加入「老司机技术周报」编辑组,到 18 年底正式接手至今,主要负责其运营工作(其实就是给我们编辑组的大佬们打打杂)。二次元一点说,我算目前的二代目,当然我们也很快会迎来三代目,感谢大家一直以来的支持~

当初创办老司机周报的目的是什么,能讲一些当时的背景吗?现在回想来看,对比当时的目标,达成度怎么样?

老司机技术周报自 17 年 12 月创刊以来,已经更新了整整 4 年时间。在我的认知里,4 年对于一个社区组织的生命周期来说,是很长很长了,长到足够让一个小萌新成长为优秀的成熟开发者,甚至长到我们读者群可以完成一轮新陈代谢。

现在我们的很多读者,谈到周报编辑组,可能更熟悉的是负责我们社群运营的老王「Damon」,或者时不时会在周报中插播公告的「Parsifal」,但如果要谈到周报创办的往事,就需要请出我们的创始人 - 「没故事的卓同学」。作为整个编辑组的一代目,老卓一直被我们认为是编辑组的灵魂人物,即使他 18 年底已从编辑组“退休”,但他创办周报的初衷我们还是延续了下来。

在经过 14、15 年的野蛮发展后,17 年我觉得是 iOS 开发的一个巅峰尾巴。那会儿很多优秀的开发者依然在社区内活跃着,比如老卓就是其中一位。他是非常擅长和乐于分享的,在周报创办之前也深受大家喜爱。在社区内容输出还很爆炸又良莠不齐的当时,老卓就有了想法要将自己平常看到的优质内容,定期整理出来分享给大家。当然这种事情是人多力量大的,所以老卓又和几个好友聊了下,大家都觉得很有意义,就水到渠成地组成了编辑组的第一批元老 Damon\MM\味精\EF\四娘和 BlackSun 等。随着这几年的不断成长和纳新,周报编辑组已经有 30 多人了,但我们的初心依然没变 - 为读者输送有价值的内容。

这么多年的积累,让我们有了一个非常高质的资源库,我个人是非常喜欢在周报仓库检索内容的;WWDC 内参活动越办越好,质量和数量都有了很大提高;今年编辑组也尝试了线下沙龙的方式,用周报的影响力帮助企业对外输送高质内容;我们一直以来做的事情,也逐渐被官方关注和认可。

现在回想来看,老卓的目标在他“退休”那天就已经实现了,周报每期都能够顺利发布,18 年的时候周报已经有了相当的影响力,当时主要的两个更新渠道 GitHub 和掘金都收获了较大的关注群体。而于我个人而言,18 年底从老卓手里接过来运营,算超预期了吧。按我原计划,接手后我负责 18 年的收尾工作,让周报能够有个相对完整的 ending。

但后面做着做着发现,编辑组的朋友依然还有着热情继续做这个事儿,Damon 和邦本等人也愿意加入平时的运营,并且得益于老卓之前的管理原则:周报的编辑周期不强依赖于某个人,我们还是坚持了下来。

18 至 20 上半年左右,周报的发布其实也是轮值的,而后由于调整了发布渠道和时间,并且开始重视公众号运营,才转为主要由我负责发布,我有事的情况下再找其他人代班。然后就是整个编辑组还是得有个人做下统筹,负责一些人员流转,对外合作,以及内参啊,沙龙啊等等其他的活动。轮值没有具体的多长时间,看上一任自己意愿吧。接着编辑组不断吸收优秀的开发者,团队越来越大,新老编辑交替也在很自然地进行。

我的周报编辑生涯可能也很快会结束,但老司机技术周报应该还没到停刊的时候。关于这些,接下来我们一二三代目会一起在老卓播客细聊。大家可以开始期待周报三代目了~

到目前为止老司机周报已经出了180多期了,分享和传播了非常多优秀的资源和内容,某种程度上也推进了整个 iOS 行业的发展。作为活跃在这一领域最前沿的一群人,在这4年期间里你感受到的变化是什么?

作为周报这类聚合资讯性质的内容创造者,我们可以说是最了解社区的那批人了。我们的内容源自于社区,所以对社区发展方向和热度是十分敏感的。这几年,从行业上看,如我上面所说的,17 年算是一个尾巴,而 18 年至今整体趋势还是相对稳定去泡沫化。不过这其实就是一个行业正常的生命周期,萌芽到野蛮生长,稀缺到泡沫化,然后会到稳定的成熟期,最终到衰退期。

社区产出的内容,也伴随着行业的稳定,没有了之前百花齐放资讯爆炸的光景。整体感觉就是新的东西越来越少,老的东西还在一遍又一遍地被新人挖出来继续写。而我们的读者群里,0-2 年新人也几乎成了凤毛麟角,早两年虽然也少(我们的内容更偏中高级开发者),但不至于看不太到。

整体社区的内容产出来看,17 还是 OC 内容占了大部分,然后是慢慢国内外出现了分歧,国外 18 年开始 Swift 的内容占比越来越大,这几年几乎都见不到国外有 OC 方面的产出了。18 年开始至今的国内,则对跨端(ReactNative\Flutter\Weex)方案爆发了热情,至于 Swift 依然没看到大范围的使用。

创办老司机周报的过程,都遇到过哪些困难?未来老司机的走向是什么样的,有没有什么规划呢?

17 年底起步到 18 年上半年,都算比较顺利,刚开始大家的热情也比较高,也比较有精力做这些事情,同时那会儿社区的优质内容也多,也有很多新的东西被不断挖掘出来。而后我们就遇到了第一个比较大的困难,每周被推荐的内容不够,从而需要主编来花费更多时间去收集。

未来的走向我现在不太好说,但目前的形势是很好的,今年做的几个尝试反响也很好,我们会争取更大的影响力,并继续尝试与苹果做一些进一步的合作。当然,更具体的未来规划,就等我们下一任主编官宣后再聊了。

随着移动互联网红利的消失,对 iOS 开发的要求可能不再仅限于能做出一个 App。如果需要进一步提升,学习的广度和深度,哪一个帮助可能更大?

其实我不太认为说以深度为发展方向的开发者和以广度为方向的开发者存在明显的孰优孰劣。为什么会有这两种特征明显的开发者?还是市场需求决定的。这几年大厂产品越来越成熟,那么自然对专精人才的需求就随之增大,比如各类的极致性能优化、基建建设和效能提高等,团队发展到一定阶段,遇到瓶颈了这些需求就出现了;但同样的,全面手,比如大前端全栈开发者,依然是很多企业喜欢的。既然路有很多条,那么主要还是看自己适合和擅长哪条了。

选择了哪条路,如何提升?我觉得理好知识图谱,按点攻破即可,方法论不难,关键还在于执行力。前几年看过成甲的一本讲关于如何学习的书,如果还没有形成一套自己学习技巧的朋友,建议快速过一遍,取其精华。

面对 Flutter、Uni-App 等跨端技术的崛起,对iOS行业未来的发展你怎么看?对当前的iOS从业者有什么想说的?

iOS 环境这几年确实被吐槽得厉害,事实上我也有认识的同事辞职回家种花当老板。未来几年,iPhone 还会是销量前几的产品,苹果还会是那个科技巨头。iOS 开发者接下来会相对平稳了吧,直到下一个颠覆性产品到来。别把自己局限于 iOS 开发者,我们是做最接近用户端这一侧的开发者,现在是 iPhone,Apple Watch,以后还可能是 Apple Glasses。元宇宙革命正在进行~

开发人员除了掌握本职的技术知识外,现在也越来越多提到「软技能」这个词,在你看来有哪些软技能是在职业发展中比较重要的。

提到软技能,应该有不少人都或多或少看过或听说过《软技能:代码之外的生存之道》一书。这本书也有提到「十步学习法」,同样适用上面那个问题。当然,这本书讲的方面很广,从社交、理财到健身什么的,作者都分享了自己的经历和想法。我这里基于自己的一些职场经验,简略谈谈职场开发者可能需要的一些软技能吧。

需要掌握优秀的检索能力,检索能力往往会被很多人忽视,但在工作中却很重要。虽然我们常常调侃面向搜索引擎编程,可这就是绝大多数人的编码常态。好好提高检索能力,会让你效率大增,并且学习起来也比别人更快一步。检索第一步是去哪里搜?Google 作为程序员第一搜索引擎,自然不是个坏去处,但某些场景,可能有更好的地方。比如,我现在想看某些方面的文章,我更优先检索的就是周报仓库。知道了去哪里搜之后,怎么组织关键词去搜就直接决定了你能搜到什么了。编码相关的问题,我更推荐是直接按英文关键词拼接空格来搜,这样搜到的东西往往更准确,而且资源也会更多。最后就是一些相对进阶点的搜索技巧,引号精确匹配,默认模糊匹配等等。

老生常谈的提问的能力,作为一个某领域的萌新怎么去请教别人也很值得重视。一个好的提问可以帮你更快得到答案,也省了对方很多时间。以寻求帮助去提问的场景下,比如问你的导师,或者平常的一些技术群求教,一个好的提问大体是需要包含这几点内容:谦虚的态度,细致的问题背景,目前你的进度和结论,你期望得到的帮助等。

完成事情的能力,有些人叫「拿结果」的能力。在日常团队管理中,我是比较强调办事能力的,这一个能体现综合水平的点。有些开发者编码能力很强,但他并不一定能把事情做好。在团队内把事情做好,需要足够的责任心,良好的沟通协作能力,过硬的业务水平,有时候还需要有很强的韧性。

开发的职业发展过程中大多数都会经历瓶颈期,你有没有经历过类似的阶段,后来是如何突破的?对于处于这种阶段的同学,你有什么好的建议吗?

可能是自己没有很高的追求,我的职业发展相对比较顺利。所以给不了很有价值的建议。但如果说我自己真的遇到了,我估计会索性放空自己一阵子,任性放纵自由一段时间,都放松下来后,再来思考下一个阶段需要怎么走。生活压力很大,并不是每个人都有这样的机会和勇气这么处理,总之挺过去就好。

人生就是无数习惯的总和。在你工作中遇到过哪些开发人员好的和不好的习惯,能给我们分享一下吗?能再分享一个你自身具备且感觉对自己帮助较大的好习惯吗?

有些小伙伴比较好的习惯是不定期的去归纳总结,将所做过的事情,解决好的问题,新掌握的知识,都去做一个阶段性的总结。为自己的总结再设立几个问题,通过这几个问题去判断总结的效果是否理想。

不好的习惯,有些小伙伴遇事先条件反射性地自我否定算一个吧。碰到一个困难,第一反应就先觉得这个不行,那个不可能,这不是我的问题等等,本能地去推脱,久而久之也就丧失了正确评估一个事情的能力。或许是出于自我保护意识,察觉到威胁先跑路,但这确实是很不好。于己,这样会让自己的上限不断被压缩,仅维持在一个相对安全的小舒适区;于人,不断地被否定,也会影响对你的观感。

我一直认为开发人员不应该扔掉代码,尤其是中低层管理,这很容易会让自己失去竞争力。平常写写代码,保持编码逻辑的触觉,也能让自己跟团队其他伙伴更能走到一块。

另外对于普通开发者也好,技术管理层也好,定期去关注业界动态和社区技术生态发展,也是很重要的。每周看老司机技术周报就是一个很好的途径,哈哈哈~

很多开发都知道学习的重要性,但又常常陷到工作中无法抽身学习,就学习和工作的平衡性应该如何维持呢?

对于很多人来说,这可能是一个普遍的问题。这里聊下我自己的看法吧。首先还是需要从工作中去学习,毕竟这占据了我们大部分精力,去和自己的直属 Leader 多沟通想法,将一部分想学习的能力与自己的工作内容结合起来,落到工作中去实践。

然后是必须注重学习效率,一个阶段做一个事情,贪多嚼不烂;最后,虽然我很不鼓励内卷,平常自己也不 996,但很多人拉开差距真的就是在工作之外的时间。去培养自己的兴趣,将能够给自己带来乐趣的学习内容安排在非工作时间。

讲一个最近的生活感悟吧?

杭州疫情在这几天又复发了,且有迅速扩张的态势。注意防护,没事少出门,听从指挥,少给别人添乱~

人物访谈 | 一位普通的 iOS 程序员

人物访谈 | 一位普通的 iOS 程序员

夏天是摸鱼周报的一位主编,主要负责 Tips 部分的编写和审核。他曾参与掘金翻译计划,翻译过很多篇优质博客内容,也翻译过像是 iOS Crash Dump Analysis Book 这一类的外文图书。今年拉他来聊一聊关于外文翻译和他个人的一些情况。

简单介绍下自己吧

哈喽,各位摸鱼周报的读者好,我是夏天,是一位双 iOS 程序员。目前在摸鱼周报里面摸鱼

一般优秀的英文文章,不会马上就有人翻译,所以,如果想获取一手英文资讯,有什么有趣或者必看的外国网站推荐吗

一般都是通过MediumRealm 之类的网站,然后注册一下邮箱,接收推送,没事翻两篇。

看到好文章时,看看他们的参照了谁,参照作者可能也有好的文章。

之前翻译过不少内容,像是:《iOS Crash Dump Analysis Book》,是出于什么理由进行翻译的呢?翻译这个长篇有什么收获?

《iOS Crash Dump Analysis Book》这本书,我是在 19 年看到的,其实并没有仔细阅读下去。后来想仔细阅读的时候,发现网上并没有译文,我就申请翻译一下这本书,作者也是很慷慨,给予了这个机会,让我完成了 1.0 和 2.0 的翻译。

我觉得整体翻译下来的收获,大概就是形成体系的去了解一些关于崩溃的结构和作者在进行奔溃分析时的分析途径和方法。整本书是一个概论,虽然不能让你成为一个 crash 分析高手,但给了一个格式,在碰到崩溃的时候,可以按部就班的去进行分析。

为此我还写了一篇观后感iOS 崩溃分析

技术文章翻译的过程中那部分是相对困难的,有没有什么经验可以分享的

第一就是语感,翻译完以后多读几遍,没有 deadline 的翻译,你都可以翻译完以后,过几天再去读,再优化一下,至少读到你自己不变扭,能通顺为止。

第二就是实践,虽然里面很多技术你不能去实践,但是你可以去了解。文章的引申阅读和搜索一下相关技术。我在写 字节跳动移动研发工具链 - MBox 一文的时候,也是尽量保留原作者的本意,去了解对应的技术及其实践,进行再创作。

听说你最近一直在写前端需求,前端和iOS有什么区别?iOS开发想往前端过渡的话,有哪些注意事项?

写的都比较简单,都是偏业务方面的。思想上和逻辑上没有大的差异,唯一需要注意的是,如果你接手别人的项目时,一定要心平气和,因为前端很坑爹的是怎么写都对

学点CSS,学点JS,就可以开始过渡了,期间体系化的学习一下。

期待你在一家好的公司,什么东西都有,然后你顺着经验就可以开始夯实之路。

利用公司的项目锻炼自己,可以根据现有的模板,从零开始,从第一个组件,到第一个业务模块等等。

对于“大前端”这个词,你怎么看?随着跨平台、Web WebAssembly等技术发展,会不会统一成一个工种?

我理解是为用户体验负责,各种与用户有直接接触的都算是大前端,不过这可能更偏向于程序员这一职业。

前端程序员几乎都做着类似的事情,差不多的开发流程,页面埋点,发布流程,项目持续集成,页面性能监控 APM ,工程化,组件化…

技术永远都有差别,都是往前也不一定是同向。

也许未来这些为页面服务的人员可能会慢慢的变成一类,但是其中的某些人难以忍受这种越来越同化的工作又会开始异化出新的种类。

技术不停步,工种就永远有差异。

在这几年的iOS生涯里有什么比较大的收获?你怎么看待程序员这个行业?

没看到有啥收获,连个只能被铭记的功能都没有。

程序员这个行业,是一个注重基础和思考的行业,用数据结构和设计模式规范具体的行为,注重实践动手能力。

这个行业需要你一直学习,终身学习。

不应过分功利,需要一定的职业操守和道德。

自己在工作中有没有什么好习惯或者高效的工作方法可以分享的

解决问题的方式不要困于一种途径,交流能让你成为更好的人,多出去分享去交流,可以使人进步。

学到什么一定要做出来, 写下来,讲出去。

最近的一个生活感悟是什么

努力,生活总有好事发生。准备迎接好事发生

偶尔咸鱼也没关系,躺着是很舒服,但是还是要动一动的,不然真的会腰酸背痛

你的公众号感觉最近更新少了,后续还会恢复吗?

不更新的原因有很多:

  • 创作热情:在更新一段时间后,读者的增长量没有达到自己的预期,心理有些懈怠

  • 创作质量:期望与创造出真正有价值的东西,但是囿于能力等因素,既不想水,也写不出好文章

  • 创作方向:平常的工作更多是业务相关的,作为一名 iOSer 并没有自己固定擅长的地方,想像书籍一样写点东西,但是不太清楚具体些什么。

最最主要的原因就是懒

后续还会恢复更新的。目前在进行 Swift 的学习,之前也开了一个Swift 100 Days的专题,还在想怎么在里面添砖加瓦,丰富成一个系列

有什么想借助摸鱼周报宣传的

希望大家支持我的公众号:iOS成长指北,也希望大家与我交流。

承接各种技术类文章写作,一起交流学习。

人物访谈 | 一位 iOS 程序媛

人物访谈 | 一位 iOS 程序媛

Jojo 是我的前同事,做事非常细心,负责过团队多项重要功能的开发与建设,是我接触过为数不多的比较优秀的程序媛之一。这次邀请到她,来聊一聊她眼中的 iOS 开发。

简单做个自我介绍吧

大家好,我是 Jojo ,90后,一直从事 iOS 开发的一枚湖南妹子,喜欢交朋友,容易与人相处。现在是一名娃 3 岁➕的宝妈,如果有北京的宝妈,一起遛娃呀,哈哈哈~

当初学计算机专业出于什么考虑?后来为什么选择了 iOS 开发?

从小农村长大,初中才开始接触电脑,感觉计算机特别神奇,出于好奇,就走了编程这条路。当时 iOS 比较火热,苹果手机高端,能在高端手机上开发 App,会是一件愉快的事情。

目前程序员群体的男女比例大致在 9:1,女生的比例还是比较小的。

作为女生,你怎么看待这种状况,有质疑自己选择做程序员这件事吗?

我工作时遇到开发的女生还是挺多的,也许现在比例较低,个人认为以后会越来越多。目前为止,我认为自己走上编程这条路没错,也没后悔过。自己是比较简单的人,开发圈相对来讲也比较简单,挺喜欢的。

你目前的工作状态是什么样的,有没有困惑或迷惘?

目前工作状态还不错,知道自己想要什么,需要哪方面充电,也正在往自己希望的方向走,工作三年左右那会有过迷惘,感觉大部分东西能实现,工作中需求也能完成,遇到了程序生涯第一个天花板,却不知道怎么突破,那会感觉这辈子只能这样了。

后来遇到了一群可爱又优秀的人,也不排除年纪增长带来的觉悟,能发现自己的不足,目标越来越清晰,了解目标应具备什么能力,寻求突破。不知道大家有没有过相同感受,我曾经不太喜欢看书,逼着自己都看不下去那种,近期却非常想看书,发现认真读完一本书真的可以学到不少东西。

最近在看《非暴力沟通》,读这本书一开始是因为家里有个调皮小孩,天天跟我唱反调,心累得很。收获,让我懂得分析矛盾产生原因,以及如何去解决矛盾,书中会提供几种方法,总而言之,冲突产生时,学会倾听内心的声音,然后站在对方角度去感受,这样很大可能能够建立积极关系,收到良好反馈。不仅育儿有用,工作中同样受益匪浅。

如果大家有看过的好书,感谢推荐给我看看。如果有跟我一样困惑的人,还没遇见影响着自己变的更好的人,那就多看些好的有意义的书,说不定能找到点思路或者多交交朋友。遇见优秀的人多了,自己也会变得更加优秀。

作为程序媛,有没有什么与程序猿不同的工作方式?也可以介绍一下自己的高效工作法。

个人感觉程序媛会更细心,可能这是女性特质。

仅代表个人的一个有效的工作方式是,习惯写 ToDo List 。按照重要和紧急两个维度把待办事项列出来,然后按照紧急重要排优先级一个个完成,这样做会有这些好处:

1、做事不会遗漏。工作中随时都有可能被一些事情打断,有插入事项时,能及时记录进去,我比较健忘,所以对我帮助还挺大的。

2、有助于回顾。写周报时看 To Do List,秒完成。

3、建立目标感。有目标的每天,时间过得快而充实。

关于“程序员是青春饭、35岁失业”等,作为程序媛,你怎么看这个问题?

青春饭 35 岁就失业这个我以前也有过这样的想法,现在则有不同的看法。淘汰的永远是年纪跟能力不匹配的人,所以与其为未来焦虑,不如为现在努力,让自己保持进步和成长。

你觉得工作中最重要的一项技能是什么?

自学能力。曾经就职的公司,开发能用 Swift 的得用 Swift 开发,而我在这之前一直只用 OC ,如果自学能力不够,很难跟得上。不知道大家有没有这样一种错觉,干过编程的,再去干别的,只要给足够多时间,没有学不会的自信😁,我认为这是自学能力带来的信心。

你现在还要带娃,个人时间应该更少了吧,你是如何平衡工作和学习的呢?

相对来讲会减少一点,但也不是没有个人时间,以下方面起到不少作用:

1、提高效率,像上面记录 ToDo List 的方式,自己认为是提高效率方法之一。

2、寻找合作伙伴,平时我婆婆在这边帮我,我老公也会一起带娃。

3、娃上幼儿园后,大部分时间都在学校度过了,目前工作学习带娃没有失衡。

不过追剧逛街的时间确实没以前多了,要买啥,记录下来,申请一下逛次狠的😁。平常还会再抽出一些时间看看书,学习一下。

让你坚持做程序员的动力或目标是什么?有没有什么心得或经验分享给其它程序媛?

在任何行业做好一件事都是有难度的,感觉计算机行业自己也挺喜欢,好像没有理由不继续下去。
对所有女程序员说:如果不讨厌编程,Just do IT。

有没有什么想借助于摸鱼周报进行宣传的?

大家如果对百度感兴趣,可以随时把简历发我邮箱:jojocaonet@163.com,找我内推。马上过年了,买不买新衣回家过年就靠大家了,哈哈哈。

大家如果不嫌弃认识我的话,可通过飞哥加我微信,也可以通过邮件跟我交流哦。

人物访谈 | 一位游戏行业的 iOSer

人物访谈 | 一位游戏行业的 iOSer

iHTCboy 是摸鱼周报里负责校对的成员之一。记得他第一次参与校验时,我把一期整理好的周报发给他看,他后来给我发了 1600 字的修改意见,我都震惊了。修改意见里即有关于技术点的,也有格式和语言表述的,关键读过之后,感觉他说的还非常有道理,由此可见他做事认真的态度。下面是访谈内容。

简单介绍下自己吧

大家好,我是 iHTCboy,从事游戏 iOS SDK 开发快五年了。目前在 37手游,以 SDK 开发为主栈,自动化技术实践为副栈。目前我们海外版 SDK 中除了仅剩 1% hook 的 OC 代码,全部是 Swift 代码;在游戏行业有多年经验积累沉淀后,我们团队希望打造和分享一些 SDK 相关的自动化方案或框架,未来会逐渐开源,敬请期待,跟大家一起学习交流&进步!

当初为什么选择计算机这个行业呢?

应该是小时候对黑客的幻想,《电脑报》90后应该都有看过吧?而《黑客防线》、《黑客x档案》、《黑客手册》这些杂志,不知道大家有没有看过,初中时很着迷,初中时用破解软件逃过网吧收费系统,高中帮亲戚修电脑重装系统,有非常大的好奇心和成就感。在对计算机编程有全面了解前,总是幻想自己当上黑客后xxx,神秘又强大是每个男孩都有过的梦想吧!所以不加思索的就选择了计算机。

游戏公司的 SDK 开发日常是什么样的,它跟应用开发有什么区别呢?

每一位不熟悉游戏 SDK 开发的朋友都会问这个问题。应用开发大家可能比较熟悉,我们在开发中,也会引用第三方的 SDK,比如友盟 SDK、微信 SDK,这些 SDK 提供推送、分享或者支付的能力。而游戏 SDK 开发也是这个道理,为游戏提供特定平台的原生 API 功能。举例来说,目前主流游戏都是 Unity 引擎开发,游戏开发好后,可以导出 Android 项目或者 iOS 项目(Xcode 项目),然后在接入原生平台的 API。

游戏发展到今天,已经高度标准化…..

游戏研发专注于游戏内容的设计和开发(跨平台),而 iOS 和安卓平台原生的能力(如支付 IAP)就由我们封装成 SDK,提供接口给游戏调用。

1、SDK 开发包括:

  • 帐号体系(包括封装第三方账号体系:WeChat、Facebook、Google、Line、Twitter 等)
  • 支付体系
  • 分享社交
  • Web页面(游戏活动、客服、攻略等)
  • 数据埋点(广告、留存、数据分析等)
  • 性能监控

将以上功能模块封装成 API 给游戏调用,一般就是登录、用户中心(有界面),其它都是业务逻辑处理。

2、SDK 是提供给游戏使用,所以不像 App 快速迭代 UI,而是迭代业务逻辑。详细的开发细节,以后有时间专门写篇文章吧。关注游戏行业的发展,可以参考之前写的文章:游戏出海本地化概述

看你发多篇调研苹果审核和内购相关的文章,针对最近苹果在美国败诉,撬开苹果 IAP 的限制,你怎么看?这个改动可能带来的影响有哪些?

我们先来梳理一下,苹果 AppStore 垄断案的几个新闻关键点:

时间 概述 引用来源
2021-08-26 Apple 与美国开发者就 App Store 更新达成一致,开发者可以使用电子邮件等通信方式与用户共享 iOS App 之外的支付方式信息。 来源
2021-08-31 韩国国会立法和司法委员会通过《电信业务法》修正案,禁止占据市场主导地位的应用商店强迫移动内容提供者使用特定支付方式。 来源
2021-09-01 日本公平贸易委员会结束对 App Store 的调查,允许“阅读器”类 App 的开发者在 App 内提供访问其网站的链接,开发者可将用户引导向外部网站进行购买。(阅读器 App:提供数字杂志、报纸、书籍、音频、音乐和视频的预付费内容或内容订阅。 来源
2021-09-10 Epic诉苹果垄断案裁决:美国联邦法院命令苹果不得禁止应用发商引导用户通过第三方支付平台付费。法院并不认为苹果公司是手游交易市场垄断者,但认为苹果公司禁止将用户导向其他渠道是反竞争行为。要求苹果必须在12月9日之前执行。 来源1来源2
2021-11-10 Yvonne Gonzalez Rogers 法官拒绝了苹果公司关于推迟执行永久禁令的请求,苹果打算根据这些情况要求第九巡回法院暂缓执行。 来源

关于 IAP 内购问题,随着 AppStore 体量越发庞大,大多数开发者认为 30% 税不再合理,其实很多事本身就没有公平合理可言,省略一万字~ 你懂的。

大家可能忽视了一个重要的问题:苹果 IAP 收入占比最大的是什么类型的 App?答案是游戏!所以,对非游戏类 App 允许使用 IAP ,目前对于苹果的损失还不是很大,当然,如果没有损失是最好,但是目前的大环境和反垄断,一定会让苹果做出调整。(注:游戏一直以来都是 App Store 中的重头戏,从 2017 年 iOS 11 开始,苹果在 App Store 增加了 Games 游戏标签入口。)

对于苹果败诉带来的影响:

(1)苹果在美国一定会上诉,一般垄断案可能长达几年时间,所以苹果愿意继续打官司,尽量拖延时间(参考微软 IE 浏览器反垄断案,从1997年到2002年)。

(2)苹果降低 IAP 税率或允许所有 App 使用第三方支付是时间问题,但没有了 IAP,苹果可能会推出其它的服务费。

就在 11 月 19 号,谷歌宣布韩国地区的 Google Play 商品允许应用接入第三方支付系统。谷歌目前每年前100百美元抽15%,超过后30%。按谷歌的新规,韩国地区接入第三方支付系统,谷歌依然从中收取11%(26%),也就是说抽成只是被降低 4%。
简单来说,就是谷歌允许开发者使用第三方支付系统,但没有说不能抽成啊!抽成和允许第三方支付,不冲突!

为了应对韩国的新法规,Google 已更新 Google Play 付款政策

(3)对于开发者来说,肯定是好事。但这件事背后,是大资本之间博弈的结果,一定要明白为什么可以赢,比结果重要。

看过你的博客:https://ihtcboy.com/ ,从2008年就开始写了, 这是一个非常长的时间跨度。关于博客部分也有几个问题想问下你。

培养一个良好的习惯并持之以恒是一件不那么容易的事情,能讲下你是如何培养写作的兴趣以及对培养一个有益的习惯有什么建议吗?

高中语文课最讨厌的就是写 500 字作文,但没有想到自已大学后会喜欢写作。写作可能是我小时候比较孤僻,很少与人交流,总喜欢自言自语道,也许是这个原因,自己会有很多天马行空的想法或者内心独大。而作文是根据要求写作,限制你话题,没有自由的发挥和空间。

当然喜欢是一回事,写的好不好才最重要!培养写作,我认为要了解写作的注意事项,怎么样的文字修饰有多妙,多模仿多练习。培养习惯,更多是从一个个可行的小目标做起,积累量多了,慢慢就是习惯。切忌急功近利!

写作一定也有通用的规律规则,比如 中文技术文档的写作规范。大家多写写,多总结,一定会有自己的收获。

你写过如何建立自己的开发知识体系的文章,程序员也是一个需要不断学习的行业,关于如何让学习这件事变得有趣,再分享一下你的见解吧?

(1)说起来见笑了,建立自己的开发知识体系 只是觉得大家可以往一些通用的方向去梳理。现在回想起来,发现自己也没有什么都懂,可能接触和学习更多知识后,发现自己空白面更多,然后就越想学习。所以,也许再过几年,会有更深的理解,之后再跟大家分享啊。

(2)“不断学习”我认为是21世纪,每个人都要学会的。就像父母要学会用智能手机,否则健康码都打不开,在城市里寸步难行。所以,大家一定要正面接受它,每天都要学习和进步。

(3)“让学习变有趣”,其实我一直认为看书,应该是让人感到愉快的事情。但为什么大家都不愿意学习了呢?我觉得最重要的是,大家越来越急功近利,一切都为更快,从而忘记了体验过程。举个例子,去旅游时,可能为了发一个朋友圈,一直拍照修图,刻意的、绞尽脑汁的想,却没有享受风景的心境。所以学习本身如果慢下来,不只关注结果,还关注或者尝试从问题到结果的推演过程,这样的学习会更有趣一些。

你博客有很多思维导图,思维导图除了能够帮助梳理知识外,还有其他什么好处吗?

大家一定知道一个道理,图片比文字更加形象。思维导图比一段文字也更加生动形象,所以,它不仅能够梳理知识,还能理清知识的层次和架构,帮助记忆知识。举个例子,Vim 快捷键,如果你忘记了,打开思维导图,一看就知道:

再比如,说到人工智能,可能想法很多,那么大的框架应该是怎么样的呢?

最近有什么感悟想跟大家分享的吗?

关于内卷的话题,网上有很多讨论,大多数是吐槽或者劝退。我想换一个词,“努力”,为什么会有人很努力?现在大家都达到小康生活后,大多数人会选择躺平,然后自嘲自己是打工人。其实自甘打工的还是少部分人,大部分还是想往上跳一跳当老板的。另一方面在一个阶级中,努力的人,往往是想要跳出这个阶级的。就是这个往上跳的愿望,它需要的正是努力。

所以,努力它本身上没有错,这代表一种向上的态度。但需要注意的是努力的结果,是不是可以为你改变什么?如果可以,我觉得努力无可厚非。否则,就是真内卷。

最后,有一句话送给大家一起共勉:

Follow your own course, and let people talk.
走自己的路,让别人说去吧!
- 但丁 《神曲》

有什么想借助摸鱼周报宣传的?

欢迎大家关注我们掘金公众号:37手游iOS技术运营团队,会定期分享一些有趣的文章。

如果大家有兴趣加入三七互娱,可以查找相关岗位 :https://zhaopin.37.com ,或者将简历发给我内推:ihetiancong@gmail.com。不要担心有没有相关岗位,优秀的人,在哪里都是金子!

如果有其他问题想跟 iHTCboy 交流,还可以在留言区评论。

人物访谈 | 一位参加过 WWDC 的 iOSer

人物访谈 | 一位参加过 WWDC 的 iOSer

Mimosa 是摸鱼周报的编辑之一,负责每期的学习资料整理。在一次聊天过程中他晒出了跟 Tim Cook 的合影,给我们馋哭了。于是就有了这期访谈的主题:WWDC 之旅,也算是拉着 Mimosa 一起回忆了一把,哈哈。因为是在 17 年,WWDC 还是线下,活动真还挺多的,不知道还要多久才开发者大会才能再次回归线下,希望疫情赶紧过去吧。

简单介绍下自己吧

哈咯大家好,我是 Mimosa,中文谐音名棉毛衫,小号是 Mimoku(棉毛裤),是一名 iOS 开发者,工作经验一年左右,是 iOS 摸鱼周报的编辑之一。我是在大学的时候接触的 iOS 开发,当时加入了学校的 iOS Club,在大二那年获得了来自 Apple 的 WWDC Scholarship Winner,从此算是与 iOS 开发结缘,参加了许多与 iOS 相关的活动,毕业到如今一直是从事 iOS 开发。

能讲下自己获得 WWDC 奖学金的经历吗?

首先先介绍一下这个奖学金吧,WWDC Scholarship Winner 是 Apple 每年为全球学生提供的一个小福利,每年 4 月份的时候,Apple 会在官网放出当年 Scholarship 的要求,比如你需要是一个学生,你不能年龄太小等等,你还需要做一个有创意、激动人心的小作品,并提交,全球每年将会有大约 350 名学生的作品会被接收。如果你的作品被接收了,那么将免费获得一张当年 6 月份参加 WWDC 的门票,价值 $1599 😎(且提供住宿、来回差旅费也有机会报销)。在 2020 年之后,这个奖学金改名叫做 Swift Student Challenge 了,且由于疫情这两年的 WWDC 改为线上,就无法去现场参加了。

我获得的是 17 年的奖学金,申请 WWDC 奖学金时我正值大二,当时是刚学完学校的 C 语言课程和数据结构,加入了我们学校的 iOS Club,也是第一次接触 iOS 开发。我还清晰的记得当时是在 Swift 3.0 的环境下用 Swift 2.0 的教学视频在自学😂,周围会 Swift 的人也是屈指可数,只能自己上网摸索。由于当时有学长获得过上一年的 WWDC 奖学金(但由于时间问题没去 WWDC 现场),所以当时的刚学我们也想试一试,就熬了几天用自己学过的所有东西做了一个作品提交了。没成想那年我们学校有 4 位同学获得了奖学金!但最后由于签证问题(我是之前已经有申根和美签了,但我的朋友们没有😢),所以只有我一个人去圣何塞 WWDC 的现场。

你当时开发的是什么作品?

那一年是第一次 Apple 要求参赛者制作一个 playground(之前都是要求做一个介绍自己的 App 这种类型的题目),我制作了一个简单又可爱的可视化冒泡排序教程💂‍♀️,运行在 Swift Playgrounds 这个 App 中(可以在 iPad App Store 和 Mac App Store 中找到这个 App),利用这个 App 一侧可以写代码,一侧可以查看运行结果这种所见即所得的特性,来教使用者冒泡排序算法的原理。

参加 WWDC 期间有什么好玩的事情,这个过程有什么收获?

可以说是收获颇丰。首先一个是,作为 Scholarship Winner 可以额外参加一个 WWDC 正式开幕之前的 WWDC Scholarship Meeting,由 Apple 组织在一个小剧场和我们讲了一点 Apple 在各个方面做出的一些努力等等,还会给我们发一个 dev 版本的 Apple TV。重要的是,在所有演讲结束后,Tim Cook 会突然走出来和所有 Scholarship Winner 合影,然后接下来就是激动人心的和 Tim Cook 合影环节,我当时的情况是你只需挤到他旁边他就会和你合照一张!🤩据我观察现场大约有 2/3 的人都在成功合影了。(剩下没合影成功的只能落寞地望着 Tim Cook 和他保镖的背影😇

对于大多数开发者来说,可能 WWDC 里面重要的是各种各样的 session,但其实也会有一些无关技术但与生活相关的演讲,给我印象深刻的有两个。

一个是在 WWDC 的第二天,由于我时差没倒过来睡不着,参加的当天最早的一个演讲,是奥巴马夫人米歇尔的一个演讲,(虽说我排队时排在前几个但是仍没坐到前排,气死了),她讲了许多科技与生活的事情,谈论了他的孩子,还讲了去长城的经历,吐槽长城人多等等。

另有一个让我印象深刻的演讲是来自 NASA 的一个女数学家奶奶,她谈论了她当年是怎么加入 NASA 以及工作至退休期间的经历,讨论了那个年代女性在 NASA 的情况,讨论了那个年代女科学家的境地,让我大受震撼。

作为 Scholarship Winner 还有一大好处就是,除了能接触到说中国话的学生开发者之外,还可以接触到来自世界各地的 Scholarship Winner,由于所有 Winner 住在圣何塞州立大学的宿舍里,我去的那年 350 个 Winner 中大概只有15个是来自大陆,同时黄皮肤的面孔不超过30个,意味着活动中有大量的时间我需要与母语不是中文的人交流。

比如我的室友就来自俄罗斯🇷🇺,他大四在读,我们用散装英语交流了很多东西,他的作品是用 playgrounds 模拟 Metal(?我到现在也没懂这怎么做的😅),他的计算机基础踏实的一塌糊涂,聊天的时候我就像被面试一样,绞尽脑汁地想他到底在说啥。还有一位意大利小哥🇮🇹一看我这是亚洲人面孔,就凑上来问我们是哪里人,问我是不是中国人,问我来自上海嘛,在得到一系列肯定的答复后他说他去同济大学交流过一段时间,然后他突然很想告诉我他是哪个校区,然后我们开始一起苦思冥想同济大学除了四平路还有在哪的校区,想了半天没想出来,意大利小哥也不尴尬,和我面面相觑地走了一路,最后挥手道别😂。

在 WWDC 期间的会场外,也会有很多的 tech talk 在附近举办(蹭 WWDC 热度),我误打误撞参加了一个 Realm 举办的 tech talk。一开始先是吹了一波 Realm,然后是邀请了一些从 Apple 离职的人来做对话,结果发现请到了 Chris Lattner(当时就职于特斯拉)。大家伙那叫一个激动啊, 连下面的好多爷爷辈的听众都提了好几个问题(真的爷爷辈👨‍🦳,拄拐杖的,不开玩笑),只能感叹一下计算机技术这该死的魅力。

另外 WWDC 的倒数第二天有个 Bash,算是一场露天音乐会,气氛很热烈!来的是 Fall Out Boy(代表作有”The Phoenix”,”Immortals”等,现场太顶了),大家在现场把酒言欢,给 WWDC 收了个尾。在 Bash 现场还和来自国内各大互联网公司的工程师们合影了,不知道各位看官有没有在照片里面的。

在 WWDC 玩的这几天拓宽了我看待技术的视野,把我从学校里教的那些知识里面拉了出来,在会场的内外,看到了更多与业界发展相关的东西,看到了计算机科学的广度和深度。我本科就读于魔都某不知名二本,且不是工科强校,所以我的学校计算机专业水平比起其他获得奖学金的同学的学校来说(我记得有中大、同济、新国大、中科大、港大等🙂)差的不是一点半点,无意贬低我的母校。但确实这次的经历让我觉得我能努力的地方原来还有这么多,我在学校所认识到的那些知识似乎只是计算机科学的冰山一角,突然在心中对一些东西产生了渴望,让我突然对未来感到期待和兴奋,在这些经历和感受一起冲击我心灵之后,我知道了一件事:我掉进代码这个陷阱里了🥰。

听说你还在上海科技馆和 Apple 供应链工厂等场合进行过一些线下演讲,这是一种什么体验?

由于在学校参加的 iOS Club 与 Apple 有一些方面的交流和合作,所以也参加了一些特别的活动,例如在夏天的时候去上海科技馆免费给小朋友上编程课,就是用上文提到过的 Playgrounds 这个 App,也给科技馆的小朋友分享参加 WWDC 的经历(同时我也发现,现在的10岁左右小朋友有编程经历的真不少)。除小朋友外,我还作为助教参加过给 Apple 供应链工厂的 Swift 教学活动,用一个月的时间让一点代码都不懂的工厂员工通过学习实践之后,能够自行开发一个简单的 iOS App。另外我还受邀参加香港教与学博览会分享 playgroundbook 的制作经验,向参观者介绍 Playgrounds 这个 app 作为教学工具的一些优点等等。这些交流的经验带给了我从别的角度看待 Swift 以及 iOS 开发的机会,在准备教学教案这些东西的时候,不可避免地会去研究和比较别的语言、别的技术、别的生态是怎么样的😵,让我了解了一些跨平台技术,对客户端开发多了一点理解。

除了这些技术方面的感悟,这些经历带给我了更多情感上的震撼,比如有位10岁小朋友学过了python、c++等等语言,对编程思想也理解的很到位,而且为人很谦虚,还会帮助别的小朋友理解代码;还比如在工厂中我们作为老师教那些20多岁、30多岁、甚至40多岁的员工写代码,而他们就像是科技馆的小朋友一样,对代码一无所知然后带着好奇和热切的眼神来上课,并且当做不出作业时会很羞愧,这些经历会让我感觉到:诶好像这个世界不是我以为的那个世界这种感觉,我没想到有这么多人在推动编程教育、我没想到这么多人对编程这么大的兴趣、我也没想到学编程对一些小孩子来说是一种消遣、我更没想到多会那么一点点编程能改变一个人的发展。根据给我们的反馈,有一小部分上过我们课的工厂员工由于在编程课的表现很好,被“挖”到了工厂的技术部门,从此工作的地点从流水线换到了办公室🤑。

能分享下你的学习历程以及保持学习热情的一些方法吗?

我想我的答案可能和大家想象的很不一样。在校的时候,我是在我社团的推动下成长的,我参加了很多活动、比赛,几乎都是和 iOS 有关的,这些都是是我的社团带给我的资源和推动,比如去参加移动应用创新赛(Apple 赞助)的期间,我学了 ARKit、CoreML、SceneKit、SpriteKit 等等,了解了很多较冷门的 iOS 技术,了解了隐私政策、了解了怎么上架一个 app、以及审核的诸多事项,我的比赛或者活动需要什么我就去学什么,当然这没有什么不好的,没有这些推动我的话我肯定窝在寝室打 dota(嘿嘿👍)。

但至于其他方面的知识?额我懂得很少,记得有次有个评委发现我的 app 里内存泄漏导致 crash 了,他问我为什么 crash 了,我答不出来;记得大四我去面试的第一家实习是英x流x说✍️,面试官和我说他们以前也有一个奖学金的 winner 实习生,表达的意思就是对我蛮期待的,但是后面的面试让他大跌眼镜,我对这次面试印象很深刻,我从第一个问题开始,没有一个问题是答对的(不夸张),答得面试官都有点怀疑人生,他的眼神像是在问我是不是来砸场子的,我对面试的这些内容算是一点都不懂,当时很难受,也很后悔,后悔第一次面试就去了最想去的公司。再之后经过了准备之后换了一家公司得到了 offer,所以在那段时间,促使我学习的是那种落差感,是那种想要再证明自己的不甘。再往后我去考研了然后技不如人没考上,那段时间更焦虑了,会一直督促自己去学习,所以其实失败才是我源源不断学习动力的源泉,也希望在今后的成长道路上,失败不会成我唯一的学习动力👨‍💻。

有什么想借助摸鱼周报宣传的?

明年计划换工作了,想去大厂被资本家摧残🤡,坐标上海,邮箱:mim0sa@qq.com,欢迎各位老板骚扰。

也希望大家多关注 iOS 摸鱼周报,如果有好的建议和意见快来告诉我们。

人物访谈 | 一位研究生的iOS之路

人物访谈 | 一位研究生的iOS之路

本期访谈对象是摸鱼周报的主编之一:反向抽烟。他还在读研,因为名字里带个尧字,我们都叫他尧兄。尧兄有一个博客:https://blog.csdn.net/opooc ,分享自己的学习记录,大家有兴趣可以看下。

zhangferry:简单介绍下自己,再讲一下最近的状态吧。

大家好,首先感谢飞哥的采访。网名叫反向抽烟,是一名研二在读的大学生,也是 iOS成长之路群的早期用户。目前在做计算机视觉方向学习,一方面对这个领域比较感兴趣,另一方面也是为了毕业设计。在学校的状态一般,强度不大,还是比较随意的。

zhangferry:你之前在网易实习,后来又回到了校园,为啥结束了实习?对比校园和职场这两种不同的环境,能分享下你的感受吗?

导师给我安排了一些任务,要结束实习工作,所以才回来的。其实我自己不想结束实习,还是挺想上班的。大家一起共事,一起努力完成工作,那种氛围,我还是挺喜欢的。

时间和精力上的分配不太一样,实习更多的是输出吧,校园自由一些,输入会多一些。

zhangferry:你接触过的技术方向挺多的,算法、Java、iOS、计算机视觉等,你在选择或者更换技术方向时一般如何做权衡呢?

这些方向的本质是没有什么区别,都是为了解决问题,后端也好,前端也好,我觉得都是值得学一下的,毕竟打工嘛,还是得提高自身价值,。

zhangferry:尧兄啃过很多本书,能推荐一个对自己影响最大的一本书,简单介绍下吗

书的话没有看很多,飞哥既然给面了,那我就推荐一本课外读物《狼的智慧》,强者恒强,适者生存。

备注:尧兄真的是在啃书,有一张之前群里发的图片为证:

再附一张他推荐过的书目名单:

zhangferry:对于学习这件事,你是如何保持热情的?感觉你对学习是沉迷的。可以推荐一些你的学习方法吗?

对我而言应该就是兴趣吧,如果对一样技术的态度是为了完成任务而学习,我大概率完成不好。但如果是自主的学习过程中,我有了一些自己的想法,就会竭尽全力的去弄懂。所以主动而非被动,会让学习这件事更有趣味性。

学习方法的话,分两个角度吧,一是学习一定得是刻意的,要拿出时间来经常练习的,这个没有捷径;第二是对于新东西要先用起来,再去研究原理,边用边学,这样效率会高一些。

zhangferry:你经历过不少大厂的 iOS 面试,实习面试时考察侧重点是什么样的?对正在找实习工作的同学有什么建议吗?

实习面试重点还是在考察基础,有四个部分:算法基础 + 计算机基础 + iOS基础 + 项目/实习。算法是最基本的一项,一般每一面都会问到;计算机基础一般是在一面进行考察;项目/实习一般是在二面/三面进行考察。

准备的话:

1.算法最好有个 300 的题量,一定要在面试前保持题感。

2.计算机基础中考察有计算机网络、编译原理、操作系统、数据结构,网络和操作系统基本是必考,这一部分还是需要花时间理解的,建议平时多花时间钻研下,只背面经是经不住问的。

3.iOS基础准备起来还是有章可循的,推荐看 mj 老师的底层视频和慕课网的 iOS 大牛面试视频,最后把不理解的点做好笔记,及时请教。

4.项目/实习有一样就可以,要是准备项目的话,可以把自己的以前写过的项目进行一些优化,做好总结,把写了简历上的点,都一定要弄明白。

实习面试看公司或者部门,有的公司要实习生去干活,就考 iOS 多一些,有的是为了培养转正,就要求基础牢实一些。主要还是凡事提前准备吧,多往前看几步,早做准备。

zhangferry:最近有什么新的感想或心得跟我们分享吗?

程序员这个行业其实是与社会关系脱节的,它不是那种社会性质的工作,会经常和人打交道。技术肯定要有的,毕竟是门手艺活,得靠它吃饭,但技术只是一个最最基本的层面,政治书上说了,人的本质是一切社会关系的总和,所以大家还是要多多搞好社会关系,这样人生路才会更宽广,走的更顺畅。(仅为个人观点)