开源 从零上手flutter一个月可以做出什么东西?
前言
上手flutter
差不多一个月 的时间了,总结一下吧!毕竟沉淀(摸鱼)两个月了,还是得重新记录记录下。
先说一下本来是打算空闲时间写个app来玩耍一下的,一开始本来想用原生安卓的,后来又想跨平台.然后就筛选了3个方案
react-native
: facebook旗下的,但是网上找了下资料,发现大多数都是几年前的,在说对react
不是特别熟悉。 故放弃。uni-app
:国内团队,目前公司小程序就是用的这个,不想在入坑了。故放弃。flutter
: 谷歌开源,国内也有很多公司在使用,比如最早的 闲鱼,然后上手写了个demo感觉还不错,再加上本身就是个UI框架。最终决定使用flutter
开发。
在当时决定时我是根本没有接触过flutter
的,就当作学习了,给予最大帮助的还是github
(全球最大的同性交友网站gayhub),官方文档。
也就每天下班后和周末有时间可以写写
什么是flutter?
Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。简单来说,Flutter是一款移动应用程序SDK,包含框架、控件和一些工具,可以用一套代码同时构建Android和iOS应用,并且性能可以达到原生应用一样的性能。详情请参考Flutter简介 。
flutter使用心得
从我的观点来看的话 flutter
还是很不错,生态也在慢慢的发展,就是这个套娃语法有时候看着有点吃力,不过拆分一下还是可读的。
目前flutter
的第三方库还是能满足日常的app的,反正我写个视频类的app还是行的,说到这就得吐槽下flutter
的视频方面感觉比较弱一点,官方的video player
又太麻烦,比较出名点的有chewie、fijkplayer。支持自定义UI。
可能部分手机会有掉帧的情况,网上也有人遇到过,不过我身边除了我的手机好像并没有出现这样的情况(oneplus 5T 钉子户)
写到这突然就不知道怎么写了,感觉很乱,还是结合一下具体项目说一下吧。
开源 alltv 一个app看全网主播
![]() |
![]() |
![]() |
![]() |
写这个app也只是为了图个方便,在一个想学学新的的东西。
路由管理 fluro
网络请求 dio
dio是Flutter中文网开源的一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等。 dio
视屏播放器
其他的就不详细说了
dependencies:
flutter:
sdk: flutter
# storage
shared_preferences: ^0.5.6+3
# 状态管理
provider: ^4.0.5+1
# 屏幕适配
flutter_screenutil: ^1.1.0
# 路由管理
fluro: "^1.6.3"
# 下拉刷新
pull_to_refresh: ^1.5.7
# toast
fluttertoast: ^4.0.0
# 网络请求
dio: ^3.0.9
cached_network_image: ^2.2.0
#websocket
web_socket_channel: ^1.1.0
# 视频播放
fijkplayer: ^0.8.3
crypto: ^2.1.3
cupertino_icons: ^0.1.2
JSON to Dart
安利一个比较方面的工具,flutter是不支持反射的,那么后端获取的json 怎么快速转成对象呢? 那么这个网站比较方便 json to dart
flutter 踩坑日记
flutter build apk 真机无法请求网络
具体原因是安卓高版本默认不开启网络访问权限,需要自己手动开启, 在这个文件里,android\app\src\profile\AndroidManifest.xml,manifest 里添加这段代码:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
你以为就完了?还有呢,在src\main下面也有一个AndroidManifest.xml,同样需要相同的操作,主要不要放到application下了。
不能访问http请求
原因:IOS和Android 9.0+对非HTTPS请求做了一些限制,不能直接访问Http请求,在Android中会出现net:ERR_CLEARTEXT_NOT_PERMITTED的错误 解决办法:
- 在src/res/xml下面创建
network_security_config.xml
,配置如下所示:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
- 在src\main下的AndroidManifes.xml上添加:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
<!-- ... -->
</application>
</manifest>
其实项目中往往不止这些坑,只不过当时没记录,这时候你很难想到了。
项目地址
END
如果觉得对你有所帮助,那就麻烦点个Star,谢谢!
转载自:https://juejin.cn/post/6844904168071626759