移动开发

Swift Optional

设想一种情况 后端返回给我们字段值, 这个字段值可能是空对象 或者我们与后端约定了一个字段 name, 但是根据业务name字段也可能不返回, 及我们在定义model的时候 要么 var name = "" 要么: var name: String? 个人建议第二种, 明确表示name可能不存在, 符合业务语义 总结 所以在Swift中可选型是为了表达一个变量为nil的情况, Swift中

Android 悬浮窗-开箱即用

开箱即用的 Android 悬浮窗 开箱即用的 Android 悬浮窗  FloatWindowX 1. 需要权限 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.ACTION_

RE: 从零开始的车载Android HMI(一) - Lottie

1.前言 多年以前汽车还是以机械仪表主体的年代,各大汽车主机厂商并不十分关注操作系统UI的交互功能,但是随着车载SOC算力的不断提高以及主机厂商对汽车座舱竞争的白热化。座舱的HMI在设计上在强调功能性的同时也开始关注UI的艺术性,HMI的设计师们期望艺术与功能应该协同工作,让用户沉浸在“第三空间”的体验中。 有了需求程序员就需要关注如何实施和落地,然而Android应用本身虽然有着完整的动画框架支

Android跨进程通信: Binder 进程间通信机制解析

文章目录 深入解析 Android Binder 进程间通信机制 一、为什么需要 Binder? Binder 的核心优势 二、Binder 的整体架构与核心角色 四大核心角色 架构示意图(建议图示) 三、Binder 的核心概念详解 3.1 Binder 实体与 Binder 引用 3.2 内存映射(

iOS知识复习笔记(16)---swift相关

一、函数的派发方式 swift函数的派发机制有三类:static直接派发(静态)派发、table函数派发,message消息派发。 直接派发也称为静态派发,指令集少,还会进行编译优化(函数内联) 2.函数派发是实现动态行为最常见的方式,通过函数表里面的数组来存储类声明的每个函数指针,称为vitual table, swift里叫witness table 3.消息派发其实就是oc那套消息发送了

如何查看Mac的处理器架构‌‌是ARM还是x86

‌通过命令行查看Mac的处理器架构‌‌ 打开终端(Terminal)。 输入命令 uname -m 并回车。 如果输出结果是 arm64,则表示你的Mac使用的是ARM架构;如果输出结果是 x86_64,则表示你的Mac使用的是x86架构。 如图:‌解释ARM和x86架构的区别‌ ‌ARM架构‌:AR

DDD碎片记录 03. 贫血模型与充血模型

将业务领域模型转换为程序设计 一般有2种设计思路:贫血模型,充血模型 所谓贫血模型,就是在软件设计中有很多POJO对象,他们除了get/set方法,基本没有任何业务逻辑。 vip会员的贫血模型的设计图 如vip会员的贫血模型的设计图所示,在领域模型中,有vip会员的领域对象,该对象除了有一堆属性之外,还有会员打折,会员福利,会员特权等方法。 如果将该领域模型按照贫血模型设计,就会设计

macOS 26完美恢复启动台

前言近日,苹果推出了Mac os26操作系统的第一个开发者测试版本,很多人都已经升级了!但升级之后呢?,发现系统没有启动台,这是晴天霹雳,早就用惯了苹果启动台的用户特别不习惯!下面呢,就用一行代码把启动台弄回来!\输入命令 sudo mkdir -p /Library/Preferences/FeatureFlags/Domain sudo defaults write