<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>火影忍者 on 念闻轩</title><link>https://www.siyuanxu.com/tags/%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85/</link><description>Recent content in 火影忍者 on 念闻轩</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Fri, 31 Jul 2026 23:43:22 +0800</lastBuildDate><atom:link href="https://www.siyuanxu.com/tags/%E7%81%AB%E5%BD%B1%E5%BF%8D%E8%80%85/index.xml" rel="self" type="application/rss+xml"/><item><title>她说想看《火影忍者》，我便做了一个播放器</title><link>https://www.siyuanxu.com/naruto-player-for-her/</link><pubDate>Fri, 31 Jul 2026 23:43:22 +0800</pubDate><guid>https://www.siyuanxu.com/naruto-player-for-her/</guid><description>从妻子一句“想看《火影忍者》”开始，我借助 Vibe Coding 做出了一款装在 iPad 上的私人播放器。</description><content:encoded><![CDATA[<p>事情的起因很简单。</p>
<p>我老婆想看《火影忍者》。</p>
<p>115 里存着完整的七百二十集，文件一个不少。可“拥有七百二十集”和“舒舒服服地看七百二十集”，显然不是一回事。每次都去网盘里找文件，名字长短不一，播放起来也谈不上从容。</p>
<p>我便想，不如给她做一个专门的播放器。</p>
<p>这个念头若是放在过去，大概也就到此为止了。做一个网站尚且可以想象，做一个真正装在 iPad 上的应用，便像是另一回事。那里面似乎有许多门槛，门槛后面还有门槛。一个人站在门外，看上一会儿，往往也就回去了。</p>
<p>但这一次，我用了 Vibe Coding。</p>
<p>我没有先去买一摞书，也没有从第一行代码开始苦学。我只是把自己的想法说出来：这是给我老婆用的，她习惯横着拿 iPad；我希望打开以后就能找到想看的那一集；坐飞机没有网络时，也应该照样能看。</p>
<p>AI 读懂现有项目，写代码，检查问题，再把做好的应用装到 iPad 上。我负责说清楚自己想要什么，也负责在用过以后告诉它：这里不够顺手，那里还可以更好。</p>
<p>就这样，一个原本只在脑子里的念头，真的出现在了她手里的 iPad 上。</p>
<p><img alt="火影忍者 iPad 应用首页" loading="lazy" src="https://assets.siyuanxu.com/i/YTZlbggvsudLbBTI.webp"></p>
<p><em>应用最终的样子：没有复杂的入口，打开便能看到“继续观看”和完整系列。</em></p>
<p>Vibe Coding 对我最大的帮助，并不只是少写了一些代码，而是缩短了“想到”和“做到”之间的距离。</p>
<p>过去，一个想法刚冒出来，紧跟着便是一连串问题：要学多久？从哪里开始？我真的能做出来吗？想得多了，事情还没有开始，人已经先疲倦了。</p>
<p>现在却可以先把它做出来。</p>
<p>最初只是一个网站。后来发现浏览器播放某些视频并不痛快，于是又做成了 iPad 应用。她用着，偶尔说一句哪里不方便，我便继续和 AI 商量。应用就在这些很自然的对话里慢慢长大。</p>
<p>中间当然也有不顺利的时候。有时自动播放到了下一集，只听得见声音，画面却没有跟上。可这些问题不再像从前那样令人望而生畏。把现象说清楚，找到原因，改掉，再装回 iPad 上试一试，也就是了。</p>
<p>后来，我甚至在深夜随口提了一句：</p>
<p>“播放这一集的时候，能不能先把下一集准备好一点？”</p>
<p>不久以后，这个想法也真的出现在了播放器里。当前一集播放时，下一集会在后台预先缓冲开头十五秒。片尾结束，它不必临时起床、洗脸、找衣服，早已经站在门口。</p>
<p>我对这一点颇为喜欢。</p>
<p>不是因为它有多么了不起，而是因为一个刚刚说出口的念头，竟然很快就变成了手里可以使用的东西。过去很难想象这样的事，现在它却越来越自然。</p>
<p>当然，AI 并不是挥一挥手，一切便自动妥当。想做什么，仍然要由我决定；做出来的东西好不好，也要由真实使用它的人判断。它会误解，会绕路，有时修好一个地方，又从另一个地方冒出问题。</p>
<p>但它是一个极有耐心的合作者。</p>
<p>你可以随时同它讨论，可以推翻刚才的方案，也可以忽然改变主意。它不会嫌问题太小，也不会因为你不是专业开发者，便把你挡在门外。</p>
<p>这是一种很特别的自由。</p>
<p>从前，我们常常因为不会某种技术，便默默放弃一个想法。现在，人可以先从自己的需要出发。至于那些陌生的工具和复杂的细节，可以一边走，一边解决。</p>
<p>播放器后来有了名字，有了图标，也有了正式版本。</p>
<p><img alt="火影忍者播放器图标" loading="lazy" src="https://assets.siyuanxu.com/i/R7I2aO_WHv9JFfjS.webp"></p>
<p><em>一团旋转的火光，中间放着播放键。它没有直接使用动画人物，却保留了一点忍者世界的气息。</em></p>
<p>项目最终被放进了私有的 GitHub 仓库。它不是什么宏大的产品，没有商业计划，也没有改变世界的志向。它只是把散落在网盘里的七百二十集动画，整理成了一个我老婆愿意打开的地方。</p>
<p>可我很喜欢这样的项目。</p>
<p>它不是从一份郑重其事的需求文档开始的，只是从一句普通的话开始：</p>
<p>“我想看《火影忍者》。”</p>
<p>然后另一个人回答：</p>
<p>“好，我给你做一个。”</p>
<p>有人问，花这么多工夫，只为了做一个播放器，值得吗？</p>
<p>这问题并不难回答。</p>
<p>少年时看鸣人，总觉得喜欢一个人，就该说许多漂亮的话。年岁稍长以后才明白，话当然可以说，事情也还是要做。</p>
<p>她在看她的《火影忍者》，我坐在旁边，继续同 AI 商量播放器还能怎样改得更好。一个念头刚说出口，不久便真的出现在她手里的 iPad 上。</p>
<p>过去很难想象这样的事。</p>
<p>如今它已经发生了。</p>
<p>这便很好。</p>
]]></content:encoded></item></channel></rss>