记一次flutter项目分享

华为今天宣布鸿蒙os开源了,作为开发者看完大部分的直播之后,有了一个感慨,这个世界的技术变得真快,另外华为的架构能力,将手机的几大能力如拍摄抽象出来,把大疆无人机当做摄像头,这个创想是很不错了,随着移动式电子设备越来越多,跨平台,分布式操作系统是未来的一个重要方向。

话说回来,公司有团队最近在做一个语音房app,ui层面使用flutter实现,在第一版完成之际做了一次分享。做一下会议笔记,备忘。

遇到了一些坑

  • 文件名命名规范

由于是第一次做flutter项目,加上团队小伙伴开发经验不是很足,在满足需求的同时,对其他之外的事情考虑的比较少,每个人在创建dart文件的时候考虑的比较少,当然取名字也是一个很专业的事情,好的名字决定了app的一生。

比如登录页面,login.dart这样简单粗暴,但是要是登录涉及到一些校验,需要弹窗,或者输入验证码,或者第三方登录,或者手机号登录,密码登录,另外又有封禁等,难到这些都怼到一个文件内部吗,那login就不能满足要求了,需要拆分login的其他模块,在这一块的考虑不是很周全。

  • 内存问题

flutter启动就有一百兆的内存,业内也有一些解决方案可以部分降低内存,但是也会有崩溃的风险,这是engine内部实现的问题。

图片加载内存过大,这是开发不小心把几张3M+的图片放进去,内存就暴涨,猜其内部实现没有对Image的图片缓存做大小的现在,比如UIImage内部在图片占用内存达到100M的时候会自动回收一部分内存,使用方式也可以根据path加载路径,这样加载完就释放了。这个问题开发其实也是可控的。

  • 包体大小

flutter的engine默认加进来就多10兆+的大小,问题说大不大说小不小,因为是海外项目,国外很多低端机型,这个engine的大小又是不可避免的,至少在领导看来是应该需要解决的。虽然很多开发不情愿。

  • 日志分类

在原生开发的项目到了一定的复杂程度,日志分析必不可少,然而日志的产生就是编写代码的时候自己加上去的,为了给日后分析线上问题提供唯一的途径。

日志分类在flutter内部几乎是没有规划,尤其对于小项目。目前flutter的日志都是和原生的日志混在一起,如果项目做大,未来跟踪线上问题肯定麻烦事情。

简单说flutter日志应该单独放在一个文件里面。
格式还和原生格式类似 时间+文件名+行号+方法名+tag+log内容

  • 崩溃收集

flutter崩溃不同于原生,不会crash,但是会白屏或者一片红,导致用户不得不杀进程才能操作。目前市面有这样的崩溃分析系统,但是不符合公司标准。公司希望统一一套标准,崩溃自动上报到公司内部崩溃系统,带上堆栈信息,另外可以一键提bug指定给对应的人。
游离于公司系统之外,毕竟在项目管理层面来说不是个好消息。

  • 性能问题fps、cpu、gpu、耗电量

都是流畅性,跨平台是flutter的优点。

但是也是仅此而已吧,不用太吹嘘,这些是陈词滥调,但是它的cpu,gpu,耗电量对于简单的app来说当然没什么问题,但是涉及到音视频这些项目,原生来说都是个问题,对于flutter更是问题,问题不在于语言,而在于分析的工具侧不完善,performance是个不错的选择,但是用惯了原生性能检测的如instrument这种来说就会觉得flutter的很弱了。

举一个痛点问题,音频上麦,在iphonex 半个小时耗电35%,在flutter上麦怎么查。
鸡贼的办法就是丢给sdk去查了。如果以后这些sdk模块用flutter写了,又怎么查。

  • 事件通知处理方式混乱

eventbus和stream都可以处理事件发送接收问题。每个人也有自己的方式,这个在之前没有一个统一的规范写法,导致混乱。跨模块问题目前在flutter方向有一些好的解决方案,如闲鱼的 fish redux

  • 跨模块封装问题

flutter代码多了,需要考虑重用问题,沉淀一些东西出来,封装和跨模块,解耦是终极问题,其实和语言已经没关系了,借鉴行业经验,解耦就是需要抽象再抽象,思路不一样,写法不一样。插拔模式思路,应该就抽象出组件,提供注册的方法,提供反注册的方法,再提供一个取的方法。每个模块遵循一些协议。

  • 其他项目和sdk的flutter计划

一个音视频的sdk不一定仅仅是这个sdk,它其实也依赖了其他的sdk,如日志,统计,人脸识别,还有其他第三方的。当然全部要用flutter是不现实的。目前来说,公司是有意愿部分通用的慢慢flutter化,但是过程会很漫长效果也不会理想。

然而对于新的app,使用flutter是没有悬念的事情,从成本上面来说这是个优势,另一方面性能上面不损失,就相当于花更少的钱办了同样的事情。当然乐见其成。

  • 后续计划

为了在性能上面不损失,不能依赖flutter做ui这些表层的事情了。必须再深入下去,减少包体,降低内存,提高cpu使用效率等等。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容