不知不觉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写一个抖音是什么体验?相关推荐

  1. android sdk build-tools_从零开始仿写一个抖音App——视频编辑SDK开发(一)

    本文首发于微信公众号--世界上有意思的事,搬运转载请注明出处,否则将追究版权责任.交流qq群:859640274. 大家好久不见,又有一个多月没有发文章了.不知道还有哪些读者记得我的 从零开始仿写抖音 ...

  2. 从零开始写一个抖音App——Apt代码生成技术、gradle插件开发与protocol协议

    1.讨论--总结前两周评论中有意义的讨论并给予我的解答 2.mvps代码生成原理--将上周的 mvps 架构的代码生成原理进行解析 3.开发一款gradle插件--从 mvps 的代码引出 gradl ...

  3. 从零开始仿写一个抖音App——基于FFmpeg的极简视频播放器

    本文首发于微信公众号--世界上有意思的事,搬运转载请注明出处,否则将追究版权责任.微信号:a1018998632,交流qq群:859640274 1.从零开始仿写一个抖音app--开始 4.从零开始仿 ...

  4. 从零开始仿写一个抖音App

    点击上方"何俊林",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 本文转载自公号开发者技术前线,原文:https://juejin.im/post/5b9e9bf1e51 ...

  5. 手写一个抖音视频去水印工具,千万别刚一个程序员

    百因必有果 说一下我为什么要做个抖音视频去水印工具,其实是因为我的沙雕女友,她居然刚我~ 有天晚上她在抖音看见一个非常具有 教育意义 的视频,"男人疼媳妇就该承包全部家务活",然后 ...

  6. 手写一个抖音视频去水印Java工具,千万别刚一个程序员

    关注公众号后台回复pay或mall获取实战项目资料+视频 百因必有果 说一下我为什么要做个抖音视频去水印工具,其实是因为我的沙雕女友,她居然刚我~ 有天晚上她在抖音看见一个非常具有 教育意义 的视频, ...

  7. 用python写一个抖音登录代码

    好的,以下是一个用Python写的抖音登录代码示例: import requestsurl ="https://aweme.snssdk.com/passport/user/login/&q ...

  8. 动手写一个抖音首页的效果

    如何实现一个抖音首页的沉浸式视频播放效果 01.疑问 怎么实现一个顺畅的类似抖音的沉浸式播放效果 02.方案 方案1:viewpager+复用,低端机教卡 方案2:recycleview,比较顺畅 方 ...

  9. 写一个抖音协议 价格你定

    写一个协议  想找个大哥  交流下抖音协议  价格你说就好

  10. android 直播sdk 抖音,从零开始仿写一个抖音App——跨平台视频编辑SDK项目搭建

    不知不觉已经到了2019年,本系列的文章也更新到了8篇.很庆幸笔者能坚持下来,从我司的代码中学习到了很多东西.当然更庆幸的是收获了众多读者的鼓励和支持.从本篇文章开始,我们将接触短视频 app 中比较 ...

最新文章

  1. 论NLP领域的内卷:我配不配找工作?
  2. (JAVA)StringBuffer类
  3. linux nvidia驱动安装rpm,Fedora 下安装NVIDIA显卡驱动
  4. (一)在Lingo中使用集合
  5. Mask-RCNN校验结果计算mAP值
  6. 浏览器了解(五)资源加载顺序
  7. Visio 图案填充-设置形状格式
  8. 观察者模式:推模型与拉模型
  9. Matlab 实现信号滤波
  10. 电子元件-双向触发二极管与可控硅
  11. 桌面计算机恢复出厂设置,电脑桌面恢复出厂设置
  12. 【改写历史】--历史谁书写?谁将改写历史?
  13. 虚幻4学习日志2021.4.1 关于瞬移(相机拉近)以及二段跳
  14. 别总说CMS、G1,该聊聊ZGC了
  15. AutomationAnywhere(AA)实现读取Excel文件
  16. (2.1)关系模型之关系结构和约束
  17. 基于嵌入式Linux的无线路由器设计——Bridged Adapter网桥模式
  18. 团队沟通中的误区与技巧(zt)
  19. iptables端口映射
  20. ADS一键清理工具,解决ads2020卸载不干净没法安装新的ads 解决ads安装时说存在上一个版本 解决ads安装提示没有卸载干净 ads2017卸载时删不尽 ads2019删除不干净 注册表

热门文章

  1. 无线网络 看不到其他计算机,win10看不到无线局域网其他电脑
  2. 计算机软考集成项目管理工程师,计算机软考系统集成项目管理工程师
  3. Linux下搭建Oracle11g RAC
  4. 计算机视觉 || Canny算子实现边缘分割并进一步处理
  5. Active Format Description (AFD)简介
  6. H5新增音频标签-audio
  7. c语言怎样识别字母大小写,c语言islower()函数如何判断字符是否为小写字母
  8. 小游戏 版本提交审核, 资质提交审核指引
  9. 第十一章:项目风险管理 - (11.4 实施定量风险分析)
  10. 高端游戏计算机配置单,2021年高端游戏电脑配置清单推荐