Flutter是一种开源框架,用于构建高品质、高性能、美观的移动应用程序。它是由谷歌开发的,可以用来创建iOS和Android应用,甚至可以在Web、桌面和嵌入式设备上运行。Flutter的设计理念是使用单一代码库构建多个平台,这意味着开发人员只需要编写一次代码,就可以在多个平台上运行。
1. 快速开发:Flutter拥有丰富的组件库和强大的工具集,使开发人员可以快速构建应用程序。Flutter使用热重载功能,可以快速预览和调试应用程序,这样开发人员可以更快地开发和测试应用程序。
2. 精美的UI:Flutter使用自己的渲染引擎,可以快速构建美观的用户界面。Flutter提供了大量的自定义组件和动画效果,可以帮助开发人员创建具有高度个性化的应用程序。Flutter还提供了Material Design和Cupertino风格的组件,可以快速创建与平台相似的应用程序。
3. 高性能:Flutter使用自己的渲染引擎和框架,可以快速绘制UI并提高性能。Flutter使用Dart语言,它是一种高性能的语言,可以提高应用程序的性能和响应速度。
4. 跨平台:Flutter可以在多个平台上运行,包括iOS、Android、Web、macOs、Windows、linux。这意味着开发人员只需要编写一次代码,就可以在多个平台上运行。Flutter还提供了平台特定的API和组件,可以帮助开发人员创建与平台相似的应用程序。
但是对于需要刚入门的开发者来说,甚至一些有过flutter开发经验的同学来说,选择flutter上手App开发,面对很多库的选择,以及开发架构的搭建是一件比较麻烦的事,那么,有没有一种办法非常简单的低成本的就生成一个比较友好的框架来支持flutter开发App呢?
比如,支持多语言切换,支持主题切换,比较易用的全局数据框架,比较方便的页面之间路由的跳转,好的网络请求库,日志,错误上报等等一系列的工具支撑。
答案肯定是有的,这就是本文的重点;开门见山,本文是介绍一款mason上制作的flutter项目模板,可以帮助flutter开发者1分钟创建一个框架友好,能力齐全的flutter项目框架,1分钟就可以跑起来。
https://github.com/bravekingzhang/flutter_template_mason
# 安装mason_cli
dart pub global activate mason_cli
# 创建一个文件夹,并在该文件夹下创建一个文件mason.yaml
make dir ${your_project_name}
cd ${your_project_name}
touch mason.yaml
# 写入一些配置
bricks:
flutter_template_mason:
git:
url: "https://github.com/bravekingzhang/flutter_template_mason"
path: "."
# add brick
mason get
# 基于模板生成项目
mason make flutter_template_mason --project_name ${your_project_name}
以上就是创建项目的全部过程,基本上可以在1分钟之内完成整个项目的创建,注意,${your_project_name}
替换为你想取的项目名,创建完毕就可以直接跑起来。下面是运行这个模板项目的效果:
能力介绍,以下是模板项目中使用到的库:
库的名称 | 好处 | 解决的问题 | 介绍 |
---|---|---|---|
go-router | 更加清晰化的路由方式类似web url的方式局部导航 | 解决路由混乱的问题 | go_router(每周一包) - YouTube |
flutter-bloc | 解耦业务逻辑和界面业务逻辑单侧插件【持久化,可回放,】界面清晰,无任何逻辑复用性强 | 解耦业务逻辑与界面逻辑,使得业务逻辑可单侧,提高可维护性,增强可复用性。 | package:bloc (bloclibrary.dev) |
hydrated_bloc | 状态本地自动持久化缓存内置hive实现,读写性能好 | 解决需要将状态换成本地的问题,通常可以用来缓存一些用户设置。 | hive | Dart Package (pub.dev) 看看很pref性能对比 |
get-it | 解耦展现层与服务统一一个地方注册服务,cs架构形式,随时随地访问服务 | 在页面层,or更底层,需要访问各种服务的问题 | get_it (本周包) - YouTube |
freezed | 为对象自动生成toJson,mapJson,== 操作避免编写错误 | 解放无脑编写必要的胶水代码的问题 | Freezed - 本周包 - YouTube |
修改配置文件,保存将自动生成多语言,维护多套语音成本非常低。
基于hydrated_bloc实现的动态主题管理,自动实现设置好的主题缓存,底层hive实现,比pref等性能更好。
一个bloc实现的简单计数器的示例,完全按照官方标准来实施。极致的实现页面和逻辑隔离,支持灵活的单元测试,组件化测试。
告别flutter自带icon不全的困扰。想要的icon这里可以搜索,https://fontawesome.com/icons
能搜到就可以使用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。