自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

恋猫de小郭的博客

公众号「GSYTech」,GSY 系列开源项目负责人,Github :https://github.com/CarGuo

  • 博客(539)
  • 收藏
  • 关注

原创 从台下到台上,我成为 GDE(谷歌开发者专家) 的经验分享

以前台下客,如今台上人,曾惊鸿一瞥,今再会旅程。2022年5月末,经过一个多月的面试,我的 GDE (Google Developer Expert) 终于正式成功通过面试,成为了国内第 4 位 Flutter & Dart GDE。由于时间原因,目前在官方的 experts/directory 可能还没同步,预计要一两个星期。成为 GDE 有什么好处相信对于 Android 或者 Machine Learning 的开发者来说 GDE 应该是一个很熟悉的头衔,GDE 是 Go.

2022-05-27 11:17:30 4446 5

原创 iPhone Duo 适配详解,需要改变的不止是布局模型

看了下官方的适配 Duo 设计指引,苹果的指南还真有点东西,看的头皮发麻,比如 Duo 下,外屏和内屏最好不能是两套 UI ,应用应该做到支持持续适应当前拥有的空间界面效果。外屏、内屏、半折、Split View、横向摆放或者两个 App 并排,总体来说都是同一个问题:App 的窗口尺寸和可用区域正在变化,只要应用能够正确支持 resizing,然后支持使用系统导航和布局组件,Apple 认为大部分 App 都可以做到 Duo 适配。比如外屏的比例和传统 iPhone 有明显区别,又宽又矮,所以 Apple

2026-09-12 10:49:32 145

原创 Shopify 从 React Native 回到 Swift/Kotlin,但是你以为有手就行??

然后 Shopify 做了一次实验,一开始先让团队做了一次 Proof of Concept,然后一个工程师花了一周时间,让 Coding Agent 根据现有 React Native 应用重建 SwiftUI 版本,之后项目继续扩大到六人,从 PoC 到新的 Swift/Kotlin Shop App 正式进入 App Store 和 Google Play,花了 12 周。错误可以出现,但是必须能尽可能被 AI 发现,然后 Error 就不能越过 checkpoint。

2026-09-11 10:50:59 69

原创 Dart Skills CLI 1.0 :AI 时代的 Dart 交付支持

在 1.0 的开发过程里也加入 「安装时检查 package security advisories」 的机制,同时限制了 package Skill 来源到直接依赖, 不过从工程上看,团队还是需要把 Skill 当成依赖内容的一部分进行审查,特别是里面存在可执行脚本、修改项目文件或者调用外部命令时,不然还是容易存在安全风险。这里其实就有了一个很有意思的变化,比如以前 package 的版本号约束的是“代码和 API”,现在同一个版本号开始间接约束。

2026-09-09 11:35:50 176

原创 Flutter 状态管理基准测评,一个很有趣的观点

比如如果只写一个循环,让 Riverpod、Provider、Signals 连续通知 10000 次,这样很容易得到一张漂亮的吞吐量排行榜,但是实际毫无意义,这种测试对真实 App 场景毫无帮助。真实情况下,用户点一下按钮,状态改变一次,接下来真正吃时间的通常是哪些Element被标成 dirty、多少个build()被重新执行,还有这些 Widget 后面有没有继续引起 layout 和 paint。

2026-09-08 08:43:38 330

原创 OpenAI:GPT-6 开始你需要给 Skill 和 AGENTS.md 做一次大扫除了

按照目前的 AI 情况,可能我们一年前建立起来的 CLAUDE.md、AGENTS.md、rules、Skill、system prompt,到了现在可能反而都是累赘,所以我们应该在每次模型升级之后,根据不同模型重新评估下整个 Prompt 的可靠性。也就是说,启动时模型会先拿到每个 Skill 的 name 和 description,Codex 还会带上文件路径,如果模型判断某个 Skill 和当前任务匹配以后,就会再读取完整 SKILL.md,创建和检查 PostgreSQL migration。

2026-09-07 08:56:33 274

原创 AI 时代,也许你的 Flutter 需要一套 Dartastic OpenTelemetry 监控

