DevLog:2026年12月5日

1、昨天引入RichTextKit,替换了目前的备忘录模块,但依然未能正常进行构建测试,在Xcode中构建时发现存在两处错误,再次反馈给Cursor并修改后构建成功

2、测试发现目前的确已经可以实现富文本编辑器的部分功能,比如设置加粗、下划线、删除线、文字颜色、字体、对齐方式,但工具栏中的斜体、字号大小,还有一个不知道是啥按钮,点亮和取消都没有看到什么变化,而且需要先选中文字,再从菜单里选“Format——More”才能在窗口底部弹出格式工具栏,感觉不够直观,需要缩减菜单层级

3、反馈后Cursor把工具栏改成了常驻在标题和编辑器之间,但在Xcode中多次构建都存在错误,猜测可能是Composer 1模型的问题?于是把Cursor中的模型切换回了Auto再试,但在修改过程中又把格式工具栏给我改回了自定义的NSAttributedString,测试发现其中的按钮基本都没有用,于是要求Cursor用RichTextKit内置工具栏RichTextFormat.Toolbar替换自定义实现

4、这下RichTextFormat.Toolbar常驻在备忘录详情页的标题和编辑器之间了,但格式工具栏高度有些夸张了,我希望能把第一行(包含加粗、斜体、下划线、删除线、字号)常驻,其他按钮先折叠起来,在第一行按钮后方增加一个向下的箭头,点击可以展开完整的工具栏

5、Cursor在使用RichTextContent的API、RichTextStyle枚举、RichTextAction,并保持与RichTextKit的兼容性的同时,实现了我的需求,工具栏默认折叠,只显示第一行常用按钮,点击箭头可以展开更多选项,效果还可以

6、接下来添加一个支持深度思考的模型,测试思考内容的流式输出和展示是否正常

7、插播另一个话题,在使用Cherry Studio询问“有哪些比较好用的跨端开发框架”时,发现使用Cherry Studio调用百度千帆平台的DeepSeek API时,响应速度和回答速度都非常慢,回答一个问题可能需要四五分钟的时间,但直接调用DeepSeek官方的API就没有问题,看了下我在百度千帆上的费用还有47块多,消耗的速度好慢

8、说到跨端开发框架,DeepSeek推荐用Flutter,支持iOS、Android、Web、桌面(Windows/macOS/Linux),高性能、重热载、组件库丰富、生态强大,缺点在于需要学习Dart语言(有Cursor,这个不算缺点)、包体积较大、Web端体验较差(无所谓,我也没打算上Web端),看起来的确是最符合我需求的跨端开发框架

9、之前移动端的ChatWith一直无法全屏显示,多次修改也无果,决定就用它开刀了,看能否在Cursor里使用Flutter框架,把它改成跨端应用,先搞好iOS端,再搞Mac端

10、询问Cursor如果我想把ChatWith改成用Flutter框架的话,可行性如何,Cursor认为目前应用的功能在Flutter中均可实现,核心功能在Flutter中均有对应的方案,我比较关注本地存储和Markdown渲染,本次存储上,Cursor建议对话数据用sqflite数据库,配置用shared_preferences,Markdown渲染用flutter_markdown或markdown_widget,且Flutter的Markdown包更成熟,但是,需要完全重写,无法复用Swift代码

11、Cursor还推荐了如下技术栈:

核心框架:Flutter SDK(最新稳定版)

状态管理:Provider或Riverpod(推荐 Riverpod)

网络请求:dio(支持流式响应)

本地存储:shared_preferences (配置)、sqflite (对话数据)

Markdown渲染:flutter_markdown

UI组件:cupertino_icons (iOS风格图标) 、flutter_slidable (滑动操作)

并且推荐完全迁移,优点在于跨平台、长期维护成本低,缺点在于需要重写所有代码

12、继续询问,如果按照Cursor的建议完全迁移,并使用Cursor推荐的技术栈的话,让它分析了一下详细的迁移计划和项目结构建议,它直接写了三个文档:FLUTTER_MIGRATION_PLAN.md(迁移计划)、FLUTTER_CODE_EXAMPLES.md(代码示例)、FLUTTER_QUICK_START.md(快速开始),可能Cursor认为我自己会参考这三个文档来开发吧,先这样,接下来让Cursor来进行迁移

vivo X100 Ultra半年使用体验:安卓应用生态有多混乱?

这些年我陆续换过多次手机,早期曾经用过小米1、三星Galaxy Note 2、LG G4,以及一段时间的金立S5.1,是当时比较有代表性的几款安卓手机。系统方面除了手机原本的系统之外,也给三星刷过锤子和阿里云OS等不同的系统,后来也是不想再折腾了才转投苹果阵营,陆续用过了iPhone 7、iPhone XS、iPhone 12、iPhone 15 Pro Max四代iPhone。

但苹果这几年的更新的确乏善可陈,还有一些存在多年的问题一直没能改掉,所以逐渐有了再试试现在的安卓手机的想法。关于vivo X100 Ultra和OriginOS 5的使用体验,我会拆分成几篇来写,都放在一篇里实在太长了。

其实这些应用生态方面问题,在我以前用安卓手机时就有,到现在仍然没有得到很好的解决,且这些问题并非局限于这款机型,应该说安卓系统的手机都存在这些问题。

