-
11-092026
置顶红米K40(MIUI 12.5)彻底禁用系统更新教程
拒绝强制更新!对强制系统更新的流氓行径说“不”! 前不久,我将手头的红米K40从澎湃OS强制降级回了MIUI 12.5(V12.5.19.0.RKHCNXM),过程可谓是一波三折。由于是未解…
-
11-062026
置顶从付费证书到零成本:我的博客 HTTPS 迁移记录
博客上线几年,一直跑在 http 上。直到前几天想把站点的分享卡片和图片引用理一理,才发现混合内容规则把 http 站点拦在外面,索性把 HTTPS 一起办了。 证书这块,最初看到的是 Jo…
-
11-112026
Flutter 从零开始(十):动画体系,从 Implicit 到 AnimationController 的一条线
这周把「点开卡片展开详情」那个交互返工了一次。第一版全是 AnimatedContainer,高度、圆角、背景色各写一份过渡,看起来挺完整,直到我加了「按住往下拖」这条需求:手指停在中间的时…
-
11-052026
Spring Security 入门:用一个小项目串起登录、JWT 和权限控制
前一阵我把 Spring Security 的登录、角色、权限这条链路重新捋了一遍,写了一个叫 springsecurity-hello 的小项目。它不复杂:五张表、一个登录接口、一个 JW…
-
11-042026
Flutter 从零开始(九):本地存储与离线优先,几种方案各自的边界
这周处理了两条反馈,都不是崩溃。 第一条来自一个老用户:他手机上有一份没同步出去的草稿,升级到新版本之后打开草稿箱是空的。数据没被删——是我改了 drafts 表的字段,而本地那个库文件早就…
-
11-022026
Flutter 从零开始(八):导航与路由,从 Navigator.push 到 go_router
我这周处理的一条反馈很没道理:用户在联系人详情页点「同组的人」进另一个详情,再按 Android 的返回键,回到的不是刚才那个列表,而是首页。两个页面本身都正常,控制台一行报错都没有。 查下…
-
10-282026
Flutter 从零开始(七):数据模型与 JSON 序列化,从手写映射到代码生成
上一篇把网络层收拢之后,我手上剩下一个更难看的角落:model/contact.dart 那个文件。十二个字段,一个类里三段——成员声明、fromJson 里十二行 json['x'] as…
-
10-262026
Flutter 从零开始(六):网络层怎么封,dio 拦截器与错误处理
我那个通讯录 App 的网络层,第一版是每个页面自己 Dio().get(...),catch 里各写各的提示。功能都能跑,我也没觉得有问题,直到后端把 token 的 header 名从 …
-
10-222026
Spring Batch 做跨网数据同步:chunk、批量写入和作业元数据
我维护着一个把考勤数据从源库同步到目标库的批处理服务。两个库不在同一个机房,中间隔着一条 RTT(一次网络往返的耗时)约 41ms 的链路;外部调度器每半小时调用一次 HTTP 接口触发作业…
-
10-212026
Flutter 从零开始(五):列表与滚动性能,从 ListView.builder 到 Sliver
我做的第一个带长列表的页面,是本地通讯录的展示,两百多条联系人,一帧都不掉。等到接上服务端接口、数据涨到三千条,手指按住屏幕往上拖,列表就开始一顿一顿。那时候我的第一反应是「Flutter …
-
10-192026
Flutter 从零开始(四):布局这件事,其实是父级给约束、子级定尺寸
我刚开始写 Flutter 的时候,调布局的手法跟当年写网页差不多:宽度不对就套一层 SizedBox,挤了就减 padding,改一轮跑一轮看效果。字体放大一档、或者换到平板,之前调好的间…
-
10-142026
Flutter 从零开始(三):setState 的边界在哪,什么时候才真的需要状态管理
前两篇我都在讲怎么把界面搭起来,这一篇讲那个「界面之外的部分」:数据放在哪、谁能读到它、它变了谁跟着变。 我是从「项目里第三个把回调函数往下传的文件」开始认真想这件事的。在那之前我对 set…