先简单说说 OpenTelemetry,大家应该不陌生,它是一个供应商无关的开源可观测性框架,可以用于检测、生成、收集和导出遥测数据,比如 traces、metrics和 logs 等,因为 OTel 是中立性开源工具,所以它可以和各种可观测性后端一起使用, 包括 Jaeger 和 Prometheus 这类开源工具或者其他商业化产品。。

2026-09-03 09:16:08 346

原创 Flutter A2UI 深度解析,它是怎么提供动态生产力的,然后为什么 A2UI 不只是 Flutter

实际上 Client-Side Functions 在 A2UI 里一直很重要,因为你只生产纯展示类 UI 就很局限了,但是比如 AI 根据用户要求生成一个订单页面,而页面里有数量输入框、单价、折扣、税费和总价,这时候如果用户把数量从 2 改成 3,总价本身也应该能实时变化。也就是用户把数量 Slider 从 2 改成 3,DataModel 会更新,然后依赖这个值的函数表达式重新求值,新的价格在客户端生成,相应 Widget rebuild,这里整个过程里 Gemini 可以完全不参与。

2026-09-02 09:41:00 175

原创 Android 17 + OkHttp 5.5.0 ,全新 ECH 下你的 HTTPS 域名可以请求时被安全隐藏

所以就算操作系统具备 ECH 能力,也还需要 App 使用的网络库主动接入,Android App 的 HTTPS 请求可能来自 OkHttp、Cronet、WebView、自研 C++ 网络栈或其他运行时,所以系统无法自动改写所有网络库的 DNS 和 TLS 流程。这可以降低攻击者或错误配置诱导客户端静默降级到明文 SNI 的风险,服务端 ECH 密钥轮换后,如果客户端拿到过期配置,OkHttp 也会验证外层公开域名的证书,再接受服务端给出的新配置并重试,而不会对任意网络错误直接关闭 ECH。

2026-09-01 16:32:57 499

原创 AI 时代,一个优化 Flutter 的重复代码工具 Deslop

现在基本都在用 AI 写代码,但是实际上 AI 经常缺少全局意识,甚至你就算写了规则,它也不一定遵守,比如一个昨天就看到一个网友发的这个,感觉就挺典型了:这次情况下,你如果没有仔细 Review ,有可能不知不觉里项目就已经整了一大批相似代码,比如相同的 Loading、Error、Snackbar、日期格式化和 Repository 转换逻辑。然后就是用在这个方面,它会解析 Dart 代码的语法结构,然后通过规则找到完全相同、变量改名后相同、局部修改后相似的代码,。是的,最重要的就是这个提供查询。

2026-08-31 09:01:35 367

原创 看懂大模型架构术语,帮助你理解目前常见的大模型开源架构

最近 GLM 5.3 Flash、Qwen 3.8 Flash、Hy4 Preview 都扎堆发布,一些术语介绍看的很多人都说什么玩意,那就干脆简单聊聊这些东西是什么,主要是能至少理解这些是什么东西,知道有啥用。首先最基础的而且最常见的一些简单术语就有:最后就是权重大小,例如腾讯 Hy4 的 770B/49B,这里 770B 权重都要放进 GPU 显存或者内存,粗略计算,比如 770B 的 BF16 权重大概需 1.54 TB(770B × 2 Byte ≈ 1.54 TB),如果是 FP8 就是接近 77

2026-08-30 19:46:48 373

原创 Firebase 如何让全球 Android 和 Flutter 开发者集体 Build Fail

那 Kotlin 的 Andorid 也一样要挂,这个等于是一个长期存在的 bug , Firebase Auth AAR 发布时漏了 Checker Framework 编译依赖,直到 FlutterFire 6.6.0 的 Kotlin 重写和 Kotlin 2.4 类型推断组合才发现问题,只能说这种 Bug 太典了,之前没问题只是没诱因,很多低级错误都是不知不觉沉淀下来的。的类型,需要读取 Firebase SDK class 文件里的完整类型信息。前几天看到这个的时候都无语了, 24 号发布的。

2026-08-28 08:57:04 194

原创 Flutter 多窗口支持类型和 API 介绍

