0%

📅 2025-12-03 开发日志

🚀 今日进展

  • [10:26] 用Charles 的Throttle preset模拟弱网
  • [10:45] 设置加载数据超时操作
  • [10:54] 修复相机权限调用
  • [11:09] 修复初始化引擎逻辑
  • [11:19] 修复举报中文本的光标重置问题
  • [11:22] 修复客服中心的一个空值误用
  • [11:26] 修复不正确使用setState的问题
  • [11:44] 修复压缩图片逻辑
  • [11:55] 修复图链错误的错误捕获
  • [14:05] 不再在初始化用户数据失败时自动登出
  • [16:31] 用eventBus移除matching和autocall
  • [17:29] 修复部分国际化镜像问题

🐛 遇到的问题

  • 匹配使用率下滑明显,未能找到原因
  • 异常匹配次数明显上升,已经定位,应该是不正确的网络请求等待引起的
  • 匹配页面,获取参数似乎有问题,更新不太及时

📝 明日计划

  • 找亚男解决匹配使用率下滑的问题
  • 修复匹配页面的参数获取问题
  • 发布1.2.5,观察指标

📅 date:2025-12-02 开发日志

🚀 今日进展

  • 上午发布后在半摸鱼半寻找好用的效率提升工具,然后找到了raycast,记日志变得更方便了

  • 发现一个特别好用的圆圈头像写法:CircleAvatar,可以用radius设置半径,child里放图片就行

  • 对错误捕获有了更清晰的认知:

1
2
on Exception catch (e) —— 它是“过滤器” 当你写 on Exception 时,你是在告诉 Dart:“我只抓‘异常’这一类问题,如果是代码写错了(Error),请不要拦着,让它崩溃(或者往上抛)。”  捕获范围: 仅限 Exception 类及其子类(如 TimeoutException, FormatException)。  漏网之鱼: 所有 Error 类及其子类(如 NoSuchMethodError, ArgumentError, OutOfMemoryError)。  你的 bug 就是因为这个: 你的代码发生了 NoSuchMethodError(试图对 null 进行操作),这是一个 Error。 但是你的网子只抓 Exception。 于是,这个 Error 就像漏网之鱼一样,穿过了你的 try-catch,直接撞到了 main.dart 里的全局捕获器,导致了 Fatal Exception。  2. catch (e) —— 它是“大兜底” 当你什么都不加,直接写 catch (e) 时,你是在说:“不管发生什么(无论是 Exception 还是 Error,甚至是一个 String),统统给我抓住!”  捕获范围: 所有实现了 Object 的东西(Dart 里万物皆对象,所以就是一切)。  漏网之鱼: 无。

  • [13:52] match页面布局修复
  • [17:03] gabby会话页面UI改动,contacts页面改动
  • [17:36] toki错误捕获全部改为catch(e)
  • [17:36] 修改安全关闭页面的方法
  • [17:57] 采用退避方法重连IM通信,退避策略改写为工具类
  • [18:13] 修改完firebase反映的bug,未找到ndk错误
  • [18:18] 缩小视频页面关注按钮,加上震动
  • [18:30] mark一下——destory rtc engine可能比较危险,可能是引发崩溃的罪魁祸首
  • [18:59] 修复匹配时错误等待主播数据

🐛 遇到的问题

  • firebase捕获改严格之后,上报了不少未预料到的错误,今天处理了不少

📝 明日计划

  • 继续观察firebase数据并修复,这些错误可能并不会导致crash,但仍需注意。
  • 紧盯console数据,如有明显上升需立即撤回并修复版本
  • 继续开发gabby,把会话页面写完

10.28 记录

已经不少天没记录自己的工作和学习进度了。今天刚好有空,总结一下。

!– more –>

Toki虽然公测一段时间了,但是一直有各种各样的需求和bug,导致迟迟未能投放。今天又让我解决边界条件,寻求了很多办法,最后是用监听解决的,在这里也记录一下。

继承RouteAware组件,即可复写didPushNext、didPopNext等多种方法,可以有效阻断用户的push和pop操作,在Widget树渲染之前进行一些操作

VisibilityDetector 这个插件很不错,可以用于监听某个组件是否可见,

1
2
3
4
5
6
7
key: const Key('match-page'),
onVisibilityChanged: (info) {
if (info.visibleFraction > 0) {
updateMatchInfo();
userProvider.getUserInfo();
}
},

类似于这样的两个必填参数即可实现,有时比RouteAware更好用。

现在学习效率明显不如刚来公司了,跟不少人熟络起来了,导致有不少时间花在了和产品扯皮以及解释功能,讨论要不要针对某个功能或者bug优化上面,这很不好,得想办法。

交给我的新项目Gabby,前人水平很不错,让我学到了不少东西。不过他的加密思维也太重了,几乎处处要加密,这搞的很麻烦。

关于RIverpod,基本上还是没怎么搞清楚,比Provider要难理解太多了,估计是牵扯到底层的东西比较多。

国庆假期结束后的小结

9.22公司团建旅游到30号,之后又直接放为期8天的国庆,休息了整整半个月,上班第一天人都是恍惚的。为了更好重新进入工作状态,对之前的工作做一个总结,也为之后的工作学习方向做一个目标。

阅读全文 »