MoreRSS

site iconJustin Yan | 枫影修改

苹果开发者,也是枫言枫语播客的主播。白天在微信打工负责视频号客户端团队,晚上鼓捣个人爱好。中文播客榜作者。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

Justin Yan | 枫影的 RSS 预览

最近的图书、电影,和唱片

2025-07-14 11:50:30

和之前这篇一样,本文是近期在微信公众号更新的图文的合集。

写了一个多月微信公众号的图文之后,截止到今日(2025/07/14),《F1电影: 给车迷的礼物 》有3千多阅读,《苹果的MagSafe》有2万阅读,《小米AI眼镜: 别买🙅‍♂️ 》有7万多,189条留言。但是小米那条变成了有点像吵架留言,我挺不喜欢的。以后也不发这种类型的东西了。

除了这两条以外,我分享的图书,电影和唱片基本上没什么阅读。互联网发展到今天,已经从以前的“点击率”变成了现在的“流量”,这些内容在各个平台能不能有“流量”等同于推荐系统愿不愿意推你。这个“推你”的权力保留在各个平台的手里。

我有一份全职工作,“流量”对我来说并不重要,所以我还是分享些虽然没啥流量,但是我喜欢的东西。

1. 人人都爱博朗设计 Dieter Rams: the complete works

刚收到新买的“Dieter Rams: the complete works”, 这本书由编纂,收集了德国设计大师Dieter Rams的全部经典工业设计作品,其中大部份是博朗(Braun)产品,由PHAIDON出版社出版,品质保证。

Rams出生于1932年,1956年年轻的Rams在博朗公司设计出名震一时的经典作品: SK4 radiogram. (P2)

我是在看Scott Yu-Jan的YouTube Channel时留意到这本书的,他的video是3D打印一个iPhone Dock(P3),设计是就是致敬了DN40闹钟(P4)。

2. You get what you settle for

1991年的电影《末路狂花》(Thelma & Louise)我在前几年看过,但忘了,周末又看了一遍。主角都是女的,两位好朋友,相约一起开车去个山里露营休闲一下。结果Thelma路遇歹徒,Louise失手强杀那名男子,从此二人走向逃亡之路。
当时这部电影还曾是女性主义(feminist)电影的先驱,在那个女性抽烟被视为独立、很酷的时代,这部以女性为英雄主角的电影确实很帅。
除了女性主义以外,这部电影对于自由的追求,对于自我的解放才是真正的底层内核。

  • Thelma: I guess I went a little crazy, huh?
  • Louise: No, you've always been crazy. This is just the first chance you've ever had to really express yourself.

一开始Thelma是那个更加脆弱的人,而Louise是更加坚强的。直到他们遇到Brad Pitt饰演的小流氓J.D.,睡了Thelma并把救命钱都拿走了之后,两人角色互换。Thelma找到了真实的自己,直到自己内心深处真正想要的东西,而Louise在强撑了那么长时间之后终于崩溃了。最后在Grand Canyon悬崖前,是Thelma说:"Let's not get caught. Let's keep going."

最终两人驾驶汽车,面带笑容一跃飞入山谷。
重看这部电影,仍然为两人的勇敢而动容。

Louise在影片开头说:“You get what you settle for.”

3. Stressless

周末在igc看到一家新开的挪威家具店,名字是Stressless。
设计感非常北欧,我一开始想这名字还不错,但是转念一想,这不是时刻在提醒我,现在我可能stressful吗😂
接着我想到,似乎stress这个词被用于心理学隐喻的时间并不算长,这个家具品牌说自己创办于1971年,那么孰先孰后呢?
我原以为这个概念可能会跟弗洛伊德有关系,没想到原来是由Hans Selye在1950年代提出的,他的书《The Stress of Life》(1956)让“stress”首次以科学语言进入普通人生活。
没想到,人类已经stress70年了😂。

4. Sony Design: Making Modern



