Tw93✓

@HiTw93

Pake · MiaoYan · Kaku · Waza · Kami · https://t.co/PAsOstTehy

284 Following165K Followers11.5K Posts
  1. Tw93✓@HiTw93
    Mole for Windows is finally here, a Windows app that feels well made. It cleans thoroughly, removes apps with their leftovers, maps your disk and shows live status, all on your PC, no ads. $15.20 at launch, $10 for Mole for Mac owners with MOLEAGAIN.
    Download
    12537543254K
  2. Tw93✓@HiTw93
    Mole tells you what your cleaned space would cost at Apple's storage upgrade price. I'm at $1,300 so far. Hover the Clean number at the bottom of the menu bar panel to see yours. How much have you saved?
    Download
    70154.5K
  3. Tw93✓@HiTw93
    Kaku shipped 9 releases in October, mostly on remote access. Run kaku remote and your Mac's terminals, running Claude Code sessions included, open in a browser on another device, and it now works with touch, on the web page and over remote desktop.
    Download
    61326K
  4. Tw93✓@HiTw93
    假如把我的 AI Coding 经验沉淀成一些最佳实践规则,可以给到大伙复用,会是怎么样的,于是乎,今天一下午我就在琢磨这个事情,手写反复调整后给到大伙,可以让你和你的 Agent 一起去学习。 需求 1. 从技术实现细节编程转变成许愿式编程,现在模型能力已经住足够强大,你只需要大胆把自己想法说出来,给它提足够高的要求和任务,不要担心 AI 实现不了。 2. 多给你的 Agent 讲做这件事情的背景和目标,少替他考虑技术细节,告诉它为什么要做,是给谁用的,做成什么样子你认为是最好的,具体的技术细节让它自己去判断,学会放手。 3. 优先用业界最好的模型,用差模型浪费的时候,一来回让你很不高兴的干活,二来也浪费了很多时间。 4. 要不要做一个新功能以及加一个新配置、开关的时候,让 Agent 来先问你找你确定,没有人用的功能、开关、文案都不要让他去加,慢慢把这一套你的产品规范让他沉淀起来。 5. 你的想法可以很大,但是让 Agent 干活的时候,尽量让他每次拆分成最小的可用功能版本,不要一次写非常多的代码,即使提交,这样出问题了你可以随时撤回。 规则 6. 让你的 Agent 了解你的说话风格,比如说看看、分析一下这个问题的时候,它只需要去读代码分析问题不要去改代码,你说修复、修改的时候才去动手,每次提交、发布和删除的时候都找你确定。 7. Agent md、CLAUDE md 里面除去重点的项目型要求外,只写代码里面看不出来的那种规则,以及之前被否决过的方案也可以分流进去。对你而言密钥和 token 不要贴给 Agent,贴了就当已经泄露了,立马去更换一个。 8. 对于Agent必须遵守的规则不要完全信 prompt,可能会拦不住,一定要用规则脚本去限制,让它真实跑一遍通过后才算完成了。 编码 9. 开始写代码之前,先让 Agent 讲清楚要改什么地方,会影响到什么功能和效果,这样是为了补充你的上下文,方便后面更好判断决策做什么。 10. 一定要让 Agent 基于项目补充一个能够让自己验证各种结果的脚本,每次特定的时候需要去跑一下验证效果,完成功能后需要检查,让他输出结果给你看,并基于此逐步沉淀你的项目 Agent 测试功能集。 11. 假如有多个 Agent 同时干活的时候,让他们各自用一份独立的 worktree 代码目录,同时提交的时候只提交自己改的代码,不要碰他人的代码,等到各自改完合到一起,再完整跑一遍测试。 排查 12. 修 Bug 的时候先找到原因再去动手,假如两次都没有修好,就去加一些日志看真实的数据以及运行效果,不要盲目去猜问题在哪儿。 13. 假如尝试修复了3次还不对,直接清空上下文重新写清楚你的问题、诉求,以及尝试过的解法让 Agent 重新开始。 审查 14. 让写代码的 Agent 和 Review 审查代码的 Agent 分开,保持解耦,这样一方不会被另一方带偏。 15. Review 代码的时候最多让 Agent 跑 3轮,防止跑着停不下来,第二轮开始只看新改动的地方,不要再把之前 Review 的再看一遍。 16. 对于你和 Agent 判断危险的改动,越危险让他查得越深,特别对于删除、付费、发布这种单向门改动你都需要自己去看一遍,点一下,看实际效果。 发布 17. 每次提交的时候,让Agent 写清楚做了什么,怎么去验证这个改动,除了问题怎么来回滚,用于给到后面开发过程中 git 记录本身就是 Agent 的一个非常好的上下文。 18. 需要对外的功能,可以先给自己用,或者给一批愿意尝鲜的用户使用,不要一上来就全量,可以在你的软件里面假如 beta 更新的开关,防止全量有问题,也是对用户负责。 18. 先给自己和愿意尝鲜的人用,没问题再发给所有人。 复盘 19. Agent 需要对每一个线上 Bug 和用户反馈的问题都留一个测试案例,每次上线前都来跑一遍,防止继续踩坑,包括你换模型的时候也可以把这些旧问题全部都跑一遍,看看模型是否还行。 20. 修复问题的时候,让 Agent 学会举一反三,把同类的问题一起修复掉。优化功能的功能,完善视觉的时候也是一样,防止只改一个地方,忘记了其他的地方。
    Download
    971401.2K53.8K
  5. Tw93✓@HiTw93
    Posts @HiTw93
    请 AI 机器号不要再这个下面评论,我的 Bot 在自动拉黑你们,当然假如有误删,欢迎找我,非常抱歉。
    Download
    60194.5K
  6. Tw93✓@HiTw93
    Tw93
    RT @HiTw93: I started MiaoYan in 2020, and six years later it's on iPhone and iPad too. It's a native Markdown editor written in Swift, one App Store purchase covers Mac, iPhone and iPad with the same iCloud Drive folder, and the Mac app stays free and open source.
    06028.1K
  7. Tw93✓@HiTw93
    笑死了,居然经常小伙伴问我如何把自己改造得不这么程序员,以及刚好双十一怎么买一些衣服来搭配一下,哈哈哈,真没想到系列,刚好这里理一理分享给大伙,说不定用得上。 首先我认为不是先去买衣服,而是搜索一下周边比较不错的理发店,可以是之前自己理发价格的 double 的那种,然后约一个 Tony 老师,问问他你的头型适合什么发型,然后让他帮你设计一下,好好剪一下,不需要染发烫发,我认为这个反而是最低成本让自己看着清爽舒服一点的性价比最高的方式,遇到不合适的,就后面多找几个Tony试试,或者问问身边你感觉头发剪的不错的朋友在哪儿剪的。 然后第二步,才是买衣服,听我的一定一定假如是非在家穿的衣服,尽量不要选择优衣库、MUJI,之前几年我喜欢极简,买了不少 MUJI,现在看着有一种老大爷衣柜的感觉,除非你和金城武长得差不多,那就可以随便穿,特别是优衣库性价比非常高,但是剪裁其实一般,很难把你撑起来,不知道自己适合哪一个品牌,一定一定不要网购,而是去线下的商场转转,找在外面看着还不错的,进去找到导购给你推荐搭配,或者带上你的女友一起去,让他帮你选选,线下试衣服非常重要,因为可以帮你搭配里面穿的,外面穿的以及裤子一起来看,会好不少,也会让你自信不少。 说到选衣服,之前我犯了一个错误,特别喜欢三叶草、匡威这类,这几年感觉三叶草的设计越来越不好看了,匡威的鞋穿着又重又脚疼,首先衣服鞋子得穿着舒服,因为舒服你才愿意穿,不然放在那儿就吃灰了,这也是为啥需要线下试的原因,最近两年买了不少,尝试了一些还不错的品牌,假如家附近线下有,可以去试试。 说到品牌,我不太喜欢那种太贵的,感觉不值得这个价格,记得有一个冬天想买一个外套,去可隆试了试,看是好看,一看价格3000多,真不知道是谁给他的勇气,买不起买不起,当然我个人感觉 LULU 其实也不适合程序员,适合真搞瑜伽的,而且价格贵,店里太香了不是很喜欢。除了太贵,当然也不建议你买太多太便宜的,反而放到那儿浪费空间,可以买那种看着有点小贵但是质量非常好的。 假如你喜欢户外运动类的,很推荐去试试安踏冠军这个品牌,最近买了2条他家的裤子和一双鞋子,非常舒服好穿,也没有原来的 Logo,完全可以当做鸟的平替,而且版型很好。想买冬天衣服也可以是去试试哥伦比亚,偏老牌,虽然没有现在营销品牌那么潮,但是我认为很耐穿耐看。然后纯户外那种,我非常推荐 Montbell,国内线下店不是很多,假如你去日本旅游一定要去看看,他家不贵,但是衣服穿着也很舒服暖和耐穿,版型也适合亚洲人。然后假如想更户外一点,推荐Patagonia 巴塔,个人感觉很有型,质量也非常好。实在找不到适合自己的,也可以去 Nike 他家的 Jordan 这个子品牌看看,有些我感觉也不错。 假如你喜欢偏休闲类的,上面聊到不要去买优衣库MUJI外,也不推荐去买那种商场看着很小众性冷淡的那种衣服,我踩过坑,价格小贵质量很差,试穿时候感觉不错,穿一段时间就很旧的感觉,休闲类的也非常推荐去线下试试,比如想买牛仔裤,可以去 Levi's 让导购推荐适合你身材的,想买稍正式一点的,可以去看看 拉夫劳伦、Lacoste、Tommy、COS、Timberland,虽然看着有点年纪大,但是一般都可以挑出适合你的来,品质我感觉都不错,一定要多试,找到自己最最喜欢的。 关于鞋子,还是优先最舒服的,然后看是否好看,是否搭配你经常穿的衣服,之前我挺喜欢 Timberland 家的一些鞋子,迪桑特家有几双鞋子也很舒服,他家衣服太贵了不建议买,然后安踏冠军家的一些跑步鞋运动鞋很舒服很耐穿,然后 Keen 我感觉也有几双好看的,丑帅丑帅的那种,虽然不软但是穿着我冬天穿感觉还挺舒服的,亚瑟士家也有几双好看舒服的鞋子也可以去看看,不过我没有买过 Hoka、萨洛蒙、昂跑这几个品牌,每次想买,去试了试感觉都不是很适合我,就放弃了,当然你可以试试,不过我感觉都有点小贵。 最后,最有效的还是尽量让自己不胖,人到中年,不胖不掉头发不油,每天洗澡洗脸,每天换衣服,干净一点反而比上面选衣服更好,然后稍微大太阳的时候防晒一下,然后睡好一点,多喝水,找一个自己喜欢的运动,我喜欢的运动是骑车,几乎每天骑10km的样子,非常舒服,不像其他运动那么无聊。 碎碎念终于完成了,有一点像假如你把自己也当做一个产品来做,如何改造你的产品让他看着舒服一点,不别扭,其实也和这个差不多。
    Download
    671227831.6K
  8. Tw93✓@HiTw93
    看一下今晚发布的新 iPad mini8,立马冒出一句话苹果是在哪儿进货的 2026 年的还是 60hz 的 OLED 屏幕的? 依然觉得我这两个小设备最适合我,完全可以不换 mini8 或者 duo 了。
    Download
    62525794.4K
  9. Tw93✓@HiTw93
    222627324.2K
  10. Tw93✓@HiTw93
    潮流周刊居然已经写了 6 年多了,发布到了 287 期了,AI 时代前的产物,比 ChatGPT 的发布还早 2 年,欢迎大伙有事没事去看看 ,找找有没有自己顺手的工具、不错的文章以及围观我的封面拍照,哈哈。 最近做了两个有意思的迭代,第一个是对于真人的体验,网页打开的加载速度、点击预加载、流量节省、图片自适应清晰度有了不少提升,让你不管电脑和手机打开都有非常好的阅读体验。 还有一个有意思的迭代,就是让 AI 更好的可以阅读我的文章,甚至你可以让你的 Agent 直接来读这个域名,然后让他每周一推送最新的一篇给你应该问题也不大,甚至你想找一个好用的工具直接让 Agent 去这个上面查查应该也可以找到不错的,这里给 AI 搜索的友好性了做了不少工作,让你的 AI 直接读取到的是 md 而非 html。 也非常期待,后续读我周刊的 AI 和 真人的数量差不多,这样就非常赛博朋克了!
    Download
    241014614.2K
  11. Tw93✓@HiTw93
    Mole CLI just passed 72.8K stars, and October is its busiest month yet: 18 releases across Mac and Windows. The Windows CLI now matches the Mac one, any AI agent can drive it with the official skill, and mo slim strips Intel code from universal apps.
    Download
    21713927.3K
  12. Tw93✓@HiTw93
    听过这首非常老的歌的请举手
    Download
    62111220.5K
  13. Tw93✓@HiTw93
    给关注者比较多的小伙伴一些建议。 假如你以后想做自己的独立产品,那就不太建议你去接商单,一方面这可能是你未来用户不喜欢的点,另一方面会让你感觉还是自媒体来钱快,可能弄独立开发就坚持不下去了。 假如你以后想做更好的自媒体,其实非常辛苦,那非常建议接商单时候认真体验,尽快让用户看到的和你体验的一样,碰到喝事实不吻合的单子果断拒绝,或者帮助甲方一起完善后再发。 因为你平时肯定也会持续发好内容,然后夹一些商单,但是只要一次你的商单效果和用户体验差距很大,你的关注者会认为你在骗他,这样后续你发的更多非商单好内容,很多用户也会认为这可能是商单,非常容易先入为主,索性不看了。 因为我们自己身份也是各种产品的用户,也是关注者,还是被关注者。
    Download
    49521229.8K
  14. Tw93✓@HiTw93
    刚刚做了一个非常简单但有用的事情,几句话把我的 Android 小平板上的系统广告、无用通知、牛皮藓图标、以及没有用的预装应用全部干掉了,非常适合当你刚买了Android 手机、平板,或者是给你的家人来优化手机,现在我的 Android 小平板非常干净了。 首先把 Android 机器使用自带数据线连接 Mac,然后输入我这段优化了的话给到你的 Claude 或者 Codex,然后就等着他去操作就好了。 请通过电脑连接我的安卓手机或平板,识别品牌、系统版本和已安装应用,帮我做一次减少广告和打扰的优化。 1. 关闭广告和推广 检查系统及应用中能关闭的广告跟踪、个性化广告、内容推荐、热点资讯、营销优惠、福利活动和功能推广,包括负一屏、系统搜索、锁屏、浏览器、应用商店等入口。 2. 保留有用的通知 优先按通知分类关闭推广,保留聊天、邮件、订单物流、支付、账户安全、日历、天气预警、系统更新,以及 AI 回复和任务完成提醒。不要一刀切关闭整个应用的通知,用途不明确的先保留,原本关闭的不要擅自开启。 3. 更换营销图标 把带促销文字、节日或周年装饰的图标换成干净的经典图标,例如淘宝、京东、拼多多、哔哩哔哩。优先使用系统自带的图标设置,OPPO/ColorOS 可以检查「设置 > 桌面、锁屏与个性化 > 图标 > ART+ 图标」。其他品牌先核实支持情况,不盲目安装图标包或更换桌面启动器。 4. 精简系统设置和预装应用 关闭不需要的推广入口和使用体验计划。盘点预装应用,对明确不需要、可安全停用且能够恢复的应用优先停用;卸载前列出名称和影响让我确认。不要仅凭近期没使用就删除,不要动系统桌面、更新、安全、安装器、账户、备份和设备互联等基础服务。 5. 整理桌面 参考近期使用情况,建议哪些应用留在首页或底栏,哪些归入购物、工具、影音等文件夹。先给具体排列方案,确认后再移动。 可以直接执行明确、可恢复的广告和通知设置调整。不要清除应用数据或改动代理、网络设置。每项修改后验证是否生效,最后简要列出已修改、保留和无法处理的项目,不把关闭广告跟踪说成去除了所有广告。
    Download
    776761054.5K
  15. Tw93✓@HiTw93
    今天去线下摸了摸,感觉质感和尺寸都非常好,在折叠屏里面应该是最好的,但是我觉得还是有点重了,还是更喜欢我的 Air。
    Download
    4626125.4K
  16. Tw93✓@HiTw93
    AI 的确让应用的迭代速度大幅增强,但是对于普通用户而言,好像更新意愿却不高,看看大伙的 App Store 有多少应用没有更新的?
    Download
    3402113.8K
  17. Tw93✓@HiTw93
    这个珍妮曲奇饼干好好吃!
    Download
    100386.2K
  18. Tw93✓@HiTw93
    Mole CLI 开源版本最近更新了非常多的很不错的功能,想着这个推一起告诉大伙,持续迭代,当然非常高兴一转眼已经 72.5K Star 了! 首先首先,Windows 版本的 CLI 经过最近密集的 7个版本迭代,集中迭代了非常多功能,终于终于和 Mac 版本的使用对齐了,也发布了真正的正式版本,包括也同步了非常多原有 GUI 版本的绝大部分功能,有 Windows 机器小伙伴甚至直接 scoop install mole 就可以安装使用。 然后然后,终于终于,Mole CLI 有官方的 Skills 了,同时支持 Mac 和 Windows 版本,你可以直接让你的任何 Agent 说 “Install Mole for me by reading 就好了,非常方便,这样你可以和你的 Agent 一起来清理维护你的电脑,包括卸载软件。 再次再次,还有一个有意思的功能,你可以使用 mo slim,可以帮你删除通用 App 里面的 Intel 代码,可以非常直观的进一步帮你删除没有用的东西,非常欢迎试试。 最后最后, Mole CLI 也同步了我当时做 App 时候手工测试的 800 多款 Mac 软件的卸载、清理通用规则,以及 Windows 400 多款测试的规则,一并给到大伙使用,因为我一直认为 CLI 和 GUI 只是两个不同形态的产品,由于 GUI 可以做很多 CLI 做不了的好功能,但是 CLI 胜在简单,可以被 Agent 很好使用,一视同仁会更好,两个会一起持续打磨,做最好用的Mac 和 Windows系统维护优化工具!
    Download
    241324318.2K
  19. Tw93✓@HiTw93
    3 篇终于连载完啦,小伙伴点击进去,我把内容在评论串起来了,哈哈,今日学习任务来咯
    Tw93 @HiTw93
    发现不少小伙伴很好奇我是怎么用 Mac 来开发Windows软件的,以及Windows软件现在一般用什么技术栈来实现,刚好有空,来和大伙随便聊聊关于多客户端下技术选择的思考以及我的一些想法。 以下是第一篇,给大伙介绍介绍各种桌面、移动端开发技术的选择以及对应选择的思考。 做过前端客户端的小伙伴应该都知道,这些年端的开发一般是这三条路。 第一种最简单方便的是,直接写 Web 代码,塞到浏览器就能跑,包括早年的 PhoneGap、Cordova 就是把网页塞进一个原生壳里,然后提供一些bridge的能力让js可以调用到一些原生的能力,比如唤起手机摄像头这类的 Web 不好做的事情。 第二种是跨端开发,也就是好多年前大家经常听到的一码多端,当时移动端有 React Native、Weex 这一类技术,当时主要是为了解决 Web 性能差的问题,一份代码同时打包出 iOS 和 Android,这里国内大厂使用跨端技术还有一个非常大的原因就是动态化和热更新,讲的土一点就是可以绕过商店审核直接下发新页面,这也是国内跨端在当时移动互联网高速发展时特别流行的重要原因。 桌面端大家熟悉的就是 Electron,大家熟知的现在不少AI桌面端、VS Code、Slack 是用这个做的,代价是相当于每个应用都自带一份 Chromium 和 Node.js,安装包一百多 MB,内存也占得多。但好处是在 Chromium 渲染引擎的统一下能够很好的保持多端的展示一致性,加上里面写的代码非常好写,后续不少桌面的速成就会用这个技术。 跨端后面也慢慢延伸出更多有趣的解决方案,类似Flutter 自己实现一套渲染引擎,早期靠 Skia,现在换成了自研的 Impeller 渲染引擎来保障多端一致和性能效率的均衡,包括桌面端上老牌的 Qt,和 Flutter 一样自己画界面。 这两年桌面跨端也出现了用 Rust 写的 Tauri、Go 写的 Wails,他们和 Electron 不一样的地方就是,他没有塞一个Chromium进去,而是使用的系统自带的 WebView,包会小非常多,但是整体还是基于 Web 这一套研发思路和对应实现语言去进行桥接交互,但是由于系统 Webview 每个平台不一样,Windows 上是 WebView2,Mac 上是 WKWebView,Linux 上是 WebKitGTK,所以多端显示的一致性反而不如 Electron,还是要写兼容代码。所以这种情况下,即使 Electron 很大内存占用也不低,还是会被选择更多。 第三种是原生开发,也是没有 AI之前,大家觉得开发难度很大的一种方式,特别是之前的苹果系使用的 Objective-C,Android 系使用的 Java、Windows 系 C、C#,均是我认为需要科班花非常多时间去学习、看书、手编代码,要想做得好,需要花大量时间研究对应的系统底层原理,能够方便你写出相比普通研发性能更好更稳定的代码,在我看来是前期投入大,后期用户很享受的技术,我当时17年时候刚工作 2 年多的时候,职业发展比较爽的一个很大原因是我抽了半年时间学习 Objective-C 和 iOS 研发,让我自己本质前端的工作提前往跨端方向走了,刚好可以解决一些这两个工种结合的不能解决的难题,也是我当时做一线开发非常快乐有趣的时间。 等到后面 Swift + SwiftUI、Kotlin + Jetpack Compose、C# + WinUI 3 慢慢出来成熟后,这些原生端语言的写法也慢慢像高级语言靠齐,也更易写了,声明式代码更短、更好读了。但是在国内完全被 React Native、Flutter、Electron 的广泛使用被盖过去了,导致开发者不多,生态发展完全靠官方推动,从而出现了出活很快,但是大家普通感觉怎么用久了卡卡的缘故的一个很大的原因,同时还占大头,而且想迁移到原生假如之前架构实现不好大概率只能重写,完全不能复用,实现得好比如说你把业务逻辑早就抽出,类似 Kotlin Multiplatform 这类方案把业务逻辑共享、界面各写各的原生,算是第四条路,也是最近几年的趋势。 聊到这里大家应该大概明白了,这里也有一个不可能三角,就是研发效率、体验、性能这三者,选择 Web 是多效率少性能,选原生是多性能体验少效率,选跨端就是刚好是这三者取一个中间,做得好容易都占,做得不好,容易没有一边占到好处的尴尬局面。 那么在 AI Coding 写代码已经不是问题的情况下,我们应该选择啥技术呢?很多时候也取决于你的场景,比如你就是一个 Web 场景的浏览、点点按钮、阅读这一类 Web1.0 阶段的东西,那还是非常建议直接 Web 技术来弄;假如你需要调用到系统底层的能力,或者需要操作更顺手更好分发,以及本身就是一个应用的场景,我还是非常建议使用原生技术来实现,这样可以第一时间享受到系统官方本身的众多调优,以及最原生的交互效果、最低的内存占用,加上 AI 让写两份原生代码的成本大幅下降,三角形的效率那一边被补上了,只是两个平台的调试和验证变成了新的成本,这里正是人需要重点做的事情了。 当然假如实在技术选型不那么重要,工作量非常之大,以及业务效果远大于技术体验选择,选择跨端技术也是可以的,这样快,迭代发布也快,可以第一时间让你的用户收到你的最新的特性更新。 不过说到底,技术是给业务服务的,最终还是需要往解决问题方向走,好比抢演唱会门票,大家不会关注你这个客户端怎么这么卡,只会关注我用你能不能抢到票,即使你做得十分顺畅,但是抢不到票也是会被骂得很惨,技术栈的选择在这里就选的好变成了锦上添花的工作,最终还是需要优先保障用户的最真实需求的解决,然后做好这里,再去想,我如何让用户体验更好,接下来才是考虑我是否需要使用原生技术来实现。 一下子居然写了这么多,明天继续来聊,想给大伙来分享我是如何在 Mac 上搭建了一套研发 Windows 原生软件的环境,以及我对于 Windows /Mac 多端研发上的一些踩过的坑以及最佳实践,哈哈,欢迎交流,我们来聊聊不问 AI 自己脑袋里面的技术栈选择,挺有意思。
    50337.2K
  20. Tw93✓@HiTw93
    发现不少小伙伴很好奇我是怎么用 Mac 来开发Windows软件的,以及Windows软件现在一般用什么技术栈来实现,刚好有空,来和大伙随便聊聊关于多客户端下技术选择的思考以及我的一些想法。 以下是第一篇,给大伙介绍介绍各种桌面、移动端开发技术的选择以及对应选择的思考。 做过前端客户端的小伙伴应该都知道,这些年端的开发一般是这三条路。 第一种最简单方便的是,直接写 Web 代码,塞到浏览器就能跑,包括早年的 PhoneGap、Cordova 就是把网页塞进一个原生壳里,然后提供一些bridge的能力让js可以调用到一些原生的能力,比如唤起手机摄像头这类的 Web 不好做的事情。 第二种是跨端开发,也就是好多年前大家经常听到的一码多端,当时移动端有 React Native、Weex 这一类技术,当时主要是为了解决 Web 性能差的问题,一份代码同时打包出 iOS 和 Android,这里国内大厂使用跨端技术还有一个非常大的原因就是动态化和热更新,讲的土一点就是可以绕过商店审核直接下发新页面,这也是国内跨端在当时移动互联网高速发展时特别流行的重要原因。 桌面端大家熟悉的就是 Electron,大家熟知的现在不少AI桌面端、VS Code、Slack 是用这个做的,代价是相当于每个应用都自带一份 Chromium 和 Node.js,安装包一百多 MB,内存也占得多。但好处是在 Chromium 渲染引擎的统一下能够很好的保持多端的展示一致性,加上里面写的代码非常好写,后续不少桌面的速成就会用这个技术。 跨端后面也慢慢延伸出更多有趣的解决方案,类似Flutter 自己实现一套渲染引擎,早期靠 Skia,现在换成了自研的 Impeller 渲染引擎来保障多端一致和性能效率的均衡,包括桌面端上老牌的 Qt,和 Flutter 一样自己画界面。 这两年桌面跨端也出现了用 Rust 写的 Tauri、Go 写的 Wails,他们和 Electron 不一样的地方就是,他没有塞一个Chromium进去,而是使用的系统自带的 WebView,包会小非常多,但是整体还是基于 Web 这一套研发思路和对应实现语言去进行桥接交互,但是由于系统 Webview 每个平台不一样,Windows 上是 WebView2,Mac 上是 WKWebView,Linux 上是 WebKitGTK,所以多端显示的一致性反而不如 Electron,还是要写兼容代码。所以这种情况下,即使 Electron 很大内存占用也不低,还是会被选择更多。 第三种是原生开发,也是没有 AI之前,大家觉得开发难度很大的一种方式,特别是之前的苹果系使用的 Objective-C,Android 系使用的 Java、Windows 系 C、C#,均是我认为需要科班花非常多时间去学习、看书、手编代码,要想做得好,需要花大量时间研究对应的系统底层原理,能够方便你写出相比普通研发性能更好更稳定的代码,在我看来是前期投入大,后期用户很享受的技术,我当时17年时候刚工作 2 年多的时候,职业发展比较爽的一个很大原因是我抽了半年时间学习 Objective-C 和 iOS 研发,让我自己本质前端的工作提前往跨端方向走了,刚好可以解决一些这两个工种结合的不能解决的难题,也是我当时做一线开发非常快乐有趣的时间。 等到后面 Swift + SwiftUI、Kotlin + Jetpack Compose、C# + WinUI 3 慢慢出来成熟后,这些原生端语言的写法也慢慢像高级语言靠齐,也更易写了,声明式代码更短、更好读了。但是在国内完全被 React Native、Flutter、Electron 的广泛使用被盖过去了,导致开发者不多,生态发展完全靠官方推动,从而出现了出活很快,但是大家普通感觉怎么用久了卡卡的缘故的一个很大的原因,同时还占大头,而且想迁移到原生假如之前架构实现不好大概率只能重写,完全不能复用,实现得好比如说你把业务逻辑早就抽出,类似 Kotlin Multiplatform 这类方案把业务逻辑共享、界面各写各的原生,算是第四条路,也是最近几年的趋势。 聊到这里大家应该大概明白了,这里也有一个不可能三角,就是研发效率、体验、性能这三者,选择 Web 是多效率少性能,选原生是多性能体验少效率,选跨端就是刚好是这三者取一个中间,做得好容易都占,做得不好,容易没有一边占到好处的尴尬局面。 那么在 AI Coding 写代码已经不是问题的情况下,我们应该选择啥技术呢?很多时候也取决于你的场景,比如你就是一个 Web 场景的浏览、点点按钮、阅读这一类 Web1.0 阶段的东西,那还是非常建议直接 Web 技术来弄;假如你需要调用到系统底层的能力,或者需要操作更顺手更好分发,以及本身就是一个应用的场景,我还是非常建议使用原生技术来实现,这样可以第一时间享受到系统官方本身的众多调优,以及最原生的交互效果、最低的内存占用,加上 AI 让写两份原生代码的成本大幅下降,三角形的效率那一边被补上了,只是两个平台的调试和验证变成了新的成本,这里正是人需要重点做的事情了。 当然假如实在技术选型不那么重要,工作量非常之大,以及业务效果远大于技术体验选择,选择跨端技术也是可以的,这样快,迭代发布也快,可以第一时间让你的用户收到你的最新的特性更新。 不过说到底,技术是给业务服务的,最终还是需要往解决问题方向走,好比抢演唱会门票,大家不会关注你这个客户端怎么这么卡,只会关注我用你能不能抢到票,即使你做得十分顺畅,但是抢不到票也是会被骂得很惨,技术栈的选择在这里就选的好变成了锦上添花的工作,最终还是需要优先保障用户的最真实需求的解决,然后做好这里,再去想,我如何让用户体验更好,接下来才是考虑我是否需要使用原生技术来实现。 一下子居然写了这么多,明天继续来聊,想给大伙来分享我是如何在 Mac 上搭建了一套研发 Windows 原生软件的环境,以及我对于 Windows /Mac 多端研发上的一些踩过的坑以及最佳实践,哈哈,欢迎交流,我们来聊聊不问 AI 自己脑袋里面的技术栈选择,挺有意思。
    Download
    674660971K
  21. Show more posts