eclipse_xu
码龄16年
求更新 关注
提问 私信
  • 博客:2,582,342
    社区:7,069
    问答:5,920
    2,595,331
    总访问量
  • 430
    原创
  • 9,771
    粉丝
  • 149
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
加入CSDN时间: 2010-06-14

个人简介:Android开发

博客简介:

eclipse_xu

博客描述:
路漫漫其修远兮 吾将上下而求索
查看详细资料
个人成就
  • 获得2,219次点赞
  • 内容获得1,712次评论
  • 获得1,079次收藏
  • 代码片获得664次分享
  • 博客总排名14,319名
创作历程
  • 2篇
    2025年
  • 25篇
    2024年
  • 18篇
    2023年
  • 41篇
    2022年
  • 63篇
    2021年
  • 27篇
    2020年
  • 6篇
    2019年
  • 1篇
    2018年
  • 5篇
    2017年
  • 21篇
    2016年
  • 46篇
    2015年
  • 84篇
    2014年
  • 39篇
    2013年
  • 76篇
    2012年
成就勋章
TA的专栏
  • Android异步任务处理从零开始
    8篇
  • android拼图游戏开发记录
    6篇
  • Android UI开发详解
    8篇
  • 编程基础
    31篇
  • Flex
    1篇
  • Android
    204篇
  • VBA
    10篇
  • 数据结构
    7篇
  • 数据库
    11篇
  • 其他
    13篇
  • C#
    6篇
  • Flutter
    1篇

TA关注的专栏 0

TA关注的收藏夹 0

TA关注的社区 4

TA参与的活动 0

创作活动更多

芯创视界・嵌入式视频创作征集大赛

嵌入式工程的价值,藏在每一次硬件调试、代码迭代与项目落地之中。 让我们因热爱相聚,用镜头与一众开发者互通心得、彼此启发,记录下探索的每一步,分享思路与经验。 让更多人看见嵌入式开发的魅力,也让每一次创作成为推动技术传播与社区成长的力量。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0d445ffce72b42f997aaf1b030a652aa.png#pic_center)

40人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

<span class=“js_title_inner“>现代化Flutter架构-Riverpod表现层</span>

我们现在甚至可以用一个假的Repository来实现它。请注意,由于该类扩展了 ConsumerWidget,因此在 build() 方法中我们有一个额外的 ref 对象,可以根据需要使用它来访问Provider。将我们的 widget 转换为 StatefulWidget(或者更确切地说,ConsumerStatefulWidget,因为我们使用的是 Riverpod)但当我们使用更复杂的 widget 时,这种方法很快就会失控,因为我们在同一个 widget 类中混合了业务逻辑和用户界面代码。
原创
博文更新于 2026.02.03 ·
614 阅读 ·
10 点赞 ·
0 评论 ·
20 收藏

<span class=“js_title_inner“>现代化Flutter架构-Riverpod应用层</span>

为简洁起见,我不会在此展示如何实现Widget或 AddToCartController,但您可以阅读我的文章《Flutter 应用程序架构》: 演示层》一文,以便更好地理解 widget 和控制器之间是如何交互的。在右上角,我们还可以看到一个购物车图标,上面有一个徽章,告诉我们购物车中有多少件商品。换句话说,应用层是可选的。在构建应用程序时,关注点的分离应该是首要考虑的问题。请注意,第二步总是将购物车更新委托给 MutableCart 扩展中的一个方法,由于它没有依赖关系,因此可以很容易地进行单元测试。
原创
博文更新于 2026.02.02 ·
661 阅读 ·
17 点赞 ·
0 评论 ·
8 收藏

<span class=“js_title_inner“>现代化Flutter架构-Riverpod简介</span>

点击上方蓝字关注我,知识会给你力量在构建复杂的应用程序时,选择正确的应用程序架构至关重要,因为它可以让您构建代码,并在代码库增长时为其提供支持。良好的架构应能帮助您处理复杂性,而不会碍手碍脚。但要做到这一点并不容易:架构 “不足 ”,会导致代码条理不清,缺乏明确的规范架构 “过多 ”,会导致过度工程化,即使是简单的更改也很难进行在实践中,事情可能会有很多细微差别,要取得正确的平衡也很棘手。
原创
博文更新于 2026.02.02 ·
616 阅读 ·
17 点赞 ·
0 评论 ·
23 收藏

<span class=“js_title_inner“>微信朋友圈的技术选型竟然是...</span>

敝司从一开始立项的时候,就准备使用跨平台的技术方案来主导鸿蒙版本的开发,看来这条路的确是行之有效的,而且,我们可以相信,微信做出这个决定也是经过深思熟虑的,所以华为后续在Flutter上的投入,应该也足以支撑航母级App的开发架构。从首页上来看,微信的聊天列表是实打实的ArkUI实现,不光是这个,其它几个Tab也都是鸿蒙原生的实现,不得不说,微信团队最近应该加了不少班吧,虽然微信的底层通信协议什么的应该是跨平台的C层架构,但整体这个框架,还是花了不少功夫的。向大家推荐下我的网站。本文原创公众号:群英传。
原创
博文更新于 2026.02.02 ·
395 阅读 ·
8 点赞 ·
0 评论 ·
6 收藏