这么多年了,官方终于正式把多窗口 API 单独拿出来说了,两年前 Canonical 开始负责 Flutter PC 端的开发和维护之后,多窗口也一直是它在推进,目前的完成的设计主要围绕五种窗口类型展开 regular、dialog、tooltip、 popup 和 satellite 窗口:其中普通的 Regular 常规窗口就不用说了,基本默认的多窗口下都会用到类似的窗口能力:其次是 Popup 窗口,Popup 主要提供类似独立窗口菜单的功能,属于子窗口,可以有输入焦点,用户可以通过方向键在下拉菜单里

2026-08-27 08:57:01 246

原创 Flutter iOS 的深度优化 PR,搞笑的是贡献者被 Gemini 评审折磨

所以整个 Bug 和问题又很大的历史因素,跨度很长,也有系统奇怪的调度策略,你优化的太好,系统反而认为你不需要那么多开销,给你丢 E-core 上去,所以只能说真正的性能优化,有时候确实很奇葩。早期 iOS 11~12 上,硬件采样本身相对稳定,但 UIKit 把触摸事件送给应用的时间其实很不均匀,可能这一帧来了两个事件,下一帧一个都没有,再下一帧又来两个,经不经典,意不意外?放到普通异步工作里,这两次 PostTask 可能只是极小的 CPU 时间,但是放进 iOS 一帧内部,它们改变的就是。

2026-08-25 09:02:39 233

原创 Dart 3.13 的到底改了什么?为什么很重要?有什么坑?

Dart 团队也明确说,并没有打算让 Primary Constructors 取代所有 constructor,对于 constructor 很多、class header 已经很复杂,或者核心 constructor 是 private 的情况,传统写法才更合理。所以 Dart 3.13 实际上是另一次 null safety 变动的开始,估计再有两个版本, Dart 可能就会有全新的断档了,所以还是有必要关注下的。

2026-08-24 09:03:29 206

原创 超好用 R8 Configuration Analyzer, 优化你的 App 大小和内存

开发者可能会想着它的范围是不是太大,但是不了解项目的话,就比较难判断它究竟影响了 20 个类还是 2000 个类,哪些方法不能无法 inline,哪些字段因此不能缩减,这条规则是 App 自己需要的,还是某个依赖通过 consumer rules 带进来的。,它直接用 R8 对整个 App 和配置的理解,把 keep rule 对最终App 造成的影响量化出来,同时 Google 在官方。,所以基于这个,Google 开始把 Keep Rule 优化变成一套可量化、可交给 Agent 执行的工程流程。

2026-08-21 08:50:08 370

原创 Flutter A2UI 的正确用法,怎么把 AI 和动态 UI 结合生产

而且从 Firestore 读取出来的 cached A2UI 不是只发给 Flutter Renderer,它同时还会交给 Agent,这样比如后台昨天已经生成了一张卡片,今天用户打开 App,Flutter 通过缓存把卡片恢复出来了,然后用户又说了:“把这个活动改到下周一”,有了上下文的时候,模型才知道这个活动涉及的 UI 是哪些。

2026-08-20 08:51:47 256 1

原创 社区版 Dart macros?一个可以解决 JSON 序列化的Fluter “宏编程”第三方包

dart它定位自己叫做 “Dart macros”,,项目提供的本质也只是一个普通 annotation,主要靠的还是外部的 dmx generator。比如比如平时 Flutter 写 mode 大概类似:});​​email;而常见的 Freezed 做法是定义注解,然后@freezed...然后 dmx 的想法就简单粗暴很多,比如下面的注解,你只需要 Ctrl+S,然后它自己就直接生成或者修改user.dart​​});​​email;,没有比如。

2026-08-19 08:54:20 245

原创 Flutter 3.47 首坑,analysis_options 问题连环回归

不是 Flutter Web 的平台壳,也不是需要忽略的生成目录,它就是源码目录,然后按照现在的情况,默认每次都会全量覆盖和添加所有平台,这就导致 Analyzer 会不再扫描。,随意执行下 flutter 命令,就莫名其妙修改了你的 analysis_options ,而且只要是和固定模板不一样就无脑覆盖,纯纯让人不爽。实际上这个问题从一开始就很简单,只是修的人修的随意,合并的人也合的随意,然后最后就成了这么一坨。模板,否则 migration 虽然正确了,新项目生成时还会有问题。

