2021 年的Flutter是跨平台应用开发领域的后起之秀。无论是学生的大学项目、小型创业公司、独角兽还是大型科技巨头都在使用flutter。文件结构是应用程序数据的组织方式。文件结构在项目的有效和轻松管理中起着非常重要的作用,无论大小。随着项目规模的增长,为代码提供适当的结构和格式变得越来越重要,否则会导致许多不希望出现的问题,例如:
- 无法找到特定文件是一个存储库,使其成为一项耗时的任务。
- 不适合团队合作。
- 难以维护。
- 或者在最坏的情况下,它可能导致应用程序性能低下。
为了解决所有这些问题,我们需要在我们的flutter应用程序中有一个良好的文件结构,这就是我们将在本文中讨论的内容。
虽然flutter没有在应用程序的结构上给出任何建议,但我们仍然应该以最好的方式去做。为了实现一般flutter应用程序的最佳文件结构,我们将其分为七个部分。但在此之前,我们始终需要记住的一件重要事情是文件和目录的命名必须始终采用正确的格式。例如,如果有人正在创建一个社交媒体应用程序并想要制作一个文件来存储其使用数据,那么它应该是这样命名的。
Naming for files and directories
//this is the right method
user_data.dart (lower case for both words separated by underscore)
//these methods should be avoided
userData.dart (camel case)
UserData.dart (upper case for both words)
Loginview.dart (upper case for first word)
Login_View.dart (upper case for both words separated by underscore)
每当我们在flutter创建一个新项目时,这些都是我们提供的文件和目录。但这些只是最基本的,我们将在下面列出的项目中添加一些其他文件夹和文件。
1. 资产:应用程序的静态资产。
这个目录在根级将包含应用程序中使用的所有静态资产,例如,字体、图标、徽标、背景图像、演示视频等。非常建议我们应该为一个不同的目录设置不同的目录。不同类型的数据,例如图像、视频和徽标,应该有自己的不同文件夹,以便更容易维护和访问它们。
2. 云函数:应用中使用的云函数。
云函数是存储在一些服务器上的后端代码,例如谷歌云,这些函数在某些特定事件发生时运行。在社会化媒体云函数的一个例子是其中的一个按钮的点击打开接收服务器上的文本,音频或视频数据,并将其存储以备将来使用URL的函数。当所有云函数都在应用程序的根级别时,这变得非常方便。
3. 屏幕:应用程序的屏幕/UI。
该目录将包含整个应用程序 UI 的实际布局。它可以进一步分发到两到三个文件夹中。一个存储闪屏和登录页面,如登录/注册屏幕,第二个文件夹可以存储主屏幕和其他常用屏幕,第三个文件夹可以包含不那么重要的屏幕
4. Providers:应用外的交互。
这个目录应该保存所有从应用程序外部处理数据的交互。这与云函数不同,该目录中的代码都不会与云存储或服务器交互。如果我们考虑一个天气应用程序,一个很好的例子就是天气和从 API 接收的 JSON 形式的需要翻译以供使用的位置数据。
5. Utilities:应用程序中使用的函数或逻辑。
这个目录将保存我们整个应用程序的所有应用程序逻辑或业务逻辑。天气应用程序中的一个很好的例子是,当用户选择不同的位置时,天气数据也应该相应地改变。或者在登录社交媒体应用程序的情况下,应用程序数据也应相应更改。
6. Widgets:应用程序中使用的小部件/布局。
从名称本身可以清楚地看出,该文件夹将保存所有静态小部件或在应用程序中多次使用的小部件。例如,如果是像Instagram这样的社交媒体应用程序,所有推荐的朋友的列表视图总是相同的,唯一改变的是数据。或者,如果它是一个天气应用程序,显示特定位置的磁贴对于所有位置都是相同的,唯一改变的是地点的名称。
7. 模型:数据的收集。
模型是通常来自服务器、用户或外部 API 的数据集合,这些数据与小部件结合使用以完成应用程序的用户界面。同样,以天气应用程序为例,模型或一组数据可以是位置名称、摄氏和华氏温度。如果我们考虑一个显示用户个人资料页面的社交媒体应用程序,那么它可能包含用户名、年龄、个人资料图片、描述等。
对于初学者来说,将flutter应用程序分成这么多部分似乎很荒谬或无用,但如果保持良好的文件结构成为一种习惯,它可能会带来很多好处。对于从事生产应用程序的大型组织而言,维护良好的文件结构不是一种选择,而是一种必要。