<span class=“js_title_inner“>揭开Flutter Slider中Shapes的神秘面纱</span>

因此,让我们通过创建开始时的示例来学习实际的生产代码。Slider是Flutter中使用非常多的一个组件,通常设计师都会对Slider做很多的自定义设计,在Android中,我们其实是很难通过配置xml来改变Slider的外观的,而在Flutter中,我们可以很方便的组合整个实现,当然,前提是你需要对Slider的整体概念有个清晰的认识。我们知道,实际的自定义绘制是在 paint() 中进行的。下面这张图是Slider的一个基本组成,这里已经融合了一些基础的设计元素,所以,将它作为一个整体,是不错的选择。
原创
博文更新于 2026.02.02 ·
344 阅读 ·
10 点赞 ·
0 评论 ·
7 收藏

<span class=“js_title_inner“>为 TheRouter 的 AGP8 编译加个速</span>

就会丢失了,因为app在构建的时候,也会有自己的产物文件,这部分并没有包含aar中的内容。现在还剩的一个问题就是:编译的记录文件是下次才生效的,但作为 SDK 这样的表现肯定是不合适的,因为会产生不确定性,你不知道实际使用 SDK 的用户会怎么用,万一他用了旧产物打的包直接发布了,那就会造成问题。中,做了一个额外的内存缓存,会把本次编译使用的类记录,与本次构建新生成的类记录缓存,在编译结束时做一次对比,如果两次结果不一致,直接抛异常,表示本次构建的产物是有问题的,不可用,再次编译以后就正常了。
原创
博文更新于 2026.02.02 ·
328 阅读 ·
11 点赞 ·
0 评论 ·
6 收藏

揭开Flutter Slider中Shapes的神秘面纱

点击上方蓝字关注我,知识会给你力量Slider是Flutter中使用非常多的一个组件,通常设计师都会对Slider做很多的自定义设计,在Android中,我们其实是很难通过配置xml来改变Slider的外观的,而在Flutter中,我们可以很方便的组合整个实现,当然,前提是你需要对Slider的整体概念有个清晰的认识。下面这张图是Slider的一个基本组成,这里已经融合了一些基础的设计元素,所以,...
原创
博文更新于 2025.03.05 ·
1665 阅读 ·
26 点赞 ·
0 评论 ·
16 收藏

现代化Flutter架构-Riverpod应用层

点击上方蓝字关注我,知识会给你力量在构建复杂的应用程序时,我们可能会发现自己编写的逻辑:依赖于多个数据源或Repository需要被多个Widget使用(共享)在这种情况下,很容易将逻辑放在已有的类(Widget或Repository)中。但这会导致关注点分离不畅,使我们的代码更难阅读、维护和测试。事实上,关注点分离是我们需要一个好的应用架构的首要原因。在本文中,我们将专注于应用层,学习如何在 F...
原创
博文更新于 2024.12.17 ·
2042 阅读 ·
26 点赞 ·
0 评论 ·
10 收藏

现代化Flutter架构-Riverpod表现层

点击上方蓝字关注我,知识会给你力量在编写 Flutter 应用程序时,将业务逻辑与 UI 代码分离是非常重要的。这将使我们的代码更易于测试和推理,当我们的应用程序变得越来越复杂时,这一点尤为重要。为了实现这一点,我们可以使用设计模式在应用程序的不同组件之间引入关注点分离。作为参考,我们可以采用分层应用程序架构,如图所示:这一次,我们将重点关注表现层,学习如何使用Controller来:保存业务逻辑...
原创
博文更新于 2024.12.12 ·
2381 阅读 ·
18 点赞 ·
0 评论 ·
19 收藏

现代化Flutter架构-Riverpod领域层

点击上方蓝字关注我,知识会给你力量你是否曾将用户界面、业务逻辑和网络代码混杂在一起,成为一捆乱七八糟的意大利面代码?我知道我曾这样做过。✋毕竟,真实世界的应用程序开发是很困难的。领域驱动设计(DDD)等书籍就是为了帮助我们开发复杂的软件项目而编写的。DDD 的核心在于模型,它捕捉了解决当前问题所需的重要知识和概念。一个好的领域模型可以决定一个软件项目的成败。模型非常重要,但不能孤立存在。即使是最简...
原创
博文更新于 2024.12.10 ·
2096 阅读 ·
22 点赞 ·
0 评论 ·
19 收藏

现代化Flutter架构-Riverpod数据层

点击上方蓝字关注我,知识会给你力量设计模式是帮助我们解决软件设计中常见问题的有用模板。说到应用程序架构,结构设计模式可以帮助我们决定如何组织应用程序的不同部分。在这种情况下,我们可以使用Repository模式从各种来源(如后端 API)访问数据对象,并将它们作为类型安全的实体提供给应用程序的领域层(即我们的业务逻辑的所在层)。在本文中,我们将详细了解Repository Pattern:它是什么...
原创
博文更新于 2024.12.03 ·
2358 阅读 ·
23 点赞 ·
0 评论 ·
25 收藏

现代化Flutter架构-Riverpod简介