这本书是索尼产品录,由纽约Rizzoli出版,品质保证。书本封面是PS 4的侧影,因为出版于2015年,当时还没有PS 5及后续产品,书本内页采用铜版纸,印刷精度很高。
书本前面有一小段文字,其中有一段来自前伦敦设计博物馆馆长Deyan Sudjic的口述索尼设计史,值得一读。全书最大篇幅的部分是大量索尼经典产品的高清摄影,包括早期的磁带录音设备HDV-1000,磁带录音机,Walkman,到后期的CD播放器,话筒,DVD,MD磁碟机,摄影机,游戏机,笔记本等各种经典产品。
熟悉Steve Jobs的朋友都知道,他受索尼的影响很深,许多苹果的设计灵感也都源自索尼。比如1977年乔布斯在Apple II的广告中使用了"Simplicity is the ultimate sophistication"这样的广告语(P10 & P11)。感谢Internet Archive我们现在能看到高清扫描版。
要达到极致的简洁,背后需要付出无与伦比的努力,无论是Apple还是Sony,还是我之前分享过的博朗设计,以及其他致力于让产品变得更加美好的团队,感谢你们的付出,人类世界才能变得更美好一点。

5. 夏天听什么?City Pop女王杏里1983年的专辑Timely!

City Pop经典制作,日本女歌手杏里1983年发行的个人第六张录音师专辑《Timely!》,收录了当年的两首大热单曲。其一是《CAT'S EYE》,这首歌也是经典动漫《猫眼三姐妹》的主题曲。其二是角松敏生制作的《悲しみがとまらない》,两首歌都是我非常喜欢的杏里的代表作。
这张唱片的封面和内页都是在夏威夷拍摄的,摄影师是大久保久子(Hisako Okuobo),这位摄影师的风格也非常不错。
广州最近受台风影响,一直在吹空调外机,就该听一听ANRI,看看她晒得发黑的健康的皮肤,坐在办公室里吹着空调想象自己在夏威夷度假的感觉,这才是顶级牛马该有的姿态😂

Vol. 147 科技快乐星球36: 小米AI眼镜咋样?

2025-07-07 21:37:20

科技快乐星球,攒了一个月,量大管饱。最近Justin买了小米AI眼镜,先说结论:现阶段这类型的AI眼镜都没啥必要买。

除了小米,还有Meta和Rayban合作的眼镜,还有Meta和Okaley,还有国内的雷鸟等多家厂商都开发了类似的产品。但是小米的AI眼镜,与其他家一样,共享了所有此类设备都有的缺点,但并未针对这些缺点提出创新的解决方案。

详情我们在节目里详聊。

此外,OpenAI/Google/Claude等各大厂商持续在AI领域发力,眼看今年AI仍然是竞争大热的方向。

P.S. 纠正一处错误:iyo不是Jonny Ive的公司,而是跟他打官司的公司,Jonny Ive的公司是io 。感谢听友提醒🙏

时间轴

  • 00:00:59 小米AI眼镜上手体验感受
  • 00:06:53 超级小爱AI能力不及预期
  • 00:11:18 小米为什么要做AI眼镜
  • 00:17:52 小米AI眼镜音乐播放和录音的问题
  • 00:28:31 OpenAI 欲与 io 联手开发AI耳机硬件
  • 00:33:15 iPhone 音频文件能直接设置铃声了
  • 00:34:26 AirPods 将新增相机控制、睡眠检测
  • 00:39:05 Google 发布了 Gemini CLI
  • 00:42:18 Gemini App 支持上传视频功能
  • 00:43:16 MIT研究:ChatGPT让用户变懒,脑部活动下降
  • 00:51:37 Gemini 2.5 模型家族:Flash/Pro/Lite 亮相
  • 00:52:54 谷歌发布 Weather Lab AI 提升气旋预测准确性
  • 00:54:04 阿里 Lingma IDE 上线,基于 VSCode 魔改
  • 00:55:34 OpenAI 或推出"用ChatGPT登录"第三方应用功能
  • 00:58:11 阿联酋全民将免费获得ChatGPT Plus订阅
  • 00:59:45 Windsurf 被 Claude 断供,CEO发文控诉
  • 01:00:38 Swift 编程语言正式支持 Android 平台
  • 01:01:48 Switch2 日本销量超过 Xbox 本世代主机总和
  • 01:05:05 安克创新主动召回部分批次移动电源
  • 01:06:52 Android 16 正式版今日上线
  • 01:07:51 腾讯音乐拟收购喜马拉雅 100% 股权
  • 01:12:08 Spotify 支持在车里临时播放乘客的歌单
  • 01:12:58 泰勒·斯威夫特成功回购前六张专辑母带所有权
  • 01:14:36 Windows 11 记事本新增 Markdown 格式支持
  • 01:15:07 苹果近年来的创新趋势

