0%

最近在做一个聊天的页面,参考微信的聊天页面,对ListView有下面几个需求

  1. 使用列表Widget,例如:ListView, CustomScrollView等
  2. 支持scrollToEnd,当键盘,表情面板,工具面板弹出时,消息滑动到底部
  3. 支持获取位置用于跳转getCurrentIndexInfo,用于保持加载数据时候的位置不变
  4. 支持jumpToIndexscrollToIndex,避免手动计算位置
  5. 滑动位置要准确,没有误差
  6. 滑动到底部不会出现bounce
  7. 由于键盘上移的时候scrollToEnd
阅读全文 »

性能优化是一个开发者不可避开的话题,本文讨论iOS的性能体现在以下几个方面

  • CPU占用率
  • 内存占用率
  • 卡顿监控/FPS
  • GPU离屏渲染
  • 耗电监控
  • 启动时间
阅读全文 »

在做Flutter开发的时候,通常我们都使用MaterialApp来开发,最典型的样式就是点击会有水波纹效果,但有时候我们不希望有水波纹效果,例如在iOS上,使用TextFiled的时候禁用水波纹效果,让体验看起来更像原生

阅读全文 »

Flutter是基于Dart语言,而Dart是单线程语言,通常情况下,任务都在主线程(这里的主线程不同于Native的主线程)里面执行

阅读全文 »

基于现有的项目接入flutter,官方提供的一个比较完整的接入方案,但是存在一个问题,由于FlutterEngine很重,而多个FlutterViewController共享一个Engine,并且同一时间下,一个engine只能与一个viewcontroller绑定,在管理起来,特别是对于多层跳转(native->flutter->native->flutter)非常麻烦,而如果创建多个FlutterEngine,就会带来很大的开销,导致内存暴涨,而flutter_boost提供了像WebView的方式操作FlutterViewController,可以存在多个FlutterViewController,这里基于一个现有的demo继承flutter_boost并解决侧滑手势冲突的问题

阅读全文 »

最近学习了Swift底层原理相关的视频和文章,收获颇丰,趁热打铁,记录和总结对Swift的理解,对于Swift性能优化主要从下面三个方面入手

阅读全文 »

方法派发机制是程序判断如何去调用函数或方法的机制,每次调用方法时都会触发,了解派发机制的工作原理,对于写出高性能的代码来说非常重要,派发机制也能解释一些Swift中的奇怪的现象,和Objective-C中的黑魔法

阅读全文 »

首先是知识储备

  • Mach-O文件格式,用于定位懒绑定的函数地址
  • Mach-O懒加载机制,运行时绑定自定义地址
阅读全文 »