主流常用第三方库

1.2 项目开发流程

需求分析与设计:明确项目目标、功能模块、用户界面。
技术选型:确定状态管理方案、网络请求库、数据存储方式等。
项目初始化:创建Flutter项目,配置基本结构。
模块开发:分模块实现功能,逐步集成。
测试与调试:单元测试、Widget测试、集成测试,修复bug。
性能优化:根据DevTools分析结果进行优化。
打包与发布:准备发布材料,生成安装包。

2.1 深入理解Flutter原理

渲染机制:深入了解Flutter的渲染管线,包括Widget、Element、RenderObject三棵树的工作原理,以及如何进行UI的构建、布局和绘制。
Engine层:了解Flutter Engine(Skia、Dart VM、Text rendering等)的工作方式,以及它如何与平台原生代码交互。
平台通道 (Platform Channels):更深入地学习如何编写和使用Platform Channels,实现Flutter与原生代码(Kotlin/Java for Android, Swift/Objective-C for iOS)之间的双向通信。
2.2 状态管理深入

掌握多种状态管理方案:除了Provider,还可以学习其他流行的状态管理方案,如:
Riverpod:Provider的改进版,提供了编译时安全和更灵活的依赖注入。
BLoC/Cubit:基于事件和状态流的模式,适合复杂业务逻辑和大型应用。
GetX:轻量级、高性能的解决方案,集成了状态管理、路由管理、依赖注入等。
MobX:基于响应式编程的解决方案。
选择适合项目的方案:理解不同方案的优缺点和适用场景,以便在实际项目中做出明智的选择。
2.3 架构设计与模式

分层架构:学习如何将应用划分为不同的层(如UI层、业务逻辑层、数据层),提高代码的可维护性和可测试性。
设计模式:在Flutter开发中应用常见的设计模式,如工厂模式、单例模式、观察者模式等。
Clean Architecture / Domain-Driven Design:对于大型复杂应用,可以考虑引入更高级的架构模式,如Clean Architecture或DDD。
2.4 测试策略

单元测试 (Unit Testing):测试独立的函数、类或业务逻辑。
Widget测试 (Widget Testing):测试单个Widget或Widget树的UI和交互。
集成测试 (Integration Testing):测试应用的不同部分如何协同工作,模拟用户真实操作。
自动化测试:学习如何使用flutter_driver或Patrol进行UI自动化测试。
2.5 性能优化与调试进阶

深入DevTools:熟练使用DevTools的各个功能,进行更细致的性能分析和内存调试。
渲染性能优化:理解RepaintBoundary、ShaderMask等高级Widget的优化作用。
内存管理:避免内存泄漏,优化图片和资源加载。
2.6 跨平台与多端适配

Web支持:学习如何将Flutter应用部署到Web平台,并进行Web特有的优化。
桌面端支持:了解Flutter桌面应用开发,包括桌面端特有的UI/UX设计和功能实现。
响应式布局:掌握如何构建能够适应不同屏幕尺寸和方向的响应式UI。
2.7 生态系统与工具

常用插件:探索更多有用的第三方插件,如地图、支付、推送等。
Firebase/Backend as a Service (BaaS):学习如何将Flutter应用与Firebase等后端服务集成,快速实现用户认证、数据库、云存储等功能。
CI/CD:学习如何设置持续集成/持续部署流程,自动化应用的构建、测试和发布。

  1. 推荐优质学习资源
    Flutter官方文档:永远是最好的学习资源,包含了最权威、最全面的信息。
    Flutter Cookbook:提供了大量常见问题的解决方案和代码示例。
    Dart官方文档:深入理解Dart语言的特性。
    pub.dev:Flutter和Dart包的官方仓库,查找和学习第三方库的用法。

一、Flutter学习资料

二、iOS开发辅助工具

对于Flutter开发者来说,发布应用到App Store是一个重要环节。AppUploader是一款专业的iOS开发助手工具,可以帮助开发者:

  • 简化iOS证书和描述文件管理流程
  • 一键上传IPA到App Store Connect
  • 支持批量处理多设备UDID
  • 提供详细的错误诊断信息

AppUploader特别适合Flutter开发者使用,因为它能自动处理与原生平台相关的复杂配置问题,让开发者更专注于Flutter应用开发本身。

三、三方框架库

1、网络库

