- 标准编辑器: freezed数据模型 + 5Tab工具栏 + 多图层管理 + 文字增强 + 背景系统 + 导出链路 - 迷你编辑器: 极简6项功能(文字/字号/颜色/背景/预览/导出) + 三种调用方式(全屏/半屏/内嵌) - 共享组件: GlassSlider/ColorPicker/FontPicker/TipsView - 服务层: ExportService/ImageImportService/FontService/XycardService - 设计系统: 统一主题令牌 + Liquid Glass风格
62 lines
1.8 KiB
Dart
62 lines
1.8 KiB
Dart
// ============================================================
|
|
// 闲言APP — 应用入口
|
|
// 创建时间: 2026-04-20
|
|
// 更新时间: 2026-04-20
|
|
// 作用: main 函数,初始化存储 + 液态玻璃 + 启动 App
|
|
// 上次更新: 集成 LiquidGlassWidgets 初始化 + wrap()
|
|
// ============================================================
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:liquid_glass_widgets/liquid_glass_widgets.dart';
|
|
|
|
import 'app/app.dart';
|
|
import 'core/storage/kv_storage.dart';
|
|
import 'core/utils/logger.dart';
|
|
import 'core/registry/page_registry.dart';
|
|
import 'core/router/app_router.dart';
|
|
|
|
/// KV 存储是否初始化成功
|
|
bool kvStorageReady = false;
|
|
|
|
/// 应用入口
|
|
void main() async {
|
|
WidgetsFlutterBinding.ensureInitialized();
|
|
|
|
// ---- 初始化 KV 存储 ----
|
|
try {
|
|
await KvStorage.init();
|
|
kvStorageReady = true;
|
|
Log.i('KV 存储初始化完成');
|
|
} catch (e) {
|
|
Log.e('KV 存储初始化失败', e);
|
|
}
|
|
|
|
// ---- 初始化 Liquid Glass Widgets ----
|
|
await LiquidGlassWidgets.initialize();
|
|
Log.i('LiquidGlassWidgets 初始化完成');
|
|
|
|
// ---- 页面注册表验证 ----
|
|
_validatePageRegistry();
|
|
|
|
// ---- 启动 App (LiquidGlassWidgets.wrap 共享 GPU backdrop) ----
|
|
runApp(LiquidGlassWidgets.wrap(const ProviderScope(child: XianyanApp())));
|
|
}
|
|
|
|
/// 页面注册表强制验证
|
|
void _validatePageRegistry() {
|
|
final errors = PageRegistry.validateAll();
|
|
if (errors.isNotEmpty) {
|
|
for (final e in errors) {
|
|
Log.e('页面注册表验证失败: $e');
|
|
}
|
|
} else {
|
|
Log.i('页面注册表验证通过,共 ${PageRegistry.pageCount} 个页面已注册');
|
|
}
|
|
|
|
final route = AppRoutes.home;
|
|
if (!PageRegistry.isRouteRegistered(route)) {
|
|
Log.e('页面注册表验证: 首页路由 $route 未注册!');
|
|
}
|
|
}
|