幕后制作

联系我们

节目收听方式

推荐使用苹果Podcast, 小宇宙等播客客户端搜索“枫言枫语”来订阅收听本节目。

F1: The Movie - "Not About the Money"

2025-07-03 21:57:54

在F1这部电影里,Brad Pitt饰演的赛车手主角Sonny Hayes曾经被问过两次关于钱的问题。

第一次是在电影开头的转折点,在一个Cafe,他的老朋友(现车队老板)来拉拢他回去F1帮他的车队开车。两人聊完之后,一开始Sonny是拒绝的。老朋友走了之后,他问给他上菜的女服务员。

Sonny Hayes: a close friend of yours make you a offer that a hundred percent positive too good to be true. What will you do?
The waitress: Well how much are we talking?
Sonny Hayes: not about the money.
The waitress: So what is it about?

Sonny没有回答。然后他就坐飞机前往英国参加比赛了。

第二次是在电影末尾。Sonny帮助车队拿到分站冠军,使整个团队融为一体,原来小年轻车手也成长起来,他功成身退,前往沙漠参加巴哈1000越野赛。在沙漠里,他跟招聘赛车手的人又一次对话。

Old guy: have you ever driven in Baja?
Sonny Hayes: Nope.
Young guy: We can't pay much.
Sonny Hayes: not about the money.

Sonny没有正面回答到底是关于什么。但是他对赛车的热情,在围场中贴地飞行的追求,已超出他对生命的热爱。

Steve Jobs在1985年被踢出自己创办的Apple公司之后,在一次Newsweek的采访中谈到当时的心情。

Newsweek: How did you react when you heard the [Apple] board’s decision [to sue you]? These were people that you knew and worked with for a long time.

Steve Jobs: …(省略)… I personally, man, I want to build things. I’m thirty. I’m not ready to be an industry pundit. I got three offers to be a professor during this summer, and I told all of the universities that I thought I would be an awful professor. What I’m best at doing is finding a group of talented people and making things with them. I respect the direction that Apple is going in. But for me personally, you know, I want to make things. And if there’s no place for me to make things there, then I’ll do what I did twice before. I’ll make my own place. You know, I did it in the garage when Apple started, and I did it in the metaphorical garage when Mac started.

Steve对"Build Things"的痴迷也是一样的。虽然苹果是一家商业特别成功的公司,虽然F1这项运动无处不要花钱,但是我挺羡慕影片中的角色,以及Steve Jobs,他们对某种热爱的痴迷。

我想正是因为我们的生活中有太多太多的事情,无一不是about the money。所以当Brad Pitt开着他那辆乱糟糟的破破烂烂的Van,潇洒地说出那句:"Not about the moeny."时,才会为之触动。

生活已经有太多的不得已,希望有一天我也能像他一样潇洒地说出来:

Not About the Money.

Xiaomi AI Glass: Not worth a dime.

2025-07-02 14:14:02

小米最新发布的AI眼镜有当前所有AI眼镜的共同问题,且没有提供好的解决方案,甚至不能跟自己的米家生态联动,这个眼镜已经不是鸡肋,是弃之不可惜。