2026-08-18 08:56:31 281

原创 Dart 3.13 大更新,感觉比 Flutter 更带劲

怎么样,是不是感觉 Dart 这个小版本更新比 Flutter 更带感,感觉 Dart 3.13 还挺符合我的喜好的,特别 Tree Shaking 更灵活了,而且全新的 Dynamic Module 也值得期待下,至少可以不用忍受 JIT 那种延迟 hotload 了。

2026-08-17 08:55:36 288 1

原创 Flutter iOS Deep Link 为什么会突然失效:一系列难以言喻的问题

这段时间应该有不少人遇到了,Flutter 项目升级之后,iOS Universal Link 可以正常把 App 拉起来,Associated Domains、AASA 文件看起来也都没有问题,但进入应用之后,所以 DeepLink 那问题,需要优先确认 URL 到底走到了哪一层,排查起来也很费时费力,加上 SDK 和系统冲突,还有初始化卡死,这类问题确实很让人难顶。因为 Universal Link 从用户点击到 Flutter 页面跳转,中间其实经过两套完全独立的流程。

2026-08-11 09:24:43 344

原创 Flutter hit,一个可以灵活控制溢出点击的第三方包

是一个支持点击效果可以灵活溢出控件大小的第三方包,离谱点甚至可以做到控件在原地,点击满天飞的效果,简单来说就是它的作用就是解决的需求问题。因为在 Flutter 里,,这就导致了两个问题:如果想扩大一个控件的点击区域一般都是加 padding,但这就会连带着撑大布局,挤压旁边的布局如果让子控件视觉上溢出(overflow)父容器边界,Flutter 默认也不会对溢出部分做命中测试,导致溢出区域点不到,比如卡片右上角悬挂的小圆点徽标这种hit。

2026-08-05 09:02:00 279

原创 Flutter Starling : 用 Swift和 Flutter 写了一个 Linux 桌面系统,震惊我一整年

没错,他用 Flutter 写了一个独立的 Linux 桌面 UI 系统,

2026-07-31 09:00:21 363

原创 KotlinLLM 开源 ,一个可以在运行时自己生成永久 Kotlin 代码的 Agent 库

而 JetBrains 把这些概念归纳成 Explicit、Persistent 和 Portable 这三个特性:Explicit 是指代码里会明确出现。

2026-07-30 09:16:19 269

原创 Android R8 为什么可以让 Kotlin 协程提速 2 倍?

这个问题其实我们之前就聊过了,因为 PR 终于被合并,所以现在从 Android Gradle Plugin 9.2.0 开始,R8 会将大部分调用会被优化为更直接的Unsafe操作。。主要实现就是通过 R8 在应用构建阶段,在构建期提前验证调用对象和写入值的类型,绕过每次原子写操作前重复执行的动态类型检查。实际上在之前,大家一直认为协程的主要成本主要来自线程切换、任务调度或者协程体本身的计算,但是在 Compose 的性能分析里,官方发现,。

2026-07-29 09:55:02 448

原创 给 AI 的 Agent 实现指南,可控 Agent 的关键

所以,这些都是基础的 Agent 逻辑概念,也是一个 「合同助手」需要的 Agent 能力介绍,不管你是古法做或者 AI 做,你都需要在类似基础上进行整体规划,核心是怎么构建一套基于你业务的 Flow 和黄金测试框架。Agent 的好坏和效果,必须有一套可以量化的指标,而整个 Agent 的目标和作用,就是让 AI 变得可靠和可控,在代码 Agent 上你出现幻觉问题不大,但是在合同、法务、购物场景,一个幻觉或者逃逸操作,带来的 P0 问题可就大了。

2026-07-28 09:04:51 194

原创 Flutter 3D 渲染的全新选择和应用场景

昨天发布了之后,不少人觉得 Flutter 这是变成游戏引擎了?

2026-07-24 09:00:43 240 1

原创 Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」

