KM的博客.

KM的博客.

技术和生活的记录者

Flutter正式发布3.0
Flutter3.0 发布 2022/05/12 Google IO 发布会 一起看 I/O | Flutter 3 正式发布! | Youtube - What’s new in Flutter 3.0 * 稳定版本支持:macOS和 Linux * 稳定支持苹果ARM 处理器 * 可折叠设备支持 * Dart语法增强 eum枚举 * 命名参数 anywhere * super 构造方法简化
Swift内存窥探之Class
类的内存结构: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 typedef struct ClassMetadata { uintptr_t Kind; struct ClassMetadata *super; void *data[2]; uintptr_t data2; uint32_t InstanceAddressPoint; uint32_t InstanceSize; uint16_t InstanceAlignMask; uint16_t Reserved; uint32_t
Swift内存探究之值类型
Swift值类型内存探究 enum 默认关联值类型的枚举: 枚举类型默认对齐字节是 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 // 没有关联值 占用内存 1 字节 enum Test { case t1,t2,t3 } print(MemoryLayout.alignment)//枚举类型内存对齐:1 print(MemoryLayout.size)//枚举类型实际大小:1 print(MemoryLayout.stride)//枚举类型分配:1 // 有默认关联值 占用内存 1 字节 enum Test
Swift内存布局初探
Swift内存布局初探 enum 问题实际分配内存为何是25? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ///带有关联值的枚举 enum TestEnum { case t1(Int, Int, Int) case t2(Int, Int) case t3(Int) case t4(Bool) } print(MemoryLayout.alignment)//Int类型内存对齐:8 print(MemoryLayout.size)//实际大小:24 + 1
谷歌的软件工程
谷歌的软件工程 目录 1、简介 2、软件开发 * 源代码库 * 系统构建 * 代码 review * 测试 * Bug追踪 * 编程语言 * 调试与分析工具 * 发布工程 * 项目启动批准 * 事故复盘 * 软件反复重写 3、项目管理 * 20%时间自由分配 * OKR 机制 * 项目批准 * 项目重组 * 年度黑客马拉松 4、人员管理 * 角色分工 * 办公区域设施 * 培训 * 部门间转移 * 绩效考核和奖励 1 简介 谷歌是一家非常成功的公司。除了 Google 搜索和 AdWords 的成功之外,Google 还提供了许多其他出色
如何进行代码评审
代码评审 代码评审通常由作者之外的人评审代码,在代码引入代码库之前进行。代码评审通常需要一个流程和支持该流程的工具。 在谷歌,基本上每一个变更在提交前都需要经过代码评审,每一个工程师都需要负责发起评审和评审变更。 01 代码评审流程 代码评审可以在软件开发的许多阶段进行。在谷歌代码评审发生在变更提交到代码库之前,这个阶段也称为提交前评审。 代码评审的最终目的是让另一个工程师同意变更,我们通过标记变更为 “看起来不错”(looks good to me, LGTM) 来表示这一点。 我们将此LGTM 用作一个必要的许可 “项〞来允许提交变更。 谷歌的一个典型代码评审流程包括以下步骤:
Flutter 核心原理
Flutter * 1.开发效率高- 快发阶段 JIT 即时编译,支持 HotReload,节省开发时间.发布节点 AOT提前编译生成高效机器码保证应用性能 * 2.高性能-基于 Skia 引擎提供高保证的 UI 体验 * 3.快速内存分配-Flutter 框架使用函数式流,这使得它在很大程度上依赖于底层的内存分配器。 * 4.类型安全和空安全-2.12 后开始支持空安全和静态类型检测,在编译前提前发现错误,并排除潜在的问题。 Flutter 技术栈 Flutter的三棵树 Flutter 核心原理 JIT 即时编译与 AOT 提前编译 Flutter 是一个跨平台的 UI
Flutter 实战记录
The ‘Pods-wii’ target has frameworks with conflicting names: iflymsc.framework 原因是:iflymsc.framework接入 native 中和之前 flutter 中的iflymsc.framework冲突了 解决方式:flutter 缓存删除即可(从主工程的 development pods 的xxx_msc_plugin中删除) TabController addListener两次回调 问题:这个监听在点击切换tab的时候会回调两次,左右滑动切换tab正常调用一次。 TabController a
Flutter 资源
Flutter 官方 Flutter 官方网站(中文) | Flutter 官方网站(英文) * 全网最全 Flutter 与 React Native 深入对比分析 * 字节跳动为什么选用Flutter:并非跨平台终极之选,但它可能是不一样的未来: Flutter 原理和优化 515 更新 🐕 Flutter 状态管理框架 Provider 和 Get 分析 @极速男孩:Flutter 作为一个声明式的 UI 框架状态管理是一个让人头疼的问题,没有状态管理会导致难以复用/单元测试,跨页面无法传递数据,setState 方法会过度刷新的问题。本文主
Flutter Widget
Flutter常见Widget Expanded()按照比例分配 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 // expand import 'package:flutter/material.dart'; class ExpandedLearn extends StatelessWidget { @override Widget build(BuildContext context) { return n
Flutter Dar基础
Dart基本语法 Dart的设计目标应该是同时借鉴了Java和JavaScript。 Dart在静态语法方面和Java非常相似,如类型定义、函数声明、泛型等, 而在动态特性方面又和JavaScript很像,如函数式特性、异步支持等。 除了融合Java和JavaScript语言之所长之外,Dart也具有一些其它具有表现力的语法,如可选命名参数、..(级联运算符)和?.(条件成员访问运算符)以及??(判空赋值运算符)。 其实,对编程语言了解比较多的读者会发现,在Dart中其实看到的不仅有Java和JavaScript的影子,它还具有其它编程语言中的身影,如命名参数在Objective-C和
URLProtocol源码
URLProtocol源码简析 swift标准库URLProtocol地址 一 、 URLProtocol初始化 1.1通过URLRequest初始化protocol 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 open class URLProtocol : NSObject { private static var _registeredProtocolClasses = [AnyClass]() private static var _classesLock = N
avatar
KM
探索大前端前沿技术 iOS/Flutter/Vue