用flutter写一个抖音是什么体验?
不知不觉flutter已经诞生好几年了,在这场轰轰烈烈的跨平台革命风暴中,weex
React-Native
flutter
这三者算是跨平台三巨头,weex给人的感觉就是简单轻便,React-Native被人们贴上了‘笨重’的标签,开始的flutter被认为问题多,开源库少;而如今的flutter已经变得非常强大,开源库也丰富了起来,在如今的形势下,怎么能不尝试一下。
其实最开始我比较好奇的是flutter插件是怎么实现和原生交互的,原来是platform-channels这玩意,通过在didFinishLaunchingWithOptions
注册plugin,注册一个MethodChannel,MethodChannel的name要唯一,以后调用的时候通过这个名字获取到channel来调用方法,同时定义了handler来处理解码后的消息;channel定义有三种:BasicMessageChannel
MethodChannel
EventChannel
handler和channel是一一对应的;dart调用原生,那么会把参数、方法名等封装成MethodCall对象,然后由StandardMethodCodec
这玩意来封装成二进制,然后通过BinaryMessages
发送平台消息;再往后就调到了C++: Window client --> RuntimeDelegate --> PlatformViewAndroid/PlatformViewIOS;最后FlutterResult(也就是callback)是怎么正确回调的? 全局一个字典pending_responses_保存了response,key是responseId value就是response,这样就能正确的回调了原理和WebViewJavascriptBridge是一样的;
基于对flutter插件原理分析,自己也尝试着写了一个,实现了无需权限获取设备标识:flutter_unique_device_id ;再不说点抖音好像就跑题了。。。
也是出于对flutter的实践,打算用flutter写一个抖音,但是如果你一点flutter都没学过,那么这不是一件容易的事情,你会发现我该怎么开始?tabbarcontroller该怎么实现?tabbar该怎么自定义?tableview加header在flutter里怎么实现?我要实现动画该怎么写?网络请求用什么库?json解析怎么解析?等等一系列的问题,在开始你会发现你就是在使用flutter的三方库组装APP而已,各种各样的三方库太多了,很多的功能可以说都有开源库写好了,和原生开发一样的是一个百家齐放的状态,等到对flutter有一定熟练度后,就能大肆的自定义,随便操刀了!
抖音的tabbar其实很像BottomAppBar
的效果,但是有不完全一样,其实flutter里还没有可以直接使用的和抖音一样的,没办法那就只能自己写,还有抖音个人中心的那个滑动放大效果,在原生里就是一个tableview header滑动放大,但是没想到在flutter里实现这么复杂,用了NestedScrollView
还是不行,还得自己监听滑动,去实现发大和自动复位的动画效果。flutter在某些极少数时候实现是没有原生方便的。现在douyin-flutter项目已经实现了很多功能,但是还在完善中。源码地址douyin-flutter; 文章一写起来就收不住,暂时就写这些吧~
用flutter写一个抖音是什么体验?相关推荐
- android sdk build-tools_从零开始仿写一个抖音App——视频编辑SDK开发(一)
本文首发于微信公众号--世界上有意思的事,搬运转载请注明出处,否则将追究版权责任.交流qq群:859640274. 大家好久不见,又有一个多月没有发文章了.不知道还有哪些读者记得我的 从零开始仿写抖音 ...
- 从零开始写一个抖音App——Apt代码生成技术、gradle插件开发与protocol协议
1.讨论--总结前两周评论中有意义的讨论并给予我的解答 2.mvps代码生成原理--将上周的 mvps 架构的代码生成原理进行解析 3.开发一款gradle插件--从 mvps 的代码引出 gradl ...
- 从零开始仿写一个抖音App——基于FFmpeg的极简视频播放器
本文首发于微信公众号--世界上有意思的事,搬运转载请注明出处,否则将追究版权责任.微信号:a1018998632,交流qq群:859640274 1.从零开始仿写一个抖音app--开始 4.从零开始仿 ...
- 从零开始仿写一个抖音App
点击上方"何俊林",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 本文转载自公号开发者技术前线,原文:https://juejin.im/post/5b9e9bf1e51 ...
- 手写一个抖音视频去水印工具,千万别刚一个程序员
百因必有果 说一下我为什么要做个抖音视频去水印工具,其实是因为我的沙雕女友,她居然刚我~ 有天晚上她在抖音看见一个非常具有 教育意义 的视频,"男人疼媳妇就该承包全部家务活",然后 ...
- 手写一个抖音视频去水印Java工具,千万别刚一个程序员
关注公众号后台回复pay或mall获取实战项目资料+视频 百因必有果 说一下我为什么要做个抖音视频去水印工具,其实是因为我的沙雕女友,她居然刚我~ 有天晚上她在抖音看见一个非常具有 教育意义 的视频, ...
- 用python写一个抖音登录代码
好的,以下是一个用Python写的抖音登录代码示例: import requestsurl ="https://aweme.snssdk.com/passport/user/login/&q ...
- 动手写一个抖音首页的效果
如何实现一个抖音首页的沉浸式视频播放效果 01.疑问 怎么实现一个顺畅的类似抖音的沉浸式播放效果 02.方案 方案1:viewpager+复用,低端机教卡 方案2:recycleview,比较顺畅 方 ...
- 写一个抖音协议 价格你定
写一个协议 想找个大哥 交流下抖音协议 价格你说就好
- android 直播sdk 抖音,从零开始仿写一个抖音App——跨平台视频编辑SDK项目搭建
不知不觉已经到了2019年,本系列的文章也更新到了8篇.很庆幸笔者能坚持下来,从我司的代码中学习到了很多东西.当然更庆幸的是收获了众多读者的鼓励和支持.从本篇文章开始,我们将接触短视频 app 中比较 ...
最新文章
- 论NLP领域的内卷:我配不配找工作?
- (JAVA)StringBuffer类
- linux nvidia驱动安装rpm,Fedora 下安装NVIDIA显卡驱动
- (一)在Lingo中使用集合
- Mask-RCNN校验结果计算mAP值
- 浏览器了解(五)资源加载顺序
- Visio 图案填充-设置形状格式
- 观察者模式:推模型与拉模型
- Matlab 实现信号滤波
- 电子元件-双向触发二极管与可控硅
- 桌面计算机恢复出厂设置,电脑桌面恢复出厂设置
- 【改写历史】--历史谁书写?谁将改写历史?
- 虚幻4学习日志2021.4.1 关于瞬移(相机拉近)以及二段跳
- 别总说CMS、G1,该聊聊ZGC了
- AutomationAnywhere(AA)实现读取Excel文件
- (2.1)关系模型之关系结构和约束
- 基于嵌入式Linux的无线路由器设计——Bridged Adapter网桥模式
- 团队沟通中的误区与技巧(zt)
- iptables端口映射
- ADS一键清理工具,解决ads2020卸载不干净没法安装新的ads 解决ads安装时说存在上一个版本 解决ads安装提示没有卸载干净 ads2017卸载时删不尽 ads2019删除不干净 注册表
热门文章
- 无线网络 看不到其他计算机,win10看不到无线局域网其他电脑
- 计算机软考集成项目管理工程师,计算机软考系统集成项目管理工程师
- Linux下搭建Oracle11g RAC
- 计算机视觉 || Canny算子实现边缘分割并进一步处理
- Active Format Description (AFD)简介
- H5新增音频标签-audio
- c语言怎样识别字母大小写,c语言islower()函数如何判断字符是否为小写字母
- 小游戏 版本提交审核, 资质提交审核指引
- 第十一章:项目风险管理 - (11.4 实施定量风险分析)
- 高端游戏计算机配置单,2021年高端游戏电脑配置清单推荐