dio
  • 网络请求
  • dio: ^3.0.9
  • 一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时、自定义适配器等...
http
  • 网络请求
  • http: ^0.12.0+2
connectivity
  • 监听网络状态
  • connectivity: ^0.4.3+6
cookie_jar
  • cookie持久化
  • cookie_jar: ^1.0.0
flutter_downloader
  • 服务端下载

2、UI库

fluttertoast
  • Toast
  • fluttertoast: ^3.1.0
flutter_swiper 或 carousel_slider
  • (图片)轮播组件库 banner
  • flutter_swiper: ^1.1.6
flutter_webview_plugin
  • 加载webview网页
  • flutter_webview_plugin: ^0.3.5
flutter_html
  • 加载富文本
  • flutter_html: ^0.11.0
flutter_markdown
  • 加载markdown
  • flutter_markdown: ^0.2.0
zefyr
  • 富文本编辑器
  • zefyr: ^0.8.0
badges
  • 徽章
  • badges: ^1.1.0
fl_chart
  • 图表
  • fl_chart: ^0.1.5
city_picker 或 city_pickers
  • 城市选择器
  • city_picker: ^0.1.3
azlistview
  • 列表索引
  • azlistview: ^0.1.2
file_picker
  • 文件选择器
  • file_picker: ^1.3.8
flutter_calendar_carousel 或 table_calendar
  • 日历
  • flutter_calendar_carousel: ^1.3.18
date_range_picker
  • 日期区间选择器
  • date_range_picker: ^1.0.6
flukit
  • Flutter UI组件库
  • flukit: ^1.0.2
city_pickers
  • Flutter 省市区选择器
flutter_datetime_picker
  • 时间日期
jiffy
  • 日期格式化相关

3、加载指示器库

flutter_spinkit
  • 动画库-加载指示器
  • flutter_spinkit: ^3.1.0
flutter_easyloading
  • 弹框加载中等待
loading_indicator 、loading_animations
  • 加载指示器
adaptive_dialog、giffy_dialog
  • 弹框提示
bot_toast、toast、fluttertoast、oktoast、flutter_styled_toast
  • 吐司弹框提示
popover
  • 提示
flutter_update_dialog
  • 更新app弹框

4、数据库

sqflite
  • 数据库
  • sqflite: ^1.1.6
shared_preferences
  • sp本地存储
  • shared_preferences: ^0.5.3+4
  • 简单的,异步的,持久化的key-value存储系统,在Android上它是基于SharedPreferences的,在iOS上它是基于NSUserDefaults

5、设备库

share
  • 分享
  • share: ^0.6.2+1
camera
  • 相机
  • camera: ^0.5.2+2
device_info 、url_launcher
  • 设备信息,系统库(app相关信息、打电话、发邮件等)
  • device_info: ^0.4.0+2
package_info
  • 包信息
  • package_info : ^0.4.0+6
path_provider
  • 获取本地文件路径
  • path_provider: ^1.2.0
flutter_keyboard_visibility、keyboard_utils
  • 获取键盘相关

6、工具库

rxdart
  • 函数式编程
  • rxdart: ^0.22.1+1
event_bus
  • 消息传递
  • event_bus: ^1.1.0
event_bus、scoped_model
  • 事件传递(跨组件传递数据)
url_launcher
  • 打开链接
  • url_launcher: ^5.1.2
intl
  • 国际化
  • intl: ^0.15.8
video_player
  • 视频播放器
  • video_player: ^0.10.1+6
audioplayers
  • 音频播放器
  • audioplayers: ^0.13.1

7、动画库

flutter_spinkit

支持各种动画,可用来做加载动画等

sn_progress_dialog
  • 进度条
flutter_slidable
  • 列表左右滑弹出按钮
sliding_up_panel、modal_bottom_sheet
  • 底部弹出框
custom_navigation_bar、convex_bottom_bar (推荐)、curved_navigation_bar、persistent_bottom_nav_bar、animated_bottom_navigation、animated_bottom_navigation_bar
  • 底部弹出框
flutter_animator、flutter_staggered_animations、animations、simple_animations、lottie
  • 动画库
wave
  • 波浪纹
implicitly_animated_reorderable_list
  • 列表拖动
circular_menu
  • 旋转菜单
draggable_scrollbar
  • 自定义滚动条
flutter_slider_drawer、collapsible_sidebar
  • 侧边栏

