# flutter **Repository Path**: hahalele/flutter ## Basic Information - **Project Name**: flutter - **Description**: Flutter 学习笔记 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-04-15 - **Last Updated**: 2025-04-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Flutter 应用开发 ## 1. 应用开发目录结构 ``` my_flutter_app/ ├── android/ # 存放Android平台特有的代码和资源,如AndroidManifest.xml等 │ └── ... ├── ios/ # 存放iOS平台特有的代码和资源,如Info.plist等 │ └── ... ├── linux/ # linux 系统代码和资源 │ └── ... ├── macos/ # macos 系统代码和资源 │ └── ... ├── lib/ # 存放Dart代码,这是Flutter应用的核心 │ ├── main.dart # Flutter应用的入口文件 │ └── ... # 其他Dart文件,如页面、控件等 ├── test/ # 存放测试代码 │ └── ... ├── .gitignore # Git版本控制忽略文件 ├── .metadata # Flutter项目的元数据(如Flutter SDK版本等) ├── .packages # Dart的依赖包索引 ├── analysis_options.yaml # 定义项目中静态代码分析的规则和配置 ├── pubspec.lock # 记录了当前项目实际使用的依赖包的版本 ├── pubspec.yaml # 定义了Flutter项目的依赖(如插件、Flutter SDK版本等) └── README.md # 项目的README文件 ``` ## 2. app/lib 应用开发目录设计 ### 1. 方案一 - common 一些工具类,如通用方法类、网络接口类、保存全局变量的静态类等 - l10n 国际化相关的类都在此目录下 - models 数据层,Sqlite 或者 JSON - states 保存 APP 中需要跨组件共享的状态类 - routes 存放所有路由页面类 - widgets APP 内封装的一些 Widget 组件都在该目录下 ## 3. 终端命令 - 检测 Flutter ` flutter doctor ` ### 1. iOS 终端命令 1. 列出所有可用的iOS模拟器 ` xcrun simctl list devices ` 2. 启动特定的模拟器,例如 iPhone 11 ` xcrun simctl boot ` 3. 连接到设备或模拟器 ` flutter devices ` ### 2. 应用管理 1. 创建项目 ` flutter create app ` 2. 运行Flutter应用 ` flutter run ` ### 3. 打包 1. 打包APK(Android Package Kit) ` flutter build apk ` 2. 打包用于发布的APK(带有签名和压缩) ` flutter build apk --release ` 3. 打包iOS应用(这将生成一个.app包,但通常还需要Xcode来创建IPA包) ` flutter build ios --release ` ## 4. 组件介绍 ### 0. 顶级组件 #### 1. MaterialApp - 以 具象设计风格 [Material Design] 为主体的界面组件 #### 2. CupertinoApp - 以 Cupertino Design [苹果设计风格] 为主体的界面组件 --- - *学习指引* 1. https://developer.apple.com/cn/design/ 2. https://developer.apple.com/cn/design/human-interface-guidelines/ ### 1. 文本 ### 2. 列表 ### 3. 表格 ### 4. 表单 ### 5. 图片 ### 6. 视频 ### 7. 按钮 ### 8. 顶部导航 ### 9. 底部导航 ### 10. 公共组件 #### 1. 弹窗组件 #### 2. 选项卡 #### 3. 时间选择 #### 4. 地址选择 #### 5. 轮播组件 #### 6. 下拉刷新 #### 7. 上滑刷新 ## 5. 事件系统 ### 1. 点击 ### 2. 滑动 ## 6. 网络请求 ## 7. 调用系统功能 ### 1. 蓝牙 ### 2. 摄像头 ## 8. Sqlite3 操作 ## 9. 状态管理