重新入了 Apple Silicon Mac 后我之前在 Windows 上最喜欢的修图 app “泼辣修图”它居然几乎无法使用了!无法多图导入,好不容易导入后却疯狂提示空间不足,退而求其次一张一张修,最后没想到原先仅需 15 分钟干完的事情居然花了半个多小时,忍了两天后终于下定决心,要不然还是自己做一个吧。

背景

两周前 M2 Air 终于发售了,可惜却没有了那种期待的感觉,因为这 1.1 万的配置我越想越不值得,也尝试说服自己学一学那些带货 up “你都快一年不想买 M1 Pro,那就说明你一直不需要”,差点我也真的就掉进这坑里去了。其实需求一直在,只是在等待。

我思来想去反反复复的与自己做了思想斗争,是否真的还需要一台 mac。属于自己的 mac 在去年 11 月就以非常实惠的价格出手给了学弟后一直用公司电脑苟着,但政策越来越紧缩,几乎每次全员安全通报都有信息泄露的事件,虽然也快到时间了但我真不想通过这种方式离开。在这过去大半年的时间里,除了工作外我一直都在全时间段使用 Windows 进行娱乐和学习,Windows 做这些事情非常合适,但就有一种莫名的不适应。

如果只是娱乐,偶尔写写东西它都没问题,确实没有遇到过任何一次死机、蓝屏和卡顿,甚至稳定性还超过了我上一台 MBP i5 13-inch,虽然这两台设备都是几乎一样的价格。这跟我之前对 Windows 的印象全然不同,可以说正是这台雷蛇把我对 Windows 的偏见给消除了。但也仅仅如此,使用 Mac 到现在已经整整七年的时间,我绝大多数对笔记本的使用习惯也已经被 Mac 培养了,现在工作中因为转到了 PC 开发,一直在逼迫自己必须使用 Windows,对 Windows 在开发层面上怨言已经少非常多了。

简而言之,macOS 和 Windows 是两个完全不同使用习惯的系统,让任何一个在某一平台上已经长期使用了七八年的人突然换到另外一个平台上,都会有不适应的地方,如果预算充足就都要。那么之所以没有入 M1 Max 是因为去年我就是 M1 Max 的首发用户,将近 3 万价格我觉得自己不配用这么好的,当时尝鲜杜比视界视频素材的我也没有从 M1 Max 上尝到太多甜头,第 13 天的时候退掉了,现在重新入了教育优惠后仅需 1.38 的标配版,心里平衡了不少。

与一直都是网友相待的大哥 Dandy Weng(Vary app 创始者,我参与开发了两年的产品)见面后给了自己很大的触动。我是 18 年的夏天了解到了他的故事,我们年龄相仿只差一岁,细节我就不说了希望大家有空的时候都来看看,这是他的个人主页,这是他的博客

在和大哥吃饭的过程中,我一股脑把之前对他的所有困惑都抛了出来,总的来说,这次谈话是坚定我重回独立开发者道路的重大事件。别看我一直打着独立开发者的名号,但每次说出这个词时自己都很犯怵,因为自己一个 app 都没有上架,仅仅开源了几个半成品而已。我一直都觉得这种直接开源的方式更 geek,我从开源社区中汲取营养,最后把成果再反哺回去,需要的人自行 build 一下就可以用了,但这种方式并不符合独立开发者的规范,应该要更近一步把这些作品都发布出去才对。自己一直没有迈出这一步,确实是我的个人原因。

因为我担心走向这条路后会使得自己目前的生活状态被改变,比如可能会没有时间去看书、去思考,甚至没有时间在下班后去运动、去骑车,过去的这三年工作时间里,如果没有骑车这项运动来调节我一定会十分郁闷。其实我并不喜欢去处理与用户之间的沟通,因为一个好的产品设计是不需要教的,用户会自行学习如何使用,当一个功能需要用图例、动画甚至视频的方式去引导用户使用,这里面一定是出了问题。

内容型产品主动权不在开发者手上,所以需要维护好和用户的关系,需要“运营”,在一定内容口碑积累后杠杆效应更强。但工具性产品不同,只要你的产品功能足够强大,满足用户在各种叠加操作后依旧稳如泰山,再结合用户养成依赖习惯后用户根本跑不掉的这一特性,基本上工具性产品可以开始健康循环,但前提一定得撑住,功能要都正常。我之前一直在思考如何去做一个内容型产品,可能是思维定型,觉得做什么东西都应该连接人和人,却忘了解决问题才是本质。

大哥选择了一条我曾经确信自己同样也会走向的道路,以前一直觉得我们是一路人,做着一样的事情,只是我还在学校,我刚毕业而已,但这一次谈话却非常明显的感觉到我们已经彻底不是一路人,做着也完全不同的事情,他一直在坚持着当初我所羡慕的道路,当初大哥的事迹给了我无数的鼓励,每次想到或者看到原来这大千世界里还有如此的人过着与我完全不同的生活时,这世界变得越发可爱了。