最近一个第三方实现的 bdero/flutter_scene 惊艳到我了,比如下面这个类似「我的世界」的游戏效果,就是作者用 Flutter Scene 做的,全部基于 Flutter GPU/Impeller 内容实现,没有引入任何其他外部引擎,没有任何 PlatfromView :Flutter Scene 整个实现里,都是自己管理场景图、材质、动画、光照、阴影、RenderGraph、GPU 资源、绘制排序、空间裁剪和 glTF 导入,底层依赖原生的 ,同时支持 Flutter 全平台,除了 Web

2026-07-23 08:55:19 428 1

原创 AI 又又造词,Graph 就又要替代 Loop 了?

这个我们之前就讨论过了,Loop Engineering 的目的就是让任务工作流可以自我改进,循环迭代,但是这个过程其实可以抽象成同一个四步引擎:选择一个要控制的东西(metric / capability)设定目标值(reference / setpoint)测量当前值与目标的差距采取行动缩小差距,然后重复也就是 Loop 就是设定目标,设置测试,然后循环工作,每周 eval 后调 prompt,只要业务是可以被测量的,就可以在循环里越变越好。

2026-07-20 09:02:07 298

原创 Fluter 共享内存多线程正在落地,IsolateGroupBound 来了

很久之前,Dart 就开始给 isolate 增加共享内存的能力,做过 Flutter 的都知道,isolate 作为 Dart 的并行执行模型,最麻烦的地方就是普通 Dart 对象状态不能像 Java、C++ 线程那样直接共享。。说人家话就是,不能直接随便调用。Isolate 一直以来都是 Dart 的并行执行模型,每个 Isolate 有自己独立的静态状态和可访问对象,Isolate 之间默认不能直接访问彼此的普通可变 Dart 对象,所以一直通过SendPort传递消息。

2026-07-15 08:43:21 282

原创 Flutter Windows 开始支持 Impeller ,还修复了多窗口 bug

因为这段时间一直在使用 Flutter 多窗口的原因,有一个 windows 多窗口的 bug 一直挺难受的,就是在切换到项目子窗口的时候,会默认激化主窗口,之后才能再次点击回到子窗口:更准确说是,就是激活一个 child后,主窗口会重新回到前台并盖住它。这个问题的诱因很多,但是实际上主要就是代码写的太草台。原因之一是在 Engine 里,Engine 收到 Windows 的消息时,不管窗口是激活还是失活,都会执行:也就是让当前窗口里的 Flutter view 获得焦点,

2026-07-13 09:03:24 466

原创 Flutter material/cupertino 解耦最新进展,已经在做新样式了

不过从目前情况来看, 8 月的新版本大概率是等不到这次解耦的正式发布了,预览版应该还是有希望的,至于 Liquid Glass 下半年可能都有点悬,大概率 2027 才能看到影子,除非 9 月的苹果发布会有新政策刺激下,不然感觉不管是 Flutter 还是 CMP ,对于 Liquid Glass 貌似都不太上心,毕竟这玩意确实对自渲染场景压力比较大。上个月那个 60 多万行改动的。,这个貌似也不太合理,剩一个月时间,就看官方能不能收尾掉了,按照目前的进度看,其实想收尾也问题不大,可以期待一下。

2026-07-09 09:46:02 462

原创 Flutter 开发怎么做 Agent ?从工程实战详细给你解读下

到这里就把 Genkit 的工程话里需要了解的大模块聊完了,不过这里没有聊更多细节,因为篇幅已经很长,不过回过头看,前面这些模块能落地,其实很大程度是因为 GenKit 在项目里的”工程地盘“作用共享 Runtime + Registry:整个进程共享一个Genkit实例,所有 Flow、Tool、Prompt 都注册在同一个 registry 里,好处是 replay harness 和真实运行时用同一份注册表,避免"replay 时 tool 没注册"这种漂移。

2026-07-06 08:54:10 485

原创 Amper 正式转正 Kotlin Toolchain ,Gradle 未来何去何从

最近 Amper 发布了《Kotlin Toolchain 0.11: The Next Step for Amper》 ,核心就是 Amper has evolved into the Kotlin Toolchain and is now Alpha ,也就是 JetBrains 正式把 Amper 并入 Kotlin Toolchain,并且从实验阶段推进到 Alpha 。从 Kotlin Toolchain 0.11 开始,Amper 这个名字在产品定位上就被降级了,核心能力降被整体迁移进 Kotl

