开源 从零上手flutter一个月可以做出什么东西?
前言
上手flutter
差不多一个月 的时刻了,总结一下吧!究竟沉淀(摸鱼)两个月了,仍是得从头记载记载下。
先说一下本来是打算闲暇时刻写个app来游玩一下的,一开始本来h g m y + 3想用原生安卓的,后来又想跨平台.然后就挑选了3个方案
-
react-native
: facebook旗下的,可是网上找了下材料,发现大多数都是几年前的,在说对react
不是特别了解。 故抛弃。 -
uni-app
:国内团队,现在公司小程序便是用的这个,不想在入坑了。故抛弃。 -
flutter
: 谷歌开源,国内也有很多公司在运用,比方最早的 闲鱼,然后上手写了个demo感觉还不错,再加上自身便是个UI框架。终究决议运用flutter
开发。
在当时决议时我是根本没有接触过fE ( A v ( 7lutter
的,就当作学习了,给予* V $ S S * s最大协助的仍是github
(全球最大的同性结交网站gayhub),官方文档。
也就每天下班后和周末有时刻可以写写
什j ) Z Y么是fluttet J W ) 9 g k J 5r?
FL y ^ | E ,lutter是谷歌的移动UI框[ , – % * c架,可以快速在iOS和Android上构建高质量的原生用户界面。 FluZ ] ] a atter可以与现有的代码一2 = –起工b / o Q z作。在全世界,Flutter正在被越来越多的开发者和安排运用,而且Flutter是完全免费、开源的。简单来说,Flutter是一款移动应用程序SDK,包括; M M X U 5 j R框架、控件和一些工具,可以用一套代码同时构建Android和iOS应用,而且性能可以达到原生应用相同的性能。概况请参阅Flutter简介 。
fg q Q + Zlutter运用心得
从我的观念来看的话 flutter
仍是很不错,生态也在慢慢的开展t 5 n &,便是这个套娃语法有时候看着有点吃力,* G C ) c不过拆分一下仍是可读的。
现在flutter
的第三方库仍是能满意日常的app的,横竖我写个视频类的app仍是行的,说到这就得吐槽下flutterJ e e K 0
的视频方面感觉比较弱一点,官方s – 6 ! 3 m P x的video player
又太费} 6 7事,比较出名点的有chewie、fijkplayer。支撑自定义UI。
可能部分手机会有掉帧的状况,网上也有人遇到过,不过我身边除了我的手机如同并没有呈现这样的状况(oneplus 5T 钉子户)
写到这突然就不知道怎样写了,感觉很乱,仍是结合一下详细项目说一下吧。
开源 alltv 一个f { 0 # P vapp看全网主播
写这个app也只是为了图个方便,在一个想学学新的的东西。
路由办理 fluro
其实自身~ 3 ~ [ RappX 5 + Z s I v 1页面并不多,fluttg j 8 U F I 8 8er原生路由也可以满意,但仍是决议用下框架,项目运用fluro
很痛心的一点,框架自身并不支撑中文参数,所以得手动处理。
概况请k f M k见
网络恳求 dio
dio是Flutter中文网开源的一个强大的Dar3 E Yt Http恳求库,支撑Rest/ W i qful API、FormData、拦截器、恳求取消、Cookie办理、文件上传/下载、超时等。
dio
视屏播放器
采用 开源fijkplayer
作者) o # h X如同也在掘金。根据b站开源的ijkplV @ N – | 8 aayer 详细请见 fijkplayer
其他的就不{ Y Q 0 p –详细说了
dependenci; P ces:
flutter:
sdk: flutter
# storage
shk 7 t N n rared_preferences: ^e c Q f = i ! , b0.5.6+3
# 状态G a K办理
provi% y r o cder: ^4.0.5+1
# 屏幕适配
flutter_screeb = ? s C N | Knutil: ^1.1.0
# 路由办理
fluro: "^1.6.3"
# 下拉刷新
pull_to_refresh: ^1.5.7
# toast
fluttertoast: ^4.0.0
# 网络恳求
dio: ^3.0.9
cachI m 4 6 5 A )ed_network_image: ^2.2.0
#websocket
web_socket_channel: ^1.1.0
# 视频播放
fijkplayer: ^0.8.3
crypto:y ? K f = ; } N 9 ^2.1.3
cupertino_icons: ^0.1.2
JSON to Dart
安利一个比较方面的工具,flutter是不支撑反射的,那么后端获取的js. L X = j U +on 怎样快速转成目标呢?
那么这个网站比较方便 json to dart
f} o CluttJ Q F (er 踩坑日记
flutter builE K : G 0 X I O {d apk 真机无法恳求网络
详细原因是安卓高版本默许不敞开网络拜访权限,需要自己手动敞开,
在这个文件里,androidappsrcprofileAndroidManifest.xml,manifest 里添加这段代码:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="androG : d [ - ~ * W Kid.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:namO k *e="android.permission.ACCESS_WIFI_S+ # + } y 4 8 ,TATE" />
你以为就完了?还有呢,在srcmain下面也有一个AndroidMani 2 X V ; J 3 ]ifest.xml,同样需要相同的操作,主要不要放到application下了。
不能拜访http恳求
原因:IOS和Android 9.0+对非HTTPS恳求做了一些约束,不能直接拜访Http恳求,在Android中会呈现net:ERR_CG s ! w w d & ZLEARTEXT_NOT_PERMITTED的过错
解决办法:
- 在src/res/xml下面创建
network_security_config.xml
,装备如下所5 0 F示:
<?xml version="1.0" encoding="utf-8"?>
<F ^ b network-security-config>
&* % # - B N Clt;base-config cleartextTrafficPeW n k Q # [rmitted="true" /U v Y ^ 6>
</network-security-config>
- 在srcmain下的AndroidManifes.xml上添加:
<?L ~ 0 5 exml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="K ( j [ # 9 o@xml/network_security_config">
<!-- ..m f % r P , r. -->
</application>
</manifest>
其实项} l = q目中往往不止这些坑,只不过当时没记载,这时候你很难想到了。
项目地址
传送门:Q & W R m S $ U Lgithub
apk:蓝奏云
END
假如觉得对你有所协助,那就费事点个Star,谢谢!