8、条形码-二维码扫描

barcode_scan

支持iOS、android两端的条码-二维码扫描库

qr_flutter
  • 二维码
  • qr_flutter: ^2.1.0+55
qrscan
  • 扫描

9、下拉加载上拉加载更多

pull_to_refresh

很强大的一个库,可以实现多种效果,强烈建议

loadmore

ListView上拉加载更多,挺好用的

flutter_easyrefresh
  • 下拉刷新上拉加载
  • flutter_easyrefresh: ^2.0.0
liquid_pull_to_refresh
  • 下拉刷新加载
infinite_scroll_pagination
  • 上拉加载刷新

10、版本更新

ota_update

支持Android应用内下载,实现应用内更新功能

url_launcher

网页打开工具,适用于iOS版本更新,可以打开应用地址,跳转AppStore更新

permission_handle upgrader app升级

11、权限

permission_handle

权限管理,可用来检测权限是否获取等

simple_permissions
  • 权限相关
  • simple_permissions: ^0.1.9
permission_handler
  • 权限管理相关
flutter_cache_manager
  • 文件缓存管理
open_file
  • 打开文件

12、视频封面图获取

video_thumbnail

可以获取本地和网络视频的封面图

  • socket_io_client
    io流
  • video_compress_ds
    视频压缩

13、状态、路由管理

getx

GetX 是 Flutter 上的一个轻量且强大的解决方案:高性能的状态管理、智能的依赖注入和便捷的路由管理。

provide
  • 状态管理
  • provide: ^1.0.2
provider
  • 状态管理
  • provider: ^3.0.0+1
fluro 或 auto_route
  • 页面路由
  • fluro: ^1.5.1

14、图片相关

image_picker 或 multi_image_picker2、flutter_wechat_assets_picker(推荐:防wx)
  • 图片选择器
  • image_picker: ^0.6.1
cached_network_image
  • 图片缓存
  • cached_network_image: ^1.1.1
photo_view
  • 图片手势, 图片预览
  • photo_view: ^0.4.2
font_awesome_flutter
  • 图标库
  • font_awesome_flutter: ^8.5.0
image_gallery_saver
  • 保存图片至本机
device_preview
  • 真机预览
image_cropper
  • 图片裁剪
flutter_luban
  • 图片压缩

15、三方SDK

fluwx
  • 微信SDK相关
flutter_bmflocation
  • 百度定位插件
flutter_baidu_mapapi_map
  • 百度地图基础地图插件
amap_flutter_location
  • 高德地图定位插件
amap_flutter_map
  • 高德地图基础地图插件

16、其它

flutter_native_splash、introduction_screen、intro_slider、animated_splash
  • 启动屏
flutter_screenutil
  • 屏幕适配方案
badges
  • 角标、标记
flutter_colorpicker
  • 取拾器
pin_code_fields
  • 验证码输入
flutter_rating_bar、smooth_star_rating
  • 评分评价
flutter_blurhash
  • 高斯模糊
like_button
  • 动态按钮(点赞收藏)
flutter_app_badger
  • app数字角标
flutter_custom_clippers
  • 组件裁剪
readmore
  • 读取更多内容

常用库
屏幕适配flutter_screenutil
加载 svg flutter_svg
状态管理 flutter_bloc(bloc、equatable)、provider
视频播放器chewie
图片缓存cached_network_image
网络请求 dio
设备信息查询device_info_plus
文件路径 path_provider
包信息 package_info_plus
简单数据存储shared_preferences、encrypted_shared_preferences(加密)
toast fluttertoast
图片选择器image_picker
文件选择器 file_picker
json 动画lottie
log 日志logger
下拉刷新上拉加载pull_to_refresh
webview webview_flutter_plus
系统设置app_settings
网络状态connectivity_plus
代理 http_proxy
路由 go_router、fluro
图片压缩 flutter_image_compress
骨架动画 skeletonizer
代码自动生成build、build_config、source_gen
in app webview flutter_inappwebview
权限管理 permission_handler
与native相互通讯 pigeon
分享 share_plus
uuid uuid
打开第三方应用 url_launcher
splash flutter_native_splash
图表 fl_chart
二维码 mobile_scanner
加密 crypto

Android垃圾代码生成插件
https://github.com/qq549631030/AndroidJunkCode

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容