2026-06-30 08:59:35 361

原创 如何让 AI 快速搭建一套生产 Agent ?全面理解 Agent 架构

所以,虽然文章很长,但是每个东西介绍的都很浅,主要是概念,还是应该怎么和 AI 沟通,在开发 Agent 的时候,最怕的就是 AI 给你写成这种:一个大 prompt一个 while 循环一个 tools 列表一个向量搜索然后让模型自由发挥这类 demo 看起来能跑,但一上真实任务就会出现各种问题,比如:检索不准状态混乱工具乱调失败不会恢复成本不可控没有日志无法评测越改越乱而前面我们说过,真正工程化的 Agent 至少应该包含:状态机工作流工具契约检索系统。

2026-06-29 08:39:43 338

原创 Flutter Patchwork,不用 Fork 改依赖包源码的第三方工具

其实这个在 JS 生态很常见,类似 Node.js 生态的是一个专门为。其实功能很简单:当你需要修改某个第三方 pub 包的源码时(比如修复 bug、临时添加功能),不用 fork 整个仓库,只需要通过 Patchwork 生成一个.patch文件,保存在项目里就行了。也就是你遇到问题时,可以直接先把本地问题修复能跑了,然后同步给团队,最后有时间了再把 patch 变成 PR 提交给包的维护人员就行了。.patch所以这个 patch 文件是可以提交到 git 的,所有人运行就可以覆盖使用,

2026-06-25 09:30:53 377

原创 苹果 AirPods 协议,Android 也可以使用完整版 AirPods 能力

最近刚好在想,怎么在 Android 上接入 AirPods 的全部能力,刚好就看到了这个项目,它是一个能让 Android 使用 AirPods 的专属功能的开源项目,比如:在非 Apple 平台上支持更改降噪模式、快速入耳检测、精确电池状态、对话感知这些能力。

2026-06-24 09:01:54 404

原创 AI Agent 开发究竟是啥?如何用 AI 开发 Agent ?深入浅出给你一套概念

实际上这个也是我被问的最多的,很多人一上来就是:我应该用 LangChain 还是 LangGraph?或者用 OpenAI Agents SDK 还是 Google ADK?要不要接 MCP?MCP 的断连问题和复杂度有必要考虑吗?但是实际上更重要的是你的 Agent 需要完成什么任务?比如你知识想做一个「本地知识库 + AI Chat + Agent」的 App,任务定义可以先这样写:用户把资料保存到本地知识库Agent 可以检索本地文档Agent 可以根据问题找到相关资料。

2026-06-22 08:57:43 336

原创 解读 Android 17 全新内存限制,有没有“豁免”后门?

比如厂商对某个 App 的内存使用比较担心,但是又不能让他被 Memory Limiter 直接秒杀,所以让 PMGD 去盯着它,它超过某个内存线后,先给系统一点时间回收,如果回收不下来就记录日志,然后停掉。,而且这个场景下,最容易出现问题的就是存在内存泄漏的 App,可能出现的是内存泄漏,但是因为 Memory Limiter 被回收,以前的路径完全捕获不到问题。:软上限,超过后内核会对该 cgroup 下的进程施加压力,尝试回收 file-backed memory,并把匿名内存换出到 swap。

2026-06-21 19:10:44 766

原创 Android 限制侧载新进展,谷歌联合国内厂商推验证计划

在去年我们就提到,因为新的侧载限制开始后,Android 只能安装已经验证过开发者的应用,而为了验证身份,在 Google Play 商店之外发布应用的开发者必须提供身份证明、上传签名密钥副本并支付 25 美元。在这个基础上,没有验证的开发者应用会无法安装,不过谷歌还留了新的后路:在“关于手机”中连续点击版本号七次,打开开发者选项在“设置”>“系统”中,打开“开发者选项”,找到“允许未验证的软件包”打开开关,输入密码重启手机然后在验证密码安全延迟结束后,返回未验证 packages 菜单。

2026-06-21 19:08:42 479

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除