如果你是刚入门Flutter的工程师,可以参考这篇文章,我会告诉大家自己常用的套件以及如何规划档案的分类!
最近有新开一个部落格是在介绍Flutter相关的文章,大家可以去看看~
GetX
Getx是一个非常轻量化的套件,他的主要功能为状态管理(State management)、路径管理(Route management)和依赖管理(Dependency management),非常容易上手适合刚入门的工程师来使用,他也有提供中文的说明,大家可以进去看看!https://pub.dev/packages/get
档案规划
在我使用GetX时,我会这样规划自己的档案分类
Config
我会拿来放一些常数,像是timeout的时间,因为我是使用Firestore来储存资料,所以我还会在这边放我资料库路径的参数。
class Paths { Paths._(); static const String post = 'post'; static const String user = 'user';}
Helper
Helper则是放一些工具,像是数学工具来做一些加减乘除或是Matrix的处理,又或是图片处理,来选择相簿内的照片等功能。
Models
Models放各种会使用到的资料结构,可以根据自己的专案所需再细分成各个资料夹,各个model内则建议有一些内建的function,像是copyWith, toJson, fromJson等基本的功能,之后有机会再介绍。
Network
Network则是根据每个人呼叫api等等的习惯来决定里面的资料夹和档案,我个人习惯使用dio来呼叫api,而repositories则是用来处理Firestore相关的api
Pages
Pages就是app上的各个页面,而里面又会分成一个主画面 + 一个getX的controller(GetX的binding我也会写在里面) 再加上一个widgets的资料夹,当然也可以根据专案的複杂程度再细分成不同的结构。
Routes
Routes则是用来处理GetX的路径
class Routes { Routes._(); static const homeRoute = '/home'; static const splashRoute = '/splash'; static final List<GetPage> routes = [ GetPage(name: splashRoute, page: ()=> const SplashPage(), binding: SplashBinding()), GetPage(name: homeRoute, page: ()=> const HomePage(), binding: HomeBinding()), ]; }
Widgets
Widgets用来放各个页面会共用到的Widgets
今天就先介绍到这里,如果有任何问题、错误或是希望我介绍的主题都可以留言告诉我,谢谢!
这边是我的部落格里面有介绍其他Flutter相关的文章,有兴趣的都可以去看看!