![]() |
![]() |
![]() |
![]() |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Flutter 1.12.13
Dart 2.7.0
git clone https://github.com/SHIMLY-GitHub/flutter_music.git
https://binaryify.github.io/NeteaseCloudMusicApi/#/?id=%e5%ae%89%e8%a3%85
lib/http_request/config.dat
更改baseURL 为第二步 中配置的接口地址flutter run
默认情况下是debug模式。 如果你想获得更好的体验可以执行flutter run --release
release模式下会比debug模式运行更流畅provider
状态管理shared_preferences
存储用户信息flutter_swiper
轮播图flutter_screenutil
屏幕适配cached_network_image
这个网络图片缓存框架 既有动画又有本地缓存 系统自带的要么有缓存没动画 要么有动画没缓存vibrate
震动反馈audioplayers
音频播放flutter_flexible_toast
信息提示 我是一个iOS开发者,刚刚学习flutter 的时候确实不太适应这种声明式UI布局的理念,但是随着不断学习的深入 我发现之前在iOS上特别复杂的布局 在Flutter上变的如此简单,当你熟悉了以后会发现你的布局效率大大的提升。在学习的过程中 也踩了不少坑,最近写了这个简单的项目 就是想给打算入坑Flutter 但是又不知道如何开始的同学一些思路,在编写代码的过程中 对于widget的命名 我尽量避免了一些iOS平台专有的控件名称比如 cell
tableView
(因为这样对Andoroid的同学很不友好) 在文件命名和方法命名上 我翻阅了Flutter的源代码 尽量和系统保持统一。因为功能不多,也没有复杂的业务逻辑 ,更没有复杂的布局 特别适合新手入门学习 接下来我可能会加入一些UITest 完善一下整个的开发流程
关于Flutter的优势以及优点不在赘述,请前往Flutter官网自行查看,我主要说一下Flutter目前存在一些不足之处
widget
提取widget
来减少层级套用,如果你写Object-C代码 手写布局的话 你都写一个方法里 不封装 ,不抽取, 不加注释,其实这样的代码 看起来并不一定比回调地狱好多少。回调地狱的存在恰好可以让你审视自己写的代码 是否可读性强 是否易于维护。关于 Flutter 在iOS平台的表现能力,虽然Flutter绕过了js桥接带来的性能损耗 直接使用对应平台的GPU进行渲染,其性能接近原生。就实际来看 也确实如此,不过在iOS平台 实话实说 总感觉跟原生还有有点差距,但这并不是说Flutter的性能比原生要差很多,更多的原因可能是因为iOS平台的动画效果 相对更加流畅,所以给人感觉原生效果似乎性能更好。我知道的商业项目大规模应用Flutter 有阿里旗下的闲鱼,还有京东旗下的芬香 但是闲鱼使用的Flutter 引擎是 经过改造,优化以后的 ,并不是github上开源的,至于芬香 一直听说京东有关于Flutter有深度的定制化 不知道京东用的是不是github上开源的。但是 不管怎样这两款App都很有参考意义。
最后关于Flutter的发展 从目前社区活跃度以及中国互联网公司对Flutter的支持来看 大有劲头,Flutter是不是前端的未来 现在不好说 ,但是前端编程大统一 一定是未来,对于这种声明式UI 个人比较看好,因为很多在命令式UI上特别复杂的布局 会变的非常简单。而且谷歌在打造自己的新一代操作系统Fuchsia
前端也是使用Flutter。据 坊间传闻,这个操作系统还有可能取代Android 如果这样发展的话Flutter将大有可为。至于swiftUI 他跟Flutter很像,不过目前还不成熟 社区支持也不完善, 但是以苹果技术社区的力量,以及中国互联网公司KPI的诱惑,一旦swiftUI 成熟起来,相关的配套库就会像雨后春笋一样崛起,如果swiftUI 在将来也可以跨平台了 对于开发者和一些中小型公司来说 真的是善莫大焉。总之 不管是Flutter 还是 swiftUI 未来可期。