百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

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

bigegpt 2024-08-16 14:23 2 浏览

作者:HarryZhang6

链接:https://juejin.im/post/5ec37764e51d454d9a6a8533

前言

上手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

其实本身app页面并不多,flutter原生路由也可以满足,但还是决定用下框架,项目使用fluro很痛心的一点,框架本身并不支持中文参数,所以得手动处理。 详情请见

网络请求 dio

dio是Flutter中文网开源的一个强大的Dart Http请求库,支持Restful API、FormData、拦截器、请求取消、Cookie管理、文件上传/下载、超时等。 dio

视屏播放器

采用 开源fijkplayer作者好像也在掘金。基于b站开源的ijkplayer 具体请见 fijkplayer

其他的就不详细说了

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>
复制代码

其实项目中往往不止这些坑,只不过当时没记录,这时候你很难想到了。

项目地址

传送门: github 【https://github.com/ha2ryzhang/alltv_flutter 】 apk:蓝奏云

END

如果觉得对你有所帮助,那就麻烦点个赞,谢谢!

学习资料
如果你正在寻找 Flutter 的学习资源,我这里在免费提供了一些 Flutter 的入门——进阶的学习资料,有需要的小伙伴可以私信我【 Flutter】,我分享给你,希望大家都能抓住这次机会,提升自己技能,升职加薪。

Flutter核心进阶资料

  • Flutter项目实战
  • Flutter学习文档
  • Flutter全体系统电子书

相关推荐

了解Linux目录,那你就了解了一半的Linux系统

大到公司或者社群再小到个人要利用Linux来开发产品的人实在是多如牛毛,每个人都用自己的标准来配置文件或者设置目录,那么未来的Linux则就是一团乱麻,也对管理造成许多麻烦。后来,就有所谓的FHS(F...

Linux命令,这些操作要注意!(linux命令?)

刚玩Linux的人总觉得自己在演黑客电影,直到手滑输错命令把公司服务器删库,这才发现命令行根本不是随便乱用的,而是“生死簿”。今天直接上干货,告诉你哪些命令用好了封神!喜欢的一键三连,谢谢观众老爷!!...

Linux 命令速查手册:这 30 个高频指令,拯救 90% 的运维小白!

在Linux系统的世界里,命令行是强大的武器。对于运维小白而言,掌握一些高频使用的Linux命令,能极大提升工作效率,轻松应对各种系统管理任务。今天,就为大家奉上精心整理的30个Linu...

linux必学的60个命令(linux必学的20个命令)

以下是Linux必学的20个基础命令:1.cd:切换目录2.ls:列出文件和目录3.mkdir:创建目录4.rm:删除文件或目录5.cp:复制文件或目录6.mv:移动/重命名文件或目录7....

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

15 个实用 Linux 命令(linux命令用法及举例)

Linux命令行是系统管理员、开发者和技术爱好者的强大工具。掌握实用命令不仅能提高效率,还能解锁Linux系统的无限潜力,本文将深入介绍15个实用Linux命令。ls-列出目录内容l...

Linux 常用命令集合(linux常用命令全集)

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux常用文件操作命令(linux常用文件操作命令有哪些)

ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...

Linux 常用命令(linux常用命令)

日志排查类操作命令查看日志cat/var/log/messages、tail-fxxx.log搜索关键词grep"error"xxx.log多条件过滤`grep-E&#...

简单粗暴收藏版:Linux常用命令大汇总

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友在Linux系统中,命令行界面(CLI)是管理员和开发人员最常用的工具之一。通过命令行,用户可...

「Linux」linux常用基本命令(linux常用基本命令和用法)

Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。总结送免费学习资料(包含视频、技术学习路线图谱、文档等)1、显示日期的指令:d...

Linux的常用命令就是记不住,怎么办?于是推出了这套教程

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux的30个常用命令汇总,运维大神必掌握技能!

以下是Linux系统中最常用的30个命令,精简版覆盖日常操作核心需求,适合快速掌握:一、文件/目录操作1.`ls`-列出目录内容`ls-l`(详细信息)|`ls-a`(显示隐藏文件)...

Linux/Unix 系统中非常常用的命令

Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...