第一,应用获取渠道很分散

先说应用安装环节,系统自带的应用商店会出于多种原因不提供某些应用的下载,还需要其它应用商店的补充。而且即使安装多个应用商店,也不能保证能下到所有自己想用的应用,因为有些应用只在自己的官网提供下载。

这段时间我在手机上安装了多个应用商店,分工如下:

vivo应用商店:国内常用的应用基本都能下载到,安装和更新也方便,不需要频繁手动确认;

Google Play:可以下载大部分国外应用和一些国内应用的国际版(或者说纯净版),且安装和更新不需要手动确认,但仍有部分国外应用会受限于区域,不提供下载(比如谷歌的Gemini、任天堂的Nintendo Today),还需要切换区域;

APK Pure:补足Google Play缺少的或因区域限制不提供的应用,缺点在于但APK Pure应用本身广告太多,很容易误点,且混杂了一些山寨应用,更建议去它官网下载应用的APK文件,再传到手机里安装;

应用宝、豌豆荚:两个老牌的三方应用商店,和vivo应用商店配合,能搞定所有国内常用的应用了(但豌豆荚被Google Play提示“此应用企图绕过Android的安全保护措施”,我已经把它删掉了)。

此外,还有一些应用不会上架任何应用商店,需要去官网甚至GitHub下载。

与之相比,虽然iOS上仅能通过App Store下载应用,但只要有外区ID,基本上各种应用都能下载到,真正做到了一个应用商店搞定所有需求,安装环节基本不存在碎片化问题。

第二,应用更新渠道也很分散,且版本成迷

用习惯了iPhone之后,需要更新应用时就会很自然地在App Store里更新(当然大部分时候都会自动更新,很少去手动检查更新)。但在OriginOS,或者说是绝大部分安卓系统魔改版上,仍然存在一些应用更新方面的乱象,具体来说:

vivo应用商店、Google Play、APKPure、豌豆荚、应用宝五个应用商店都可以更新应用,但提示有新版本的应用都不一样。比如在Google Play已经更新了所有应用,vivo应用商店仅检测到一款应用需要更新时,APK Pure仍有39款应用需要更新,应用宝提示有25款,豌豆荚提示有6款,到底谁更准呢?

部分应用在不同应用商店提供的版本不完全一样,比如在国内应用商店下载的DeepSeek,在Google Play中会提示“该应用并非来自Google Play,因此应用体验可能会有所不同,可以通过原始安装渠道更新该应用,也可以通过Google Play重新安装。”针对不同的区域推出不同版本也是正常的,苹果的App Store也这么干。但如果都是面向国内用户的应用,还会在不同应用商店提供不同版本,就很让人纠结。

部分应用自己可以更新,在检测到新版本时就会提示,可以自己下载更新,再手动确认安装,但也不是所有的应用都可以自己检测并下载更新。还有些应用在某个应用商店提示有新版本,在应用内检测更新却提示无更新。

有些应用即使刚刚从某个应用商店下载安装,首次打开时就会提示有新版本,怎么,我下载的不是最新版本?

一些系统自带的应用,比如钱包、vivo健康、蓝心小V,有新版本时应用商店里不会提示,反而要在应用内的设置中更新,进一步加剧了应用的碎片化。至少应该保证这些自有应用都统一在vivo的应用商店里更新吧?

还有一点,Google Play的保护机制可以检测设备中应用的风险情况,我安装的应用里,可灵AI和豌豆荚都被提示“此应用企图绕过Android的安全保护措施。”提示豌豆荚有风险我能理解,可灵AI为啥也会遇到这种问题?

第三,应用设计很不统一,缺少iPhone上的一致感

比如,iOS上的应用操作方式一致,比如在屏幕顶部点一下,列表页就能回到最顶端。OriginOS 5有部分界面支持该操作,比如相册中的照片列表、系统设置、通讯录、通话记录等等,也有部分三方应用支持,但是点击触发的位置、动画效果、回到顶端的速度等等都有一些差异。即使都是系统自带的应用,在动画效果上也有明显的区别。还有有一些应用还不支持该操作,比如百度贴吧。

比如,一些应用对当前版本的安卓支持不够好,可能是基于之前版本的安卓开发的?有些应用好不容易搞到了APK文件却因为版本问题无法安装,或安装之后打开会闪退,无法使用。还有某些应用中会出现比较早期的UI元素,与其它应用和系统本身的设计格格不入。

再比如,应用图标的设计风格在有些界面极度不一致,在vivo X100 Ultra上查看文件时选择“用其他应用打开”,会出现这种”诡异“的画面,圆角图标、直角图标、圆形图标等等各种图标混在一起,甚至圆角图标的圆角也都不一样,真的是毫无美感。

这么说吧,iOS上的每个应用都按照苹果的想法来设计,而在安卓上,每个应用都各有各的想法。

从最近几年各个手机厂商推出的新系统版本来看,安卓手机厂商们已经在努力追赶苹果了。但这个过程肯定没有那么快,尤其是应用生态混乱这种长久以来的积弊,并没有那么快能改善,从头开始构建应用生态的成本既不是一家公司能够承担,也不是存量用户能够忍受的。

关于这段时间使用vivo X100 Ultra的其它体验,接下来几篇再谈。

最初发布于2025年4月14日