点击上方蓝字关注我,知识会给你力量在构建复杂的应用程序时,选择正确的应用程序架构至关重要,因为它可以让您构建代码,并在代码库增长时为其提供支持。良好的架构应能帮助您处理复杂性,而不会碍手碍脚。但要做到这一点并不容易:架构 “不足 ”,会导致代码条理不清,缺乏明确的规范架构 “过多 ”,会导致过度工程化,即使是简单的更改也很难进行在实践中,事情可能会有很多细微差别,要取得正确的平衡也很棘手。因此,在...
原创
博文更新于 2024.11.29 ·
2503 阅读 ·
7 点赞 ·
0 评论 ·
22 收藏

为 TheRouter 的 AGP8 编译加个速

点击上方蓝字关注我,知识会给你力量背景AGP8 的变更应该很多人都知道了,移除了Transform API,所以很多 class 操作类的插件代码都需要改了。TheRouter在开发的时候就支持了AGP8,使用的也是Gradle提供的标准 API。详细可见官方示例仓库:https://github.com/android/gradle-recipes/blob/agp-8.7/transformA...
原创
博文更新于 2024.11.05 ·
2246 阅读 ·
29 点赞 ·
0 评论 ·
22 收藏

微信朋友圈的技术选型竟然是...

点击上方蓝字关注我,知识会给你力量随着鸿蒙Next版本的正式上线,相信有很多朋友都已经体验到了原生原味儿版的微信,这也是鸿蒙Next系统里程碑式的一步,毕竟微信这种国民级的App如果能适配,那么后面鸿蒙的适配之路即将走的更加顺畅。相信不少公司的朋友们已经在适配或者已经适配鸿蒙系统了,不得不说,重头来做一个App,确实是一个比较大的挑战,特别是对一些已经迭代了近十年的巨型App来说,那更是一个人力和...
原创
博文更新于 2024.11.02 ·
2049 阅读 ·
5 点赞 ·
0 评论 ·
9 收藏

使用FVM轻松管理Flutter版本

点击上方蓝字关注我,知识会给你力量FVM(Flutter Version Manager)是一个在单设备上,轻松的切换Flutter版本的工具,同时可以保证项目开发成员的版本相同,避免产生API差异。它的文档非常清晰,使用也非常简单。官网地址:https://fvm.app/在官网上找到对应平台的安装指令。Github:https://github.com/leoafarias/fvm常用指令如下...
原创
博文更新于 2024.09.26 ·
2670 阅读 ·
5 点赞 ·
0 评论 ·
7 收藏

4.2到4.4后栈结构变化

发布资源 2014.05.23 ·
pdf

使用Riverpod Lint & Riverpod Snippets更高效的创建Flutter Apps

点击上方蓝字关注我,知识会给你力量随着每一个新版本的发布,Riverpod 及其生态系统都在不断完善:核心软件包为反应式缓存和数据绑定提供了强大的应用程序接口Riverpod Generator 软件包简化了学习曲线并带来了显著的可用性改进(我在这里已经介绍过了)Riverpod Snippets扩展帮助我们轻松创建提供者和消费者新的 Riverpod Lint 添加了许多有用的Lint和重构选项...
原创
博文更新于 2024.09.10 ·
2868 阅读 ·
19 点赞 ·
0 评论 ·
25 收藏

如何在新的Flutter Riverpod Generator中使用Notifier和AsyncNotifier

点击上方蓝字关注我,知识会给你力量随着 riverpod_generator 软件包的推出,使用 Riverpod 编写 Flutter 应用程序变得容易多了。使用新的 Riverpod 语法,我们可以使用 @riverpod 注解,让 build_runner 即时生成所有providers。我已经在前文中介绍了所有基础知识。在本文中,我们将进一步了解在 Riverpod 2.0 中添加的 No...
原创
博文更新于 2024.09.03 ·
2995 阅读 ·
26 点赞 ·
0 评论 ·
16 收藏

使用Flutter Riverpod Generator来自动创建Providers

点击上方蓝字关注我,知识会给你力量Riverpod 是 Flutter 功能强大的反应式缓存和数据绑定框架。它为我们提供了许多不同类型的provider,我们可以用它们来:访问代码中的依赖关系(使用 Provider)缓存来自网络的异步数据(使用 FutureProvider 和 StreamProvider)管理本地应用程序状态(使用 StateProvider、StateNotifierPro...
原创
博文更新于 2024.08.23 ·
2639 阅读 ·
11 点赞 ·
0 评论 ·
27 收藏

从源码看Flutter状态栏高度之谜

点击上方蓝字关注我,知识会给你力量写过Android的开发者都知道,关于状态栏高度的计算,Google改了一版又一版,依然还有很多兼容性问题,那么来到Flutter这边,问题突然变得简单了,通过下面的方法就可以很方便的获取。MediaQuery.of(context).padding.top本来很开心的完成任务了,直到有同事反馈这个方法有时获取的状态栏高度为0,但有时候又是对的,很奇怪,那么到底是...
原创
博文更新于 2024.08.13 ·
2600 阅读 ·
22 点赞 ·
0 评论 ·
18 收藏
加载更多