FlutterUnit 3.0 全面升级 - 国际化、导航2.0、项目结构

FlutterUnit 是张风捷特烈的一个开源的 Flutter 全平台 项目,支持 Android、iOS、Windows、MacOS、Linux、Web 六大主流平台。项目通过交互应用的形式,整理收录 Flutter 内置组件、实用有趣的知识集锦、辅助工具等要点,辅助 Flutter 开发者更快捷、优化地体验 Flutter 开发。

春节期间,优化了一下 FlutterUnit 在国际化、导航2.0、项目结构优化之后,现在推出 FlutterUnit 3.0 版本。大家可以在 FlutterUnit 项目的 release 中下载体验。


1. 国际化的支持

目前已经初步支持国际化,对于应用中非内容的固定文字,进行了国际化处理,目前只支持简体中文和英文两种语言,后期有时间会支持其他语言。

  • 移动端在: 我的/应用设置/多语言 中切。
  • 桌面端在: 设置/多语言 中切换。
移动端 移动端 移动端
桌面端 桌面端

关于 Flutter 应用的国际化,我发布过对应的 B站视频。

FlutterUnit 中采用功能需求的分包 package 管理,对于国际化的需求,提取出 l10n 的模块包,这样需要使用国际化的模块,引入 l10n 即可:


国际化最主要的还是体力活,收集需要国际化的字符串,然后进行翻译、在代码中替换。在此感谢 女友 帮忙整理国际化的文字资源。另外,国际化功能属于全局的状态变化,和之前的主题色、字体类似,在全局状态中增加国际化的数据,通过 AppConfigBloc 进行维护:

在 Dart 枚举支持数据成员之后,这类具有固定描述信息的可枚举数据,处理起来就非常方便,比如这里定义 Language 枚举作为国际化的核心数据,就具有很好的语义性:

dart 复制代码
import 'dart:ui';

enum Language {
  zh_CN(locale: Locale('zh','CN'), label: '简体中文'),
  en_US(locale: Locale('en','US'), label: 'English');

  final Locale locale;
  final String label;

  const Language({
    required this.locale,
    required this.label,
  });
}

组件的信息目前并没有进行国际化,这是一个很庞大的任务。我一个人很难去维护,后面我会定义一些描述规范,通过开源的力量,让所有人都可以参与到内容的国际化维护之中,这也是 FlutterUnit 的初心。


2. 导航 2.0 的支持

《Flutter 路由导航: 源码探索与实战》 小册完成后,我对 Flutter 导航 2.0 有了全面的认知。因此 FlutterUnit 也很快地迁移到了导航 2.0。其中最大的交互优势在于 FlutterUnit 桌面端终于拥有了 局部导航 的能力。如下所示,进入详情页等界面后,左侧的导航栏是固定存在的,而非全屏幕的跳转,这样体验会好很多。


如果自己使用 Flutter 内置的导航 2.0,会比较麻烦。 这里使用了官方推出的 GoRouter, 它是一个优秀的对导航 2.0 体系使用的封装,可以让开发者非常便利地使用声明式的导航操作。对导航感兴趣的朋友,可以支持一下我的路由小册 ~


3. 项目结构优化

FlutterUnit 中的各个模块的关联性并不强,非常适合模块化的分包处理。将功能需求分割成相互独立的模块,模块间可以相互依赖访问对方的功能。在主项目中,维护导航的相关工作,这就是我目前通过 FlutterUnit 对项目结构的思考。


4. 未来展望

一直想做些日常辅助的工具,后续将会着重对工具宝箱进行开发。通过 Dart 实现一些有用的小工具,当然并不限于编程开发的范畴。

之前通过 SpringBoot 为 FlutterUnit 开发过后端,但一直没有继续推进。最近在研究 rust 的后端开发,想把 SpringBoot 的项目迁移到 rust ,并搭建一套完善的接口。云上的 FlutterUnit 也是我一直的夙愿,但由于服务器、开发时间等种种原因,推进很慢。


最后,感谢大家的支持,FlutterUnit 的 star 一直以稳定的速度增加,目前已经达到 7K ,我也会一直维护下去,收录更过有趣实用的内容,让大家体验 Flutter 更多的魅力。

相关推荐
千逐681 小时前
《鸿蒙备忘录:基于 Flutter for OpenHarmony 的极简本地笔记应用全实现》
笔记·flutter·harmonyos
果粒蹬i1 小时前
【HarmonyOS】鸿蒙Flutter智能家居应用开发实战指南
flutter·智能家居·harmonyos
子兮曰8 小时前
OpenClaw架构揭秘:178k stars的个人AI助手如何用Gateway模式统一控制12+通讯频道
前端·javascript·github
旅之灵夫8 小时前
【GitHub项目推荐--Remotion:使用React编程化创建视频】⭐⭐⭐
github
百锦再9 小时前
React编程高级主题:测试代码
android·前端·javascript·react.js·前端框架·reactjs
2501_9160088910 小时前
全面介绍Fiddler、Wireshark、HttpWatch、SmartSniff和firebug抓包工具功能与使用
android·ios·小程序·https·uni-app·iphone·webview
玉梅小洋10 小时前
Windows 10 Android 构建配置指南
android·windows
不爱吃糖的程序媛11 小时前
Flutter 与 OpenHarmony 通信:Flutter Channel 使用指南
前端·javascript·flutter
Libraeking12 小时前
视觉篇:Canvas 自定义绘图与高级动画的华丽圆舞曲
android·经验分享·android jetpack
Fushize12 小时前
多模块架构下的依赖治理:如何避免 Gradle 依赖地狱
android·架构·kotlin