谈话过程中我也透露出了“很明显,我被环境改变了”的感受,变得小心谨慎,变得平庸,甚至有点变得当初热血沸腾时讨厌的自己,但目前我还能够进行自我反思说明底层的“根”还没被改变,还知道什么东西错的。和大家一样,我非常反感那些以自己短暂人生经验来告知你该如何如何,而不该如何如何的人,但工作中你身边的人就是会这样,就是会以他们少得可怜、并不光彩的所谓经验来告诉你要怎么做,如果是工作上的事情我接受,因为这是工作,我愿意放下所有来学习你的经验。好在自己也成长了不少,学会只看优点,远离缺点,如果还是当年的我,这些人没个几篇文章几集播客是过不去的。

我真的非常希望大家去多多了解 dandy 的生活方式,真的很不一样。

“泼辣修图”是一个从 UI、功能上都满足了我的产品,在 Windows 上表现得很不错,除了在切换图片时有些慢以外我还没发现其他问题,原本以为在 macOS 上搭配 Apple Silicon 会有质上的飞跃,没想到居然如此拉胯。

第一步就被劝退,哪有人修图是一张张导入修完后再一张张导出的啊!我只是选择了几十张图片,一点导入就卡死,刚开始怀疑是不是图片本身太大了,压缩过程走的是同步引起的,后来只选择了 5 张,这回倒是不卡了,但导入完成后却出现了空间不足的提示…

我又开始怀疑是不是自己的设备真的空间不足,退出所有 app 后确认 Activity Monitor 没有多余的占用,再次导入 5 张图,令人窒息的提示出现了,依旧是空间不足。接着开始怀疑是不是出 bug 了,可能功能全都是正常的只是没适配 Apple Silicon 而已。关掉弹窗后继续使用,各种 Filter 确实是正常的,但居然没法切换下一张了!

好吧,为了赶紧把照片都修完只能勉强采用一张张导入,再一张张导出的傻办法了,这个时候我内心已经开始不满了。经过了 20 张图后整个人都不好了,一次外出玩耍相机卡里会拍几十甚至一两百张照片,一张张导入再筛选,如果发现是废片还得重新导入,时间都耗在这了,后来我还是先在文件夹里选好值得修的照片再导入。

那天晚上本来高高兴兴,但这半个多小时却一直在骂娘。

终于修完所有图片发到微博后,总算结束了。但此时的我已经被折腾得不行,总感觉自己虽然在用 2022 年的设备但使用方式是 2000 年。在上了个厕所的途中,脑海中突然冒出了“既然泼辣修图这么菜,要不然自己做一个吧!”。

本来重新提的 M1 Pro 是用来写另外的 app,没想到第一个 app 却先写了这个。

PhotoP

PhotoP 是一个专注于 macOS 的修图工具。 为什么是 macOS?首先是 Windows 的笔记本屏幕素质我还没遇到能跟 mac 抗衡的,之前使用那台雷蛇笔记本的屏幕明显感觉到饱和度过高,其次是我还没完全接受 Windows,暂还不想把自己的未来托付在这个平台上,有太多我并不理解的交互杂糅在一起了,最后是 macOS 的开发我并没有完整意义的开发过作品,虽然目前工作上也是跨平台,但我想试试 Native macOS 开发,上一个基于 AppKit 的小作品是编译原理的大作业 demo

其实在 PhotoP 之前我也写了一个完全照着泼辣修图抄的 demo,字如其意,毕竟是“像素级复制”就不放图了。当时觉得泼辣修图很好用,UI 上给到了自己很多可以学习的点,也想着加深 Qt 和 QML 的使用,做一些比较骚的 UI,就顺手做了一部分,现在也没完成,如果大家感兴趣可以来这里查看

目前我对 PhotoP 1.0 的定位就是完全取代自己在泼辣修图中的所有调节诉求,做到完全取代泼辣修图,啥时候彻底可以让自己不再惦记泼辣修图啥时候上线。目前第一个测试版中只是把基础功能跑起来了,解决了泼辣修图中无法导入多图进行连续编辑的问题,再补上了一些自己之前同样在泼辣修图中会使用的参数调节入口,比如压高光,去雾等等。

总共的开发时间不满两周,从 7.31 拿到我的新 M1 Pro 开始产生了想法,第二天就开始准备,直到今天凌晨 1 点提交 Test Flight Review。这段时间里因为一直在广州封闭开发,平常根本容不得自己有太多额外的想法,只能下班回到酒店游游泳保持下身体状态后,抓紧时间写上那么一两个小时,几乎每天也都在凌晨中才睡去。

这种状态是我之前极力避免的,但过去这么长的时间来看,如果不通过这种方式去挤时间,我自己个人的业余时间会完全被其他事情所占据,比如我宁愿出去骑车也不愿意熬到凌晨继续写代码,熬夜写代码这种事情之前干的太多年了,也就这两年才摆正,已经把自己的身体状态调整得十分健康了,但过去的这两周因为熬得比较晚,身体又开始有表现了,这也是我为什么一定要尽早结束掉第一个测试版的原因之一,鱼和熊掌不可兼得啊!目前 PhotoP 提供的功能有:

多图导入。你可以直接导入 1000 张图片,总量 100 GB,PhotoP 都不带怕的,可以说的是,我用了一个非常取巧的办法,这一点已经干爆泼辣了。

没有压缩,保存原图。使用过修图软件的大家应该都知道这个痛,就不细说了。

基本调色。目前提供的调色入口有“饱和度”、“自然饱和度”、“亮度”、“曝光”、“对比度”和“去雾”,还差一个“色温”没加上,下一个tf 包就会加上,这些调色能力都是我平常会用的,目前也暂时只做到满足我自己的诉求为主,后面正式上线后再开放入口给大家提需求,甚至我们一起来写都没问题!

PhotoP 就完全是按照自己的想法和设计来,以优先满足自身需求出发,先把我自己服务好了自己用爽了才能让大家一起爽。现在第一个测试版本比较粗糙,但基本上满足了平常修图过程中需要使用调节功能,后面还会根据自己的需求继续完善,在写这篇文章的过程中顺带干掉了 Xcode 默认配置的 Menu,真的很烦人,这个改动也会在下个测试版中和大家见面。

后续计划

设计

PhotoP 可能还暂时不会寻找额外的设计资源,在 1.0 上线之前也会先暂时按照我自己的设计品味去实现。要是以前的话,我会寻找一份可商用的免费 icon 往上套就完事了,但现如今 Apple 提供了非常漂亮的 SF Symbols 供开发者使用,非必要不新增。目前我也具备了一定的基础 UI 设计能力,应付 PhotoP 这种类型的工具型产品是完全没问题的。

功能

这可差得太多了,对比泼辣修图简直天地之差,PhotoP 这是属于刚造完的孩子,眼睛都没睁开。第一个测试版简单到我都不太好意思去宣传,其实能第一时间看到这篇文章的你,说明我们关系都还不错,有机会的话一定一定要多给我提意见,我也想听听看你对修图工具的使用思考。

我有一个相对详细的路线图,记录了大致要做的事情。可以明确的跟大家说,PhotoP 一定不可能做成 lightroom 或者 photoshop 那般专业修图/设计工具,我没有能力也没有精力,不可能自嗨到那个程度。但近期而言,完全取代我自己在泼辣修图中所进行的操作是一定没问题的。

时间

我没有时间,对,这点非常难受。原本打算下周五回京,没想到组织上还想要我继续出差一个月到九月中旬,连忙拒绝,再这样下去我对广州都没好感了,我需要尽早回归到正常的生活状态。虽然现在正在做封闭做一个我之前想都不敢想的事情,但还是尽量争取在国庆前完成 PhotoP 1.0 上线吧。

随着对这个社会对这个世界的了解更多,越发的觉得自己时间不够用,越来越不想把自己每天憋在写字楼里写那些我自己都不用的产品,当初大一时觉得每天能每天写代码是一件多么酷炫的事情啊!但时间长了才发现,写那些你自己根本就不想写的代码是多么的令人痛苦,令人焦虑,令人折磨。

所以上文也说了我业余绝大部分的时间都不会再搞技术了,不是不想搞,而是不想把所有的时间都花在上面,业余时间如果要搞就要搞类似 PhotoP 这样精挑细选过的,因为这个世界真的很棒,有非常多有趣的事情等着我们去体验,gap year 的时间可能真的要到了,骑上我心爱的自行车…所以咧,在 PhotoP 上投入的时间精力对于我来说真的是个非常大的问题,如果正在看这篇文章的你对 PhotoP 也有想法,真的非常欢迎一起搞事情,技术实现上不是问题,我们可以一起解决。

毕竟做一个自己喜欢的产品去修自己拍摄的照片,也是一件人生美妙之事啊!

参与测试

第一版功能比较简单独立,我还没做好准备让大家使用的准备,也没准备好大规模 testFlight 外部测试,如果你感兴趣的话,可以把你的 AppleID 邮箱账号发给我 Mac 下载好 TestFlight 后点击这个链接加入测试,尝鲜试试。

总结

唉,其实写这么多,写到这里才发现其实就是在说服自己要坚持,重新回去再看了一遍自己发布在 github 上那些开源的产品,居然开始羡慕起了当初充满如此多天马行空想法还能一一实现的自己,那时候的我到底是抱着多大的信念入的行啊!如果当时的我知道三年后的自己会变成这般样子,三年前的我还会让自己一股脑的进入这个行业么?

环境真的会改变人,很庆幸自己工作上能够换一个团队,正是因为平常工作中做的和解决的事情都是工具向,图形图像相关才能给到自己这种“大不了写不出来请同事吃饭请教请教”的想法去做,我也不知道这次换团队后给自己的改变冲击余力到底有多大,静待奇观。

写到此处时,酒店房间窗外珠江景