iOS RTL 布局适配
前言阿拉伯地区的语言是从右到左展示的,不止是文本的适配,页面布局也需要做适配。iOS9之后的RTL适配,官方文档做适配
适配UIVIew123456789typedef NS_ENUM(NSInteger, UISemanticContentAttribute) { UISemanticContentAttributeUnspecified = 0, UISemanticContentAttributePlayback, // for playback controls such as Play/RW/FF buttons and playhead scrubbers UISemanticContentAttributeSpatial, // for controls that result in some sort of directional change in the UI, e.g. a segmented control for text alignment or a D-pad in a game UISemanticContentAttr ...
Flutter 简介
简介
技术类型
UI渲染方式
性能
开发效率
动态化
框架代表
H5 + 原生
WebView渲染
一般
高
支持
Cordova、Ionic
JavaScript + 原生渲染
原生控件渲染
好
中
支持
RN、Weex
自绘UI + 原生
调用系统API渲染
好
Flutter高, Qt低
默认不支持
Qt、Flutter
搭建环境1.安装注意点:如果你要在 Apple 芯片的 Mac 电脑 上使用,你还需要安装 Rosetta 2 环境因为 一些辅助工具 仍然需要,你可以通过手动运行下面的命令来安装:1sudo softwareupdate --install-rosetta --agree-to-license
具体安装流程可以查看官网 官网地址
2.Flutter SDK
通过github clone
直接下载压缩包
3.环境变量open ~/.base_profile
export PATH="$PATH:[PATH_OF_FLUTTER_GIT_DIRECTORY]/bin" 其中的 [PATH_OF_FLUTTER_G ...
iOS 模拟器提示 Unable to boot the Simulator.
解决:1sudo rm -rf ~/Library/Developer/CoreSimulator/Caches不一定有效
iOS17隐私清单和签名
背景App Store 中新增的隐私功能
我们将在今年晚些时候发布更多信息,包括:
影响隐私的 SDK 列表 (对用户隐私产生重大影响的第三方 SDK)
“需要指明原因”的 API 列表,使用它们时必须给出合理的原因
开发者反馈表,用于就调用涉及的 API 提出新的原因
其他文档,详细介绍签名和隐私清单、他们的优势以及何时需要使用它们
关于 App Store 提交的隐私更新 12-17
第三方 SDK 隐私清单和签名。 第三方软件开发工具包 (SDK) 能够为 App 提供强大的功能,同时也能会影响用户隐私,而这些影响可能对开发者和用户来说并不明显。请注意,当你将第三方 SDK 与你的App 搭配使用时,你需要对 App 中使用的相应 SDK 包含的所有代码负责,并且需要了解 SDK 的数据收和使用实践。
关于 App Store 提交的隐私更新 02-29
自 3 月 13 日起:如果你上传新 App 或更新 App 到 App Store Connect,且该 App 使用了需要声批准原因的 API,但你未在 App 的隐私清单中提供批准原因,我们会通过电子邮件告知 ...
iOS App Group 数据共享
场景前提是同一个开发者账号下
App 和 App 共享数据
App 和 Extension 共享数据
配置在需要的App 和 Extension 都配置上 App gruop的能力
代码主工程123NSUserDefaults *userD = [[NSUserDefaults alloc] initWithSuiteName:@"group.testGroup.a"]; [userD setObject:@"共享数据" forKey:@"shareKey"];
子工程12NSUserDefaults *userD = [[NSUserDefaults alloc] initWithSuiteName:@"group.testGroup.a"]; NSString *userDefault_shared = [userD objectForKey:@"shareKey"];
iOS 对接快捷指令 Sirikit
场景
在自己的APP中自定义快捷指令
通过 Siri 语音触发,可以跳转进入APP或者后台执行操作
主要过程:
创建一个Intent 意图文件,里面配置自定的意图内容
创建Intent Extension 拓展,代码处理识别到的意图回调
主工程中的录入/编辑指令操作
Intent Xcode 中 配置创建 Intent 意图文件Xcode - File - New — File — 搜索Intent
增加 Intent 意图选择 Intent 意图文件
New Intent 设置自定义意图
Customize System Intent 系统提供的意图
在这选择 New Intent
配置意图内容配置后默认有内容:自定义的意图是一个可配置的动态文件,配置完成后,重新编译会自动生成代码比如现在配置的意图是:ControlScene,会自动生成 SHControlSceneIntent 类
Custom Intent
这边只要选择:Suggestions 选项就行,因为我们不是要通过快捷指令APP中配置,而是要在自己的APP中配置
增加参数配置
响应结果
创建Intent E ...
Android studio 新建flutter
问题Flutter 模块没有创建1/Users/xxx/xxx/my_flutter/.ios/Flutter/FlutterPluginRegistrant/Classes/GeneratedPluginRegistrant.h /Users/xxx/xxx/my_flutter/.ios/Flutter/FlutterPluginRegistrant/Classes/GeneratedPluginRegistrant.h: No such file or directory
解决:12cd some/path/ // 工程目录的上一层flutter create --template module my_flutter
Hexo Giscus butterfly 评论
参考Giscus 评论
Hexo 自动分类
简介Hexo写日志,通常我们都需要维护一个front-matter信息,包括title、date。博客多了,为了方便日志分类,一般还需要设置categories。比如下面的例子:12345678---title: Hexo简介date: 2008-08-08categories: - web开发 - 前端 - 博客框架---
久而久之,就会发现很多问题:
工作繁琐:大量的category是重复性工作
容易出错:大小写和中英文目录有可能混杂。比如有个web目录,偶尔我们写成了Web,造成了目录树中冗余的节点。
可维护性差:如果要更改目录树中的节点,就要手动更改每个日志的categories变量。
本文介绍一种自动生成categories的插件
自动生成 categories最常用的文件管理策略,就是利用文件系统目录结构(树形结构 directory-tree)。同样,为了便于管理大量的日志文件,采用目录结构是一种简便可行的方案。hexo-auto-category根据日志文件(Markdown)所在文件目录自动分类,即自动生成markdown的front-matter中的categ ...
