开源 从零上手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 xvideo player 又太费} 6 7事,比较出名点的有chewie、fijkplayer。支撑自定义UI。
可能部分手机会有掉帧的状况,网上也有人遇到过,不过我身边除了我的手机如同并没有呈现这样的状况(oneplus 5T 钉子户)
写到这突然就不知道怎样写了,感觉很乱,仍是结合一下详细项目说一下吧。

开源 alltv 一个f { 0 # P vapp看全网主播

开源 从零上手flutter一个月可以做出什么东西? 开源 从零上手flutter一个月可以做出什么东西? 开源 从零上手flutter一个月可以做出什么东西? 开源 从零上手flutter一个月可以做出什么东西?

写这个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,谢谢!