当前小米AI眼镜存在的问题

  1. 作为一个蓝牙设备连接iPhone,能随时播放音乐,但不能直接让小爱同学播放Apple Music(它只支持直接播放QQ音乐)
  2. 这个眼镜连接的是“小米眼镜”App,除了能导入眼镜拍摄的照片视频之外其他的都非常差劲,不是鸡肋,是差劲
  3. 对话用的大语言模型能力特别差,可能连GPT 3.5都不如。
  4. App里设计了“转写”,“同声传译”功能,但因为大语言模型太糟糕,这些功能完全达不到及格线。
  5. 跟小爱连续对话后,如果继续说话,最多可以等待30s。但是如果你说了几句“小爱同学”,它就会一直打断,因为它的触发判断延迟比较大。
  6. 不能跟小米生态联动。我站在小爱音箱旁边,两个设备会同时回答我。而这个眼镜本来是随身的,但是它不能操作米家的任何智能联动。 Updated:
    我换绑了眼镜到小米手机(虽然看似同账户会自动同步数据,但是不先解绑重新绑定的话就永远连接不上),可以打开我家客厅的灯了👍
    但是我让它关灯,它说“对不起,小爱还在学习中”🤦‍♂️
  7. 作为蓝牙设备(且有音箱),上车后会影响我操作CarPlay,导致我上车后要把眼镜关机。
  8. 有些隐藏手势操作,新手教程没有,App里想找也找不到。早上我误触了“开始录音”,一直找不到能关闭的方法,结果只能关机。
  9. 语音让小爱同学拍照是不可以的,只能用手摸到拍照按钮,手动点一下。为了隐私也可以理解,但小爱同学在眼镜上已经比不带Apple Intelligence的Siri还Silly了。updated: 晚上再试又可以用语音操控拍照了,不知道是怎么回事。
  10. 眼镜上的小爱同学不能一直播放他的语音回复。比如我让它念新闻,这在小爱音箱是常规操作,但在眼镜上它一次只能念一条。(要你何用 updated:晚上换绑回iPhone,新闻又能连续播放了😳看来是今天被我遇到了一堆Bug。不能语音拍照,不能开关灯,新闻播放会中断,我有点怀疑这三个是遇到了同一个Bug
  11. 明明有个选项叫做“智能家庭控制授权”,为什么还是不能用眼镜操控我家的设备 updated: 换绑手机后可以,怀疑是遇到Bug
  12. 小米眼镜似乎是必须连着iPhone App来运作,所以它要求我们把iOS App的后台位置权限打开,为了一直保活。但问题是这东西又不好用,使用频率不高,长期保活App还耗电。(这点算是在iOS上做这类设备的问题,如果苹果自己做它就会自己在后台开个超级daemon,没人管。
  13. 用眼镜听歌和接打电话体验OK。但这不是所有能长时间佩戴的蓝牙耳机都具备的功能吗🤦‍♂️这个眼镜又不具备屏幕显示功能,为啥我需要一个长得像眼镜的蓝牙耳机?
  14. 因为要往眼镜里塞各种东西,这个眼镜显得比较巨大,比一般的黑框眼镜要粗壮得多。控制成本,材料质感比较廉价,塑料感很强。重量OK,长期佩戴不会不舒服。但因为比较大,脸小的朋友估计不太喜欢得来。

有无解法?

  1. 不想用蓝牙耳机的方式接入iOS的话,只能等苹果推出专门的外设连接接口,目前只有Apple Watch有这样的能力。而且如果真要接AI眼镜,我估计苹果会先自己做,不会先开放。
  2. 即使连接的是“小米眼镜”App,也能通过“授权”的方式,在后台操控同一小米账户下的米家设备。我怀疑是不是做眼镜和做米家的是两个部门的人,没有深度联动。
  3. 大语言模型差我怀疑可能是蒸馏了一个小体量的,提高响应速度。但按照目前的设计,可以用on-device的部分来触发小爱,剩下的通过眼镜网络或者手机App到后台去交换,这样效果会更好。目前的这个模型是不可用的,完全不及格的。
  4. 转写和同声传译功能,同样因为模型太弱,处于完全不及格状态。
  5. 多说几次“小爱同学”的打断,理论上可以通过软件优化解决。
  6. 站小爱音箱旁边的判断可能有点难度,但操控米家生态应该优先做。
  7. 因为连接了蓝牙设备导致影响CarPlay这个似乎没有解法,同#1只能等苹果
  8. 手势操作目前感觉还不是很适应,学习成本是有点高,但做AI眼镜要feature rich就避不开,除非像Vision Pro一样全靠视觉识别手势。但是App里的教程应该要配置齐全,这个是完全可以做到的。
  9. 其实用手摸按钮拍照我觉得也可以做得比较隐蔽,所以我倾向于不允许小爱同学拍照只是还没开发。如果小米的产品经理觉得要禁止这个功能,那么应该让小爱回答必须动手点按钮,这个不难实现。
  10. 小爱可以连续播放音乐,说明播放声音和串流音频数据不是瓶颈。我不理解为什么不能让小爱一直播新闻,这个应该可以做到的。
  11. 同#2
  12. iPhone后台保活无解,目前所有AI眼镜都有相同的问题,同#1
  13. 只剩听歌打电话和拍照录像,那么这个眼镜毫无竞争力。Meta最近跟Oakley合作的“运动眼镜”也有类似的问题。
  14. Meta的眼镜也有类似的问题,想要控制成本,眼镜质感高级,功能强大,同时要轻和纤细,按目前的工艺这是不可能实现的。

SwiftUI如何实现渐进式模糊效果?

2025-07-01 17:14:37

最近在玩iOS 26 Liquid Glass,其中新的Tabbar改动是很多的。

这个Apple Music底部的Tabbar就跟之前的版本完全不同。如果我们使用SwiftUI和新的API,要想获得这样的表现是很容易的。

var body: some View {
        TabView {
            Tab("Home", systemImage: "home") {
                HomeView()
            }
            .badge(17)

            Tab("New", systemImage: "square.grid.2x2.fill") {
                NewView()
            }
            .hidden(sizeClass != .compact)
        }
        .tabBarMinimizeBehavior(.onScrollDown)
    }

留意到当ScrollView的内容长度超过Tabbar之后,Tabbar会自动加上一层背景的渐变。看起来很Cool。

我在尝试一个东西,就是实现一个类似iMessage底部聊天窗口的界面,这时候遇到了问题。

目前这种置于底部Toolbar之下的渐变模糊,只有使用.toolbar接口才能自动实现。SwiftUI没有提供额外的接口给我实现这样的渐变。

也就是说,如果我想实现iMessage这样的聊天界面,那么我最好使用.toolbar()

.toolbar {
            ToolbarItem(placement: .bottomBar) {
                Button(action: {
                    // 更多功能
                }) {
                    Image(systemName: "plus")
                        .foregroundColor(.primary)
                }
            }
        }

类似上述代码。这样的好处是我们自动地获得了底部的模糊渐变。但是当我们点了加号按钮,希望在Tabbar的下方弹起一个更多功能的面板时,不好意思,如果他是个Tabbar,那么目前没有办法让这个消息输入框能够放在这块面板的上方。

那么iMessage如何实现的呢?

以Stickers为例,首先它present了一个面板,出现在Tabbar的下方。然后,当你拉动这个面板往上滑,神奇的一幕出现了,它不仅挡住了Tabbar,甚至挡住了顶部的navigationbar!

我怀疑它可能是:

  1. 在整个App的层级上它设计了一个能浮动的View,跟App同级别,或者跟Tabbar所处的Root View同级别,只有这样才能缩放Tabbar所处的View。
  2. 这是一个特殊的能力,不对外开放的。

我目前倾向于是 #2,即使是 #1,我要实现和维护这个复杂度也不太合理,另外也不符合我想实现的视觉层级。

于是乎我放弃Tabbar实现。转而使用一个普通的View。那么我就需要解决底部渐变的问题。既然官方不提供,那就只能自己实现了。我尝试过几种不同的方案,也包括Metal Shader,但效果不佳,最后发现Design+Code有这个: Progressive Blur in SwiftUI

这个实现方案有点意思,它使用QuartzCore框架的CAFilter能力。首先创建一个"CAFilter",这个Filter接受几个参数:

  • inputRadius: 表示高斯模糊程度,数字越大越模糊
  • inputMaskImage: 用来被模糊的图片
  • inputNormalizeEdges: 为true代表要对模糊的边缘进行平滑过渡处理

这样通过调整inputRadius我们就能动态调整模糊的程度。

inputMaskImage则是一个利用CIFilter生成的,透明度从0到1的一张黑色图。这样当alpha为0时,完全不模糊,alpha为1时,进行最大模糊。

那么这个Filter对谁作用呢?UIVisualEffectView

UIVisualEffectView里有一个CABackdropLayer,这个layer可以实现实时的模糊处理。拿到这个Layer之后,对其应用上面创建的CAFilter即可获得渐进式模糊效果了。

具体的代码来自这个GitHub Repo,核心代码是这个: https://github.com/nikstar/VariableBlur/blob/main/Sources/VariableBlur/VariableBlur.swift

 class VariableBlurUIView: UIVisualEffectView {

    public init(maxBlurRadius: CGFloat = 20, direction: VariableBlurDirection = .blurredTopClearBottom, startOffset: CGFloat = 0) {
        super.init(effect: UIBlurEffect(style: .regular))

        // 我们用Objective-C runtime创建一个CAFilter,因为是私有API我们只能动态创建
        guard let CAFilter = NSClassFromString("CAFilter")! as? NSObject.Type else {
            print("[VariableBlur] Error: Can't find CAFilter class")
            return
        }
        guard let variableBlur = CAFilter.self.perform(NSSelectorFromString("filterWithType:"), with: "variableBlur").takeUnretainedValue() as? NSObject else {
            print("[VariableBlur] Error: CAFilter can't create filterWithType: variableBlur")
            return
        }

        // 这里创建一个0-1 alpha的渐变图片
        let gradientImage = makeGradientImage(startOffset: startOffset, direction: direction)

        variableBlur.setValue(maxBlurRadius, forKey: "inputRadius")
        variableBlur.setValue(gradientImage, forKey: "inputMaskImage")
        variableBlur.setValue(true, forKey: "inputNormalizeEdges")

        // 通过`UIVisualEffectView`拿到`CABackdropLayer`,然后我们针对这个layer应用上述Filter
        let backdropLayer = subviews.first?.layer
        backdropLayer?.filters = [variableBlur]

        // 这里去掉VisualEffectView的其他细节效果
        for subview in subviews.dropFirst() {
            subview.alpha = 0
        }
    }

    private func makeGradientImage(width: CGFloat = 100, height: CGFloat = 100, startOffset: CGFloat, direction: VariableBlurDirection) -> CGImage { // much lower resolution might be acceptable
        // 这里创建一个0-1 alpha的渐变图片
        let ciGradientFilter =  CIFilter.linearGradient()
//        let ciGradientFilter =  CIFilter.smoothLinearGradient()
        ciGradientFilter.color0 = CIColor.black
        ciGradientFilter.color1 = CIColor.clear
        ciGradientFilter.point0 = CGPoint(x: 0, y: height)
        ciGradientFilter.point1 = CGPoint(x: 0, y: startOffset * height) // small negative value looks better with vertical lines
        if case .blurredBottomClearTop = direction {
            ciGradientFilter.point0.y = 0
            ciGradientFilter.point1.y = height - ciGradientFilter.point1.y
        }
        return CIContext().createCGImage(ciGradientFilter.outputImage!, from: CGRect(x: 0, y: 0, width: width, height: height))!
    }
}

最后,可以实现如下渐变模糊效果,结合ScrollView可以实现实时动态模糊。虽然效果不如系统的Tabbar自带的,但已经稍微可以接近了。

Vol. 146 闲聊加州WWDC25之行

2025-06-29 21:44:27

Justin加州WWDC最后一期,最近美国的浓度有点高,本期应该是最后一期了。

前面两期节目,一期和科技早知道聊WWDC25的内容,另一期主要是和朋友聊CapWords的,其实这趟旅程有十来天,发生了挺多事情。包括在WWWDC现场的一些Developer Activities,Apple Park建筑的感受,优胜美地旅行的体验等等。

录制本期节目的时候苹果的F1还没上映(上图为Justin在Apple Park跟电影里的车子合影),等本期节目播出的时候应该已经热火朝天了。当时WWDC现场有去Steve Jobs Theater看电影的活动,很可惜等我看到的时候已经被抢完了没法去看,只能等国内上映了😢

Anyway,欢迎收听美国之行的最后一期,这趟旅程充饱电了,我们继续更新!

时间轴

  • 00:00:00 开场
  • 00:02:09 新冠后的WWDC和之前有何不同
  • 00:08:01 Alan Dye的新设计: Liquid Glass 液态玻璃
  • 00:18:26 新设计是为了新硬件?
  • 00:22:39 乔布斯故居
  • 00:23:59 WWDC领Badge当天的开发者活动
  • 00:26:28 第一次进Apple Park的感受
  • 00:32:12 有没有遇到有意思的人?
  • 00:36:40 优胜美地之行,山火,攀岩,穿越瀑布
  • 00:45:47 恰逢加州示威游行
  • 00:48:09 现场看John Gruber的The Talk Show
  • 00:51:00 同性恋爱结婚自由,All-Gender洗手间
  • 00:53:58 苹果制作的F1电影
  • 00:57:47 和不同性格的人一起长途旅行,可以学到挺多
  • 01:04:24 Justin最近在写公众号短文
  • 01:15:07 About Dream Life
  • 01:19:08 跟优秀的人在一起,就会想要变得更优秀

幕后制作

联系我们

节目收听方式

推荐使用苹果Podcast, 小宇宙等播客客户端搜索“枫言枫语”来订阅收听本节目。