Skip to main content

如何选择项目结构:功能优先还是层级优先?

· 14 min read

在构建大型 Flutter 应用时,首要考虑的问题之一是如何 组织项目结构

合理的项目结构能够确保整个团队遵循清晰的规范,并以一致的方式添加新功能。

本文将探讨两种常见的项目结构方法:功能优先层级优先

我们将学习它们的优缺点,识别在实际应用中实施它们时可能遇到的常见问题,避免在开发过程中出现代价高昂的错误。

Dart SDK 中鲜为人知的类和函数

· 14 min read

最近,Flutter 社区 itsallwidgets 建了一个论坛,目前加入的人不多,大家可以注册账号,跟国外的活跃开发者们一起讨论关于 Flutter 开发的话题。

虽然人不多,但也有一些比较有意思的主题讨论,其中一个主题是: Lesser known classes and functions from the Dart core libraries ,讨论一些日常开发中比较少用到,但是却很有意思和实用的类和函数。

本文分成两部分,第一部分是对论坛评论里提到的类和函数进行总结,第二部分将额外补充一些没有提到的。

Windows PowerShell 脚本问题记录

· 3 min read

现在的工作电脑以 Windows 为主,没了 Mac 的命令行,非常不习惯。项目中难免需要一些脚本来执行频繁的任务,Windows 下的批处理脚本BAT 非常垃圾,功能残缺,只好选择 PowerShell 来处理。

本文记录 PowerShell 脚本运行中遇到的问题,写脚本代码是不可能了,99%是 Claude 来完成,最多调整几个小地方。

360加固脚本

· 2 min read

本脚本封装了 360 加固命令行工具,适用于 Mac 和 Linux 系统,可同时用于 apk 和 aab 文件。

info
  1. 请先下载 360 加固的命令行工具,并解压到当前工程目录下,重命名为 jiagu_cli。
  2. 配置 360 加固需要的 licence 字段,位于 jiagu_cli/licence 文件中。
  3. 在本脚本里配置好签名keystone相关字段,包括 keystore 路径、密码等。

给Flutter build_runner加速

· 2 min read

Flutter 的 dart sdk是不带反射功能的,导致社区需要开发一些注解工具来辅助生成一些模板代码,大部分都是基于官方的build_runner 工具。

但是在构建的时候,每次都去生成模板代码,非常耗时。尤其是当你的项目比较大时,有可能超过1分多钟来等待处理完成,而且每次都得重新编译,非常影响开发效率。

另外,你用的生成库越多,越影响生成速度。

Windows 11 配置 WSL2

· 5 min read

在 Windows 11 系统中,使用 Windows Subsystem for Linux 2 (WSL2) 开发 Android 应用可以显著提高开发效率。然而,在配置开发环境的过程中,可能会遇到一些问题。

本文将记录在设置过程中遇到的常见问题及其解决方案。

为什么Flutter官方团队推荐Class组件而不是函数组件?

· 6 min read
tip

Update (2024-11-05): 阅读了一些新的文章,补充更多细节。

在 Flutter 开发中,我们经常需要创建可重用的组件。这些组件可以是简单的 UI 元素,也可以是复杂的布局结构。

一般主要有两种方式来定义这些组件:

  • 使用类(class)
  • 使用函数(function)

很多人使用函数创建组件,更多的考虑是速度,更快的编码。不可否认的是,相比类组件而言,函数组件省了好几行代码,比如构造函数和变量定义部分。在我的工作中,也经常看见大量使用函数返回 widget 来创建组件,但是官方的 Flutter 团队更推荐使用类。

为什么?本文将详细探讨这一原因。

iOS Combine 框架使用

· 7 min read

Combine 框架是 Apple 提供的一种用于处理异步事件的强大工具。它允许我们以声明式的方式编写功能性反应式代码,简化了异步编程的复杂性。本文将深入探讨 Combine 框架中的常用操作符,帮助开发者更好地理解和应用这一框架。