-
之前写过一篇Android 自定义 View 实战:打造一个跟随滑动的丝滑指示器,今天使用 Flutter 来实现一个相同的效果。 本文将实现一个根据列表滚动动态偏移的自定义指示器。 1. 核心原理 实现这个效果的关键在于:监听滚动事件,并计算滚动比例。 监听滚动:使用 NotificationLi
-
准备好了吗?我们要把你习以为常的代码撕碎,看看它的内脏长什么样。 第一章:拆解 —— 编译器的“剪刀” 作为 Dart 开发者,我们每天都在写 async 和 await。它们就像空气一样自然,以至于我们常常忘记了它们的存在。 看下面这段代码,它优雅、线性,符合人类的直觉: Future makeC
-
Flutter 性能底层(一):内存世界的版图 —— Dart 分代模型 引言:透过现象看本质 作为 Flutter 开发者,我们每天都在与 Widget 打交道。无论是简单的 Text 还是复杂的 CustomPaint,我们习惯了通过不断地 new 对象来构建界面。 但在这些代码背后,你是否曾有
-
第一章:告别“剥洋葱”式的防御性编程 在 Dart 3 之前,处理未知数据(比如 dynamic、父类对象、或者 JSON Map)就像是在剥洋葱。我们需要一层一层地检查类型、检查长度、检查 Key 是否存在,最后小心翼翼地把数据取出来。 这种代码通常被称为**“防御性代码”**。它的特点是:真正干
-
大家对Dart中的 ?? 运算符感兴趣吗?它可是Dart里处理 **可选值(可空类型)** 的常用运算符,主要作用就是「空值合并」。接下来,我们就从基础用法、核心特点、拓展用法,再到实际场景,一步步为大家讲得明明白白,让大家快速掌握。 一、先明确 ?? 运算符的核心定义 ?? 被称为 「空值合并运算
-
第一章:被 switch-case 坑过的“未知状态” 如果说 Records 解决的是“数据怎么传”的问题,那么 Sealed Classes 解决的就是**“逻辑怎么写”**的问题。 在 App 开发(尤其是 Flutter 开发)中,我们每天都在处理各种“状态”: 网络请求:Loading,
-
第一章:没有 Records 的日子,我们经历了什么? 作为一名 Dart/Flutter 开发者,你一定经历过这样的“至暗时刻”: 你编写了一个简易的工具函数,比如解析经纬度,或者从API响应中提取数据。你的逻辑清晰明了,代码也仅有寥寥数行。然而,当你写到return语句时,却陷入了困境。 “我有
-
从整体上看,Swfit生成的指令数量要多于OC。所以,在这里为大家梳理了一些Tips,在编码的时候多留意一下,或许就能减少一点点指令数量。虽然这可能只是微不足道的“蚊子腿”,但总归也是肉嘛。 避免 Swift 去重写 OC 的构造函数 会新增 objc_msgSendSuper2 调用父类函数指令;
-
引言 大家好,我是一牛,今天我为大家介绍一个概念 - 隐式打开存在类型。在介绍它之前,我们先来回顾一下存在类型。 存在类型也就是装箱类型,在Swift中使用any关键字修饰,它存储的值的具体类型是未知的,这个具体类型可能会在运行时变化。 隐式打开存在类型 考察以下代码 protocol P { as
-
引言 当今,音频转录技术迅猛发展,可大家有没有发现一个常见问题?那就是在嘈杂环境下,转录系统老是把非人声错认乘人声,进而致使转录结果出错。打个比方,在whisper模式中,系统可能就会错误地转录出“谢谢大家”。接下来,本文将深入探讨如何借助声音活动检测(VAD)技术来解决这一问题,并且详细剖析在实施
-
前言 大家好,我是一牛。今天要和诸位聊聊Swift引入的新特性——不可复制类型~Copyable 。在Swift中,值类型(结构体、枚举)是可复制的,也就是说可以创建多个相同副本。但有时候,我们需要对某种资源实现独占,无论是结构体还是枚举类型,都不太合适。类虽能表示唯一资源,但其引用可被复制,所以类
-
最近在做一个新项目,需要使用 Sign in with Apple。由于这是是一个纯 SwiftUI 项目,因此我们首先考虑使用的是 Apple 官方的 SignInWithAppleButton 组件。 相较于传统的 Sign in with Apple API,SignInWithAppleBu
-
1. 前言 在货拉拉用户端适配灵动岛的开发进程中,SwiftUI编写界面的便捷性给我们留下了深刻的印象。声明式UI大大减少了初始化代码量,更简便灵活的Flex布局也让界面设计更加高效,而所有iOS开发者都梦寐以求的Hot Reload功能,更是能显著提升编码体验与效率。基于这些优势,我们对Swift
-
这里每天分享一个 iOS 的新知识,快来关注我吧 前言 大家在使用iOS系统的分享面板时,有没有发现其中既有系统自带的App,也有微信、微博等第三方App呢?今天就来给大家讲讲,如何把你的App所支持的分享扩展集成到系统分享面板中。 分步操作 第一步:向项目添加 Share 扩展目标 点击 Xcod
-
问题 我的项目是使用swift开发的,并且项目不支持横屏,但是某些页面必须要横屏,在iOS16以下我使用 UIDevice.current.setValue(isLandscape ? UIInterfaceOrientation.landscapeRight.rawValue : UIInterf