- 博客(682)
- 收藏
- 关注
原创 Flutter七日总结
多看星空方知何谓渺小,多看细胞方知何谓浩大,我是巨人,也是沙粒,崇高并谦卑着----张风捷特烈写这个系列主要是出于以下目的:1.给自己一个挑战,并附加时间限制2.一直想要表达一下:遇到新技术时的态度,借此分析一下我对于一件新事物认知的过程 3.Flutter对于Android开发者,确实需要去稍微了解一下 4.作为一个地道的javaer+Androider,希望可以为想入坑Flu...
2018-12-23 15:11:00
1051
原创 如何用 Dart 写个自己的MCP服务
本文介绍了MCP(Model Context Protocol)作为AI与工具间的标准化通信协议。通过时间服务案例,展示了MCP如何解决AI工具协作的碎片化问题。文章详细解析了MCP的三个核心阶段:初始化握手、工具发现声明和工具执行,以及基于JSON-RPC 2.0的通信机制。MCP遵循"约定优于配置"原则,实现AI与工具的无缝协作,如让AI获取准确时间并写入文件。这种标准化协议为Flutter开发者提供了扩展AI能力的新思路,使AI能够调用移动端各种功能。从简单案例出发,体现了技术学习
2026-01-05 07:00:11
982
原创 Flutter TolyUI 框架#09 | tolyui_text 轻量高亮文本
摘要: TolyUI 是一个由张风捷特烈开发的 Flutter 全平台 UI 框架,支持响应式设计,开源且组件化。其独立模块 tolyui_text 提供 HighlightText 组件,简化文本增强功能实现,如搜索高亮、交互式文本匹配等。通过简洁 API 支持自定义高亮样式、大小写敏感及多规则匹配(如正则、精确字符串),并支持点击回调。相比原生富文本处理,大幅减少代码量,提升开发效率。开源地址:github.com/TolyFx/toly_ui。
2025-12-01 07:45:43
933
原创 FlutterUnit3.4.1 | 来场三方库的收录狂欢吧~
FlutterUnit 3.4版本推出全新"三方包"模块,为开发者提供插件推荐、搜索、分类及评价功能,收录100+常用三方库。该模块采用模块化开发架构,前端80%代码由AI生成,后端基于Rust实现高效低耗服务(仅占用16MB内存)。特色功能包括:二级评论系统、多语言支持(通过独立翻译表实现)、插件推荐入口及多种排序方式。项目采用MVVM架构,支持模块独立开发和复用。国际化方面开发了自动化脚本辅助生成多语言资源文件。该开源项目已在GitHub更新,旨在提升Flutter开发生态中优质插件
2025-11-24 07:31:09
817
原创 Rust 编程指南·酷色篇 #06 - 条件与循环
本章介绍了如何使用Rust条件判断实现智能颜色系统。通过if表达式,程序可以根据颜色亮度自动选择最佳文字颜色搭配。关键点包括:亮度计算公式(考虑人眼敏感度)、条件判断语法(if作为表达式)、以及智能颜色选择功能。实战演示了从简单到精细的文本颜色匹配策略,解决了手动调整颜色搭配的低效问题。示例代码展示了不同背景色下的自动文字颜色配对效果,包括纯色和灰度场景。最终目标是让颜色系统具备自主决策能力,实现更智能的UI设计。
2025-11-08 20:39:33
1014
原创 Rust 编程指南·酷色篇 #05 - 颜色名字与字符串
本文介绍了如何在Rust中使用字符串为颜色系统添加命名功能。主要内容包括: Rust两种字符串类型:String(可变)和&str(不可变),类比可修改调色板和固定标签 颜色命名实现方案:使用元组组合颜色名称(String)和RGB值,解决数字颜色难以记忆的问题 字符串操作技巧:三种拼接方式(+运算符、format!宏、push_str方法)及其适用场景 实际应用场景:通过字符串处理实现颜色重命名、名称格式化等功能 文章通过生活化的比喻(颜料标签、调色板)帮助理解Rust字符串特性,并展示了如何构建
2025-11-08 09:02:18
938
原创 Rust 编程指南·酷色篇 #04 | 标量类型
Rust标量类型详解:构建安全高效的代码基石 Rust的标量类型系统是构建内存安全和高效程序的基础。本文系统介绍了四种标量类型: 整数类型:包括有符号(i)和无符号(u)两类,包含8到64位不同规格,选择时需考虑数据范围和性能 浮点类型:提供f32单精度和f64双精度,需注意精度误差问题 布尔类型:仅有true/false两个值,用于逻辑判断 字符类型:支持Unicode,存储单个字符而非字符串 每种类型都有明确的语义和内存占用,Rust的类型系统能在编译时就发现类型不匹配的问题,避免运行时错误。通过合理选
2025-11-03 16:38:35
816
原创 Rust 编程指南·酷色篇 #03 | 认识函数封装
本文介绍了Rust中函数的定义与使用,重点阐述了函数在代码复用中的关键作用。通过三个具体案例展示了不同函数的应用场景:无参函数用于固定操作(如分隔线打印),带参函数实现灵活处理(如彩色文字输出),返回值函数完成数据转换(如RGB转颜色编码)。每种函数类型都通过代码对比,直观体现了函数封装带来的优势——减少重复代码、提高可维护性和增强可读性。文章还特别强调了Rust函数的类型安全特性,如&str引用和u8类型的合理使用。函数作为代码复用的艺术形式,能有效提升编程效率和代码质量。
2025-11-02 19:12:10
600
原创 Rust 编程指南·酷色篇 #02 | 认识变量
本文介绍了Rust语言中变量的特性和使用方式。主要内容包括:1) Rust变量默认不可变的设计理念,强调安全性和性能优化;2) 使用mut关键字声明可变变量;3) 类型声明的应用场景;4) 常量的定义及其与变量的区别;5) 变量遮蔽特性及其哲学意义;6) 元组解构赋值的用法。通过彩色文本输出的实际案例,展示了变量在代码复用和维护中的价值,体现了Rust"安全优于便利"的设计思想。文中还对比了Rust与其他语言在变量处理上的差异,突出了Rust独特的变量管理机制。
2025-11-02 09:21:36
741
原创 Rust 编程指南·酷色篇 #01 | 从多彩输出,体会不一样的开端
本文介绍了一种新颖的Rust编程入门方式,通过控制台色彩输出激发学习兴趣。文章首先展示了如何用ANSI转义码实现彩色文本输出,详细讲解了8种基础前景色和背景色的使用方法。接着介绍了更强大的24位真彩色技术,使用RGB值可生成1600万种颜色。最后以一个彩虹色文字输出示例展示了实际应用效果。这种从视觉体验入手的教学方式,让编程初学者能够快速获得成就感,为后续的Rust学习打下有趣的基础。
2025-10-31 07:49:42
687
原创 Rust 编程指南 #00 | 开发环境搭建
本文介绍了Rust开发环境的搭建与核心工具链使用。Rust开发主要依赖三个工具:rustup作为安装器和版本管理工具,rustc是编译器,cargo则是包管理器和构建系统。详细讲解了rustup的安装步骤与路径自定义方法,示范了使用rustc编译基础程序的过程。此外还介绍了cargo的项目创建、构建运行及依赖管理功能。通过本文,读者可掌握Rust开发环境的完整配置流程,为后续学习Rust编程打下基础。文章还提供了相关社群资源供进一步学习交流。
2025-10-30 20:17:28
839
原创 FlutterUnit 3.3.0 | 全组件、全属性、鸿蒙支持来袭
摘要:本文介绍了使用Dart脚本提取Flutter SDK中所有Widget组件信息的方法。通过继承RecursiveAstVisitor实现解析器,提取组件名称、路径、超类列表和描述信息,并以JSON格式输出。最终在Flutter 3.27.4中收集到555个非下划线组件的数据,为题库应用《匠心星问》提供了基础素材。文章展示了从源码分析到数据处理的全过程,旨在帮助开发者掌握系统化解决问题的思路。(149字)
2025-09-02 07:28:22
932
原创 匠心千游 | 纯 AI 打造休闲小游戏
《匠心千游》是一款由AI编程实现的休闲益智小游戏合集,目前已上架微信小游戏平台,包含23款经典游戏,总包体仅884KB。开发者通过自然语言描述让AI完成代码编写,在零微信小游戏开发经验的情况下实现了产品落地。游戏主打纯净体验,广告默认关闭且不影响玩法,旨在回归游戏本质。项目从构思到上架历时三周业余时间,备案审核过程耗时近月。目前注册用户近700人,已接入流量主实现收益。未来计划拓展至30款游戏,并考虑基于Flutter开发全平台应用。该案例展示了AI如何降低开发门槛,帮助开发者将创意快速转化为产品。
2025-08-05 06:59:52
1010
原创 Flutter 百题斩#16 | 收集 SDK 所有 Widget 组件基本信息
摘要:本文介绍了使用Dart脚本提取Flutter SDK中所有Widget组件信息的方法。通过继承RecursiveAstVisitor实现解析器,提取组件名称、路径、超类列表和描述信息,并以JSON格式输出。最终在Flutter 3.27.4中收集到555个非下划线组件的数据,为题库应用《匠心星问》提供了基础素材。文章展示了从源码分析到数据处理的全过程,旨在帮助开发者掌握系统化解决问题的思路。(149字)
2025-07-24 09:36:40
816
原创 Flutter 百题斩#17 | SDK 组件数据入库 - sqlite
文章摘要:本文介绍了一个从Flutter SDK中提取所有StatelessWidget派生类的实现方案。通过Dart命令行脚本,首先定位flutter/lib/src目录下的dart文件,然后利用Flutter官方的analyzer库解析代码。核心实现包括:文件遍历、AST语法树访问器设计(通过继承RecursiveAstVisitor识别StatelessWidget子类)、分析上下文构建等关键步骤。该方案不仅考察了对Flutter SDK结构的理解,还涉及文件操作和Dart代码解析能力,可作为题库应用
2025-07-24 09:35:43
681
原创 Flutter 百题斩#15 | 列出 SDK 所有 StatelesWidget 组件
文章摘要:本文介绍了一个从Flutter SDK中提取所有StatelessWidget派生类的实现方案。通过Dart命令行脚本,首先定位flutter/lib/src目录下的dart文件,然后利用Flutter官方的analyzer库解析代码。核心实现包括:文件遍历、AST语法树访问器设计(通过继承RecursiveAstVisitor识别StatelessWidget子类)、分析上下文构建等关键步骤。该方案不仅考察了对Flutter SDK结构的理解,还涉及文件操作和Dart代码解析能力,可作为题库应用
2025-07-16 09:52:15
970
原创 Flutter 知识集锦 | 如何得到图片主色
Flutter实现图片主题色提取功能,通过ColorScheme.fromImageProvider方法从图片生成配色方案。文章介绍了如何封装ImageSelector组件实现图片切换,并动态更新UI主题色。案例展示了一个右侧图片列表、左侧色彩面板的交互界面,点击图片即可提取主色并应用主题。这种图片驱动配色的方式适用于主题换肤等场景,提升了UI设计的灵活性和视觉美感。文章还提供了完整代码实现和组件封装思路,为开发者构建智能配色系统提供了参考。
2025-07-14 09:23:10
923
原创 Flutter 百题斩#14 | 说说你对 ColorScheme 的了解
Flutter 的 ColorScheme 是 Material Design 3 的核心颜色系统,包含 46 种颜色角色,分为五大类:主色(品牌识别)、次色(辅助元素)、第三色(对比强调)、表面色(背景层次)和错误色(警告状态)。通过 ColorScheme.fromSeed 可基于种子色自动生成完整配色方案,确保应用视觉一致性和可访问性。这套系统取代了部分传统颜色,为组件提供统一的外观控制,并支持明暗主题适配。开发者可通过定义 ColorScheme 对象,快速建立规范化的应用主题体系。
2025-07-01 07:28:03
911
原创 Flutter 百题斩#12 | 说说 StatefulWidget 从诞生到状态类build 的流程
摘要: 本文以Flutter中的StatefulWidget为核心,探讨其从组件创建到状态类build的完整流程。通过一个颜色切换的调试案例,详细分析了ColorAlphaView组件的实例化、State对象创建及build触发时机。关键流程包括:父组件构建时实例化子组件、StatefulElement创建状态对象、元素挂载触发首次build。文章梳理了StatefulWidget、State与StatefulElement的协作关系,并总结出从Element.performRebuild到State.bu
2025-06-27 09:43:44
79
原创 Flutter 百题斩#11 | 说说 StatelessWidget 从诞生到 build 的流程
到这里,从头到尾梳理一下,StatelessWidget 从诞生到 build 的完整流程。初次的构建流程发生在,父元素节点更新子节点时,会触发build方法得到组件,然后通过创建子元素节点,并触发子元素 mount 方法。在挂载期间触发首次的构建流程,最终触发对应组件的 build 回调。Element.performRebuild # 父元素节点更新子节点Element.build # 组件对象诞生Element.inflateWidget # 生成子元素节点。
2025-06-26 09:13:53
74
原创 Flutter 百题斩#10 | Dart 空安全六君子
本文介绍了Dart语言中与空安全相关的6个核心操作符:Type?用于声明可空类型,?.用于安全访问可能为null的成员,??提供默认值替换null,??=为null变量赋值,...?安全展开可能为null的集合,!则起到非空断言作用。这些符号共同构成了Dart的空安全机制,分别承担着类型声明、安全访问、默认值处理、空值赋值、集合展开和非空断言等功能,帮助开发者编写更加健壮的代码。文章通过示例代码和对比表格,详细解析了每个操作符的使用场景和注意事项,并附上一首打油诗帮助记忆。
2025-06-26 09:11:46
136
原创 Flutter 百题斩#9 | Dart 四种点符号
本文介绍了Dart语言中四种与点符号相关的操作符: .(成员访问符):用于访问对象的属性和方法 ..(级联操作符):允许对同一对象进行链式操作,避免重复书写对象名 ...(展开操作符):将集合元素插入到另一个集合中 ...?(空安全展开符):处理可能为null的集合展开 文章通过具体代码示例说明了每个操作符的用法,最后用表格对比总结,并以打油诗形式帮助记忆。这些语法糖可以提升Dart代码的简洁性和可读性,是Flutter开发中的实用技巧。
2025-06-25 09:37:25
81
原创 Flutter 百题斩#8 | 说说 State 抽象类持有的成员变量
《每日一题》探讨Flutter中State类的核心成员:_widget、_element和_debugLifecycleState。_widget存储当前StatefulWidget配置,在initState前初始化,didUpdateWidget时更新;_element作为BuildContext绑定构建上下文,随元素实例化建立连接;_debugLifecycleState则仅调试模式下记录生命周期状态。State类通过简洁的成员引用,实现了状态管理与UI构建的分离,展现Flutter状态管理的核心机制。
2025-06-25 09:35:15
213
原创 Flutter 百题斩#13 | build 回调的 BuildContext 是什么
摘要: 本文探讨了Flutter中BuildContext的本质与作用。作为构建视图的核心接口,BuildContext实际由Element实现,运行时表现为StatelessElement或StatefulElement。不同Widget(如StatelessWidget、StatefulWidget)通过createElement生成对应Element,解耦界面描述与执行逻辑。build方法中的BuildContext即组件对应的Element,支持主题获取、导航等操作。理解其机制对编写健壮组件至关重要
2025-06-24 12:24:00
235
原创 Flutter 百题斩#7 | 说说 State 状态类对象创建的时机
本文探讨了Flutter中State状态类对象的创建时机,通过《每日一题》系列中的ChangeableCounter案例展开分析。核心结论是:State对象在StatefulWidget的createState回调中被创建,该回调由Flutter框架层的StatefulElement在构建时触发。文章还介绍了通过断点调试追踪调用栈的方法,揭示了状态对象与元素的绑定关系。理解State的创建过程是掌握Flutter构建机制的重要一步,后续将继续探索Widget、Element和State的交互细节。
2025-06-20 12:34:29
63
原创 Flutter 百题斩#6 | StatelessWidget VS StatefulWidget
本文是一道关于Flutter中StatelessWidget和StatefulWidget的多选题解析。题目考察了两种Widget的构建逻辑、框架层Element关系、组件封装复用原理以及setState触发机制。正确答案为B和C,其中B项指出两者创建的Element都属于ComponentElement,C项强调组合复用的设计思想。A项错误在于StatefulWidget的构建由State类完成,D项错误在于setState并非每次都会触发UI重建。文章通过源码分析揭示了Flutter的底层机制,帮助开发
2025-06-19 05:48:32
116
原创 FlutterUnit & TolyUI | 布局游乐场
对于新手朋友,对有些较复杂的布局组件很难把握其特性。为此 FlutterUnit 设立了布局宝库模块,来帮助开发者更容易理解 Flutter 中的布局特性以及核心的布局组件。其中的 Playground 指的是可交互操作的组件展示面板,如下的 Flex Playground 将淋漓尽致地展示 Flex 组件布局特性。对于枚举类型的参数,通过 TolySelect 组件处理选择事件。操作的图标按钮使用 TolyAction 组件。布局宝库的侧栏导航,使用 TolyRailMenuTree 组件。
2025-06-19 05:40:13
1172
1
原创 Flutter 百题斩#5 | Widget 对象创建的时机
《每日一题》解析:Flutter Widget对象的创建时机 本题考察Flutter中Widget对象创建时机的理解。正确答案为B:Widget对象在每次build构建过程中都会被重新创建。Flutter的Widget是描述UI的轻量级不可变对象,其特点是: 每次build()都会重建Widget树 不参与实际绘制(RenderObject负责) 生命周期短暂,常被GC回收 由开发者手动创建,非引擎自动生成 其他选项错误原因: A项混淆构建与绘制阶段 C项误认为Widget长期存在 D项否认开发者创建权 F
2025-06-19 05:29:30
58
原创 Flutter 百题斩#4 | 说说组件 build 函数的作用
本文探讨了Flutter中build()函数的核心作用及其应用场景。作为组件UI构建的核心方法,build()负责返回Widget树以描述界面结构。文章通过StatelessWidget和StatefulWidget的实例对比,展示了build()如何实现UI封装与复用,并分析了函数可访问的三类数据:组件属性、BuildContext上下文以及StatefulWidget的状态变量。在StatefulWidget中,build()通过setState触发重建实现动态更新。合理控制build()调用频率对性能
2025-06-19 05:23:23
85
原创 Flutter 百题斩#3 | 说说 Widget 的派生体系
Flutter Widget派生体系解析:从UI构建到底层渲染的层次化设计 Flutter框架的Widget派生体系通过层次化设计构建了完整的UI开发范式。该体系主要包含四类核心组件:组合型Widget(Stateless/StatefulWidget)负责UI描述与状态管理,约占框架组件的80%;RenderObjectWidget作为底层"施工者",直接控制布局渲染;ProxyWidget实现数据共享与功能注入;RootWidget作为应用根组件。文章通过类继承图展示了Widget的
2025-06-19 05:20:59
57
原创 Flutter 百题斩#2 | 如何理解 Widget 的不可变性
Flutter中Widget不可变性的深度解析 Widget的不可变性是Flutter架构的核心特性之一。它体现在Widget一旦创建后,其所有属性都不可修改(通过final关键字强制实现)。这种设计使Widget成为纯粹的UI描述单元,符合声明式编程范式。当需要界面变化时,Flutter不会修改现有Widget,而是重建新的Widget树,通过比较新旧Widget差异来高效更新UI。这种机制带来了诸多优势:确保状态与UI分离、简化构建逻辑、提升性能,并为热重载功能奠定基础。理解Widget的不可变性是掌握
2025-06-19 05:14:05
54
原创 Flutter 百题斩#1 | 说说你对声明式 UI 的理解
《匠心星问》是一款集题目浏览、发布、解答、做题于一体的题库应用,采用Flutter框架开发。本文探讨声明式UI的核心概念,将其与传统命令式UI对比,分析其优势(如状态驱动、高效维护)和挑战(如状态管理复杂度)。通过Flutter示例说明声明式UI的工作原理,并指出其在前端开发中的广泛应用。文章强调理解声明式UI对掌握Flutter框架的重要性,为开发者提供学习方向和解题思路。
2025-06-18 12:16:21
241
原创 鸿蒙纪·梦始卷#01 - 环境搭建与初始项目
是计划打造的一套 HarmonyOS 开发系列教程合集。致力于创作优质的鸿蒙原生学习资源,帮助开发者进入纯血鸿蒙的开发之中。本系列的所有代码将开源在githubgitee本文是《鸿蒙纪·梦始卷》 的第一章,将介绍鸿蒙应用开发环境的搭建,以及运行并简单介绍初始项目的代码。这样就相当于站在了鸿蒙开发的门槛之前。
2024-10-21 09:16:37
927
原创 Flutter&Flame游戏实践#17 | 二维无限标尺
theme: cyanosis 本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究!Flutter\&Flame 游戏开发系列前言:该系列是 [张风捷特烈] 的 Flame 游戏开发教程。Flutter 作为 全平台 的 原生级 渲染框架,兼具 全端 跨平台和高性能的特点。目前官方对休闲游戏的宣传越来越多,以 Flame 游...
2024-07-29 06:50:57
634
原创 编程与数学 | 一维空间的中心缩放
theme: cyanosis0. 问题描述:最近在研究一个功能,期间演化出一些比较有趣的小知识。我把它们整理成独立的问题,来分享给大家。首先来解释一下,什么叫 一维区域空间的中心缩放:比如,现在有一个刻度尺,视口区域是 [4,12] ,现在求: 若以 8 为缩放中心,将尺子放大两倍。求前视口的刻度区域。缩放中心,就是在缩放变换过程中的不动点。我们可以把尺...
2024-07-26 08:01:22
435
原创 Flutter&Flame游戏实践#16 | 生命游戏 - 编辑与交互
theme: cyanosis 本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究!Flutter\&Flame 游戏开发系列前言:该系列是 [张风捷特烈] 的 Flame 游戏开发教程。Flutter 作为 全平台 的 原生级 渲染框架,兼具 全端 跨平台和高性能的特点。目前官方对休闲游戏的宣传越来越多,以 Flame 游...
2024-07-22 07:02:37
703
1
原创 Flutter 组件集录 | 后悔药 UndoHistory
theme: cyanosis在现实世界中,没有后悔药可以吃。但在对于计算机世界来说,撤销、恢复是非常常见的功能。小屁孩在键盘上啪啪一顿输出,把你正在写的重要文档搅得面目全非,Ctrl + Z 轻松救场。编程开发的过程中,我们在不断输入和试错,这颗后悔药是我们敢于前行的底气,大不了重新来过。1. 简单认识 UndoHistoryUndoHistory 是一个 Statefu...
2024-07-16 08:08:38
1371
原创 「豆包Marscode体验官」 | 云端 IDE 启动 & Rust 体验
theme: cyanosis我正在参加「豆包MarsCode初体验」征文活动MarsCode 可以看作一个运行在服务端的远程 VSCode开发环境。对于我这种想要学习体验某些语言,但不想在电脑里装环境的人来说非常友好。本文就来介绍一下在 MarsCode里,我的体验 rust 开发体验。一、MarsCode 是什么它的本质是: 提供 代码助手 和 云端 IDE 服务的 ...
2024-07-14 11:05:18
2693
1
原创 Flutter 匠心千刃 | SHA256 加密
theme: cyanosis0. 本文目标本文介绍一下如何在 Flutter 中进行 SHA256加密。并结合TolyUI 在 匠心千刃 中搭建 sha256加密的交互界面 ,本文目标如下所示: 可以在输入框中输入字符串,会自动计算输入内容的sha256值: 也可以选择文件,计算该文件的sha256值:1. SHA256能干什么每个人的指纹是独...
2024-07-12 07:24:03
1239
原创 Flutter&Flame游戏实践#15 | 生命游戏 - 演绎启动
theme: cyanosis 本文为稀土掘金技术社区首发签约文章,30天内禁止转载,30天后未获授权禁止转载,侵权必究!Flutter\&Flame 游戏开发系列前言:该系列是 [张风捷特烈] 的 Flame 游戏开发教程。Flutter 作为 全平台 的 原生级 渲染框架,兼具 全端 跨平台和高性能的特点。目前官方对休闲游戏的宣传越来越多,以 Flame 游...
2024-07-08 08:09:13
1289
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