Flutter架构设计插件junes_flutter_architecture的使用
Flutter架构设计插件junes_flutter_architecture的使用
June’s Flutter Architecture
- 减少编码时间10倍
- 直观的结构,便于一年后快速掌握项目
- 大量现成的包可供使用
这是一个全面的解决方案架构,提供了极其直观、高效且灵活的方法。它解决了现有Flutter包和系统无法解决的时间消耗任务,显著减少了开发时间。
特性
UI
-
💙 极其直观的widget结构
- 所有页面、组件、底部菜单、提示信息、通知栏和所有widget都被分为视图、用户操作事件、视图循环、加载视图、视图模型和视图模型动作。这使得它们极其直观,随时可以理解,并大大提高了开发速度和维护能力。
-
🚀 统一处理所有widget以完成UI任务
- 页面、组件、底部菜单、提示信息、通知栏、对话框(以及其他正在添加的功能)都具有相同的结构,允许你以统一的方式创建所需的界面,大大增强了可重用性和效率。
-
🍭 大量的widget引用
- 它提供了大量的UI组件供立即使用,如文本字段屏幕、登录屏幕、菜单屏幕等,所有这些都在同一架构内创建。这提供了无穷无尽的组件,使你能够轻松选择并使用所需的视图。
数据库
- ⏱ 极其简单的数据库处理方法
- 通过预先编写在数据库中不可用的类型以便于使用,并且不限制于某个包,它允许你使用所有熟悉的数据类型来操作各种数据库(甚至支持其他数据类的列表类型!)
- 通过为Dart、TypeScript、Python等提供完全一致的数据库结构和通信方法,节省了高达100倍连接其他语言(如Firebase Functions)所需的开发时间。
- 数据库高度结构化,即使你在一年后打开它,也能立即理解其所有方面。
包
- 🦄 已经准备好
- 许多包必须在正确的时间以正确的方式准备才能正常工作。例如,Firebase、FCM、国际化、状态管理、屏幕工具、AdMob等都有不同的加载时间和方法。因此,每次添加这些包时,许多开发者都需要花费大量时间考虑在哪里放置它们。即使这样,随着时间推移,它们会增加维护成本。
- 你只需开始你的项目并编写必要的代码,因为所有包都已经准备好使用。
清洁架构
- 🦄 极其简单
- 通过预先安装复杂的大量清洁架构样板代码,设计用于在使用时应用清洁架构。
快速入门
- 当前指南主要针对Mac。
- 请查看这里并确定是否还有未安装的程序。
- 前往以下GitHub 链接,点击“使用此模板” -> “创建新仓库”,制作一个新的repo,下载它并在Android Studio中打开。
- 打开查找替换窗口(编辑 -> 查找 -> 在文件中替换…),搜索“june.lee.love”并替换为你所需的包名。
- 将
pubspec.yaml
中的name: love
改为name:
。 - 打开终端并输入以下命令以下载包:
flutter pub get
- 输入以下命令后,请链接你的Firebase项目。如果你还没有Firebase项目,请访问该页面创建一个,然后再试一次。
flutterfire configure
更多关于Flutter架构设计插件junes_flutter_architecture的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter架构设计插件junes_flutter_architecture的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
junes_flutter_architecture
是一个帮助开发者快速构建 Flutter 应用程序的架构设计插件。它基于常见的架构模式(如 MVVM、Clean Architecture 等)提供了一套标准化的代码结构和工具,以简化开发流程并提高代码的可维护性。
以下是使用 junes_flutter_architecture
的基本步骤和示例:
1. 安装插件
首先,你需要在 pubspec.yaml
文件中添加 junes_flutter_architecture
插件的依赖:
dependencies:
junes_flutter_architecture: ^1.0.0
然后运行 flutter pub get
来安装依赖。
2. 项目结构
junes_flutter_architecture
建议的项目结构通常包括以下几个主要部分:
- models: 数据模型类
- repositories: 数据仓库,负责与数据源(如 API、数据库)交互
- viewmodels: 视图模型,负责处理业务逻辑
- views: 用户界面组件
- services: 服务层,提供通用的功能(如网络请求、本地存储等)
3. 创建模型
在 models
目录下创建数据模型类。例如:
class User {
final String id;
final String name;
final String email;
User({required this.id, required this.name, required this.email});
factory User.fromJson(Map<String, dynamic> json) {
return User(
id: json['id'],
name: json['name'],
email: json['email'],
);
}
Map<String, dynamic> toJson() {
return {
'id': id,
'name': name,
'email': email,
};
}
}
4. 创建仓库
在 repositories
目录下创建数据仓库类。例如:
import 'package:junes_flutter_architecture/junes_flutter_architecture.dart';
import '../models/user.dart';
class UserRepository {
final ApiService _apiService = ApiService();
Future<User> getUser(String userId) async {
final response = await _apiService.get('/users/$userId');
return User.fromJson(response);
}
}
5. 创建视图模型
在 viewmodels
目录下创建视图模型类。例如:
import 'package:junes_flutter_architecture/junes_flutter_architecture.dart';
import '../repositories/user_repository.dart';
import '../models/user.dart';
class UserViewModel extends BaseViewModel {
final UserRepository _userRepository = UserRepository();
User? _user;
User? get user => _user;
Future<void> fetchUser(String userId) async {
setBusy(true);
try {
_user = await _userRepository.getUser(userId);
} catch (e) {
setError(e);
} finally {
setBusy(false);
}
}
}
6. 创建视图
在 views
目录下创建用户界面组件。例如:
import 'package:flutter/material.dart';
import 'package:junes_flutter_architecture/junes_flutter_architecture.dart';
import '../viewmodels/user_viewmodel.dart';
class UserView extends StatelessWidget {
final UserViewModel _viewModel = UserViewModel();
[@override](/user/override)
Widget build(BuildContext context) {
return ViewModelProvider<UserViewModel>.withConsumer(
viewModel: _viewModel,
onModelReady: (model) => model.fetchUser('1'),
builder: (context, model, child) {
if (model.isBusy) {
return Center(child: CircularProgressIndicator());
}
if (model.hasError) {
return Center(child: Text('Error: ${model.error}'));
}
return Scaffold(
appBar: AppBar(
title: Text('User Profile'),
),
body: Center(
child: Text('User Name: ${model.user?.name}'),
),
);
},
);
}
}
7. 运行应用程序
最后,在 main.dart
中运行你的应用程序:
import 'package:flutter/material.dart';
import 'views/user_view.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Architecture Example',
home: UserView(),
);
}
}