Sumx Blog

What did I do and what did I get for my time

iOS 国际化

iOS internationalization

iOS 国际化 添加需要支持的语言 举个例子, 目前添加英语和阿语两种语言, 先在Xcode中添加语言如下图 Project-info-localization 添加后Localizations里面会多一个语种 添加后Mian和LaunchScreen的sb会分别多一个Arabic标识的文件 创建一个Strings File类型的文件 Localizable C...

flutter 布局的示例以及如何获取网络数据

flutter class

前言: 这篇介绍下flutter 在一个页面的简单布局, 以及进行网络数据解析的示例代码 普通文本 格式文本 普通按钮 漂浮按钮 输入框 wrap/flow 布局的简单演示 数据请求以及简单解析 - UI - 数据演示 1. 创建一个 ...

iOS 动画 Swift实现直播中状态动画

living animation for swift

前言: 这是一个直播中状态动画的一个简单实现使用 swift, 老规矩 Demo 放在最后 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 ...

flutter 作为模块引入 iOS 项目

ios use flutter

前言: 上篇我讲了下 flutter 环境在 MacOs 下搭建, 今天写下如何在一个成熟的 iOS 项目内引用 flutter, Demo 会放到文章最后哈 上篇 : MacOS 下配置flutter 环境 大致如下: 在项目内创建一个 flutter 模块 新建一个 Podfile, 然后进行编写, 之后安装 修改 Xcode 配置, 再次安装 书写, 测试...

ruby实战 获取Github Api数据导出 Excel

ruby derive excel

此脚本运行需要申请一个 github api token, 请参照前面几篇文章 此脚本的目的, 就是为了导出一个用户下所有库(repo)详细信息的一个excel表, Demo 地址我放到文章最后 此脚本的使用也很简单如下图 一般呢 MacOs 都是内置 Ruby 的, 所以一般终端就可以运行的, 还可以使用 Visual Studio Code 调试运行 Ruby, 环境配置 请看这篇 ...

iOS ReplayKit 实现屏幕共享直播

ReplayKit Broadcast Unload Extension

1. 前言 首先本次的目的是实现iOS 屏幕的采集, 包含系统屏幕和 App内部屏幕的画面, 同时需要在 App内部唤起直播, 基于以上的需我们需要 iOS12 之后的技术, 使用ReplayKit iOS12 之后相关 api 才能完成, 然后由于使用扩展程序的诸多限制, 比如内存限制不能超过 50M等. 所以这次需求需要 从扩展 app 向宿主 app 传输视频帧数据有两种方...

macOS 配置flutter 环境

flutter 中文网 https://book.flutterchina.club 官方 :https://docs.flutter.dev/get-started/install/macos (本文基于此) 1. 本文在 MacOS 环境下配置 2. 要安装和运行Flutter,您的开发环境必须满足以下最低要求: 操作系统:macOS 磁盘空间:2.8 GB(不包括IDE/to...

swift5.7 new tips

swift5.7 new tips

这种简化的泛型语法确实意味着我们不再有能力为我们的类型添加更复杂的约束,因为合成的泛型参数没有特定的名称。 重要提示: 你可以在显式泛型参数和这种新的更简单语法之间切换,而不会破坏 API。Swift5.7 新特性 解包可选 swift-evolution-3405 可以将可选型展开为同名的阴影变量。以后我们可以像下面这样解包了 1 2 3 4 5 var name: String?...

canvas

前言 : 一般情况下,网站或者广告联盟都会非常想要一种技术方式可以在网络上精确定位到每一个个体,这样可以通过收集这些个体的数据,通过分析后更加精准的去推送广告(精准化营销)或其他有针对性的一些活动。 Cookie技术是非常受欢迎的一种。当用户访问一个网站时,网站可以在用户当前的浏览器Cookie中永久植入一个含有唯一标示符(UUID)的信息,并通过这个信息将用户所有行为(浏览了哪些页面?搜索...

有钱人为什么不坐飞机

作者:到底要改成啥 链接:https://zhuanlan.zhihu.com/p/499675897 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 我的前老板身价100亿,但他从来不坐飞机,他说过一句话,10年了让我至今难以忘却。他出差的时候近的自己去,远的能安排别人去,自己尽量不去。他跟我说他曾经出差去北京,那个时候还没有高铁,他就坐绿皮火车咣当晃了...

iOS 断点技巧

[toc] 前言 断点对于每个开发者都不陌生,它是我们工作中极其重要的工具。通过断点调试,我们可以在程序运行期间中断程序,并检查程序的各种状态来解决遇到的问题。本文我们将介绍 Xcode 中断点调试的技巧及 WWDC21 中苹果关于断点提出的新技术,学会这些技巧对于开发者来说都非常有必要,它能使我们的工作更加高效。 下面主要介绍三点 源文件断点(Source File Brea...

Swift高阶函数-Map、Filter、Reduce

Swift function of higher order (Map、Filter、Reduce)

map:对给定数组每个元素,执行闭包中的映射,将映射结果放置在数组中返回。 flatMap:对给定数组的每个元素,执行闭包中的映射,对映射结果进行合并操作,然后将合并操作后的结果放置在数组中返回。 compactMap:对给定数组的每个元素,执行闭包中的映射,将非空的映射结果放置在数组中返回。 compactMap对给定数组的每个元素,执行闭包中的映射,将非空的映射结果-键值对放置在字...

从 reactiveSwit 迁移到Combine

为什么是 Combine? 1. 官方支持 苹果于 2019 年 6 月对外发布了 Combine 框架,至今已经过去快两年时间,做为 SwiftUI 的御用数据流管理框架,基本不太可能在未来被抛弃。网上对它的实践经验也有不少,所以使用时机已基本成熟 2. UI 框架的结合 无论是 Reactive 还是 Rx,它们的设计出发点都是针对 UIKit 的,而 Combine 是为了 S...

iOS Crash 分析模型

[toc] 前言 分析iOS的Crash要掌握较多的知识,下面我要介绍一个分析模型,可以解决大多数常见Crash, Crash Log分析 1. 查看应用终止的描述 1 2 Application Specific Information: *** Terminating app due to uncaught exception 'NSInvalidArgumentExceptio...

iOS 安装包相关的探索

iOS 安装包相关的探索 客户端开发的同学都知道「安装包大小」是 App 重要的基础体验指标之一。 下面将要从以下的几个方面介绍下 AppStore 对安装包的限制沿革以及 App 花费精力优化 iOS 安装包将获得什么收益 如何去分析一个安装包 如何在线下准确把控安装包大小对 AppStore 上影响 常见的一些包大小优化方式 一些影响包大小的编码习惯 ...

iOS UICollectionViewListCell

前言: Apple 为iOS14 引入了新的API—UICollectionViewListCell 下面进行简单介绍 UICollectionViewListCell需要配合iOS13中推出的UICollectionViewCompositionalLayout、DiffableDataSource等搭配使用 这次的更新是使用UICollectionViewListCell,可在UIC...

iOS KVO

前言 KVO 是日常 iOS 开发中经常使用的技术,通过它可以很方便的对属性进行监听,本文不涉及底层原理,主要介绍以上方式在业务层的应用,并总结各自的特点,重点可以关注下 Swift KeyPath 的使用以及 ReactiveCocoa 封装的接口, 而在我们项目中一般会用到的以下四种 Foundation KVO ReactiveObjC KVO Swift KeyPa...

iOS14适配指北

[TOC] 1. 隐私适配 iOS14最重要的更新之一:用户隐私和安全。 1.1 广告标识符IDFA 广告标识符IDFA全称Identity for Advertisers,用来标记用户以便于投放广告、个性化推荐等。 iOS13及以前,系统会默认为用户 *开启* 广告追踪权限。 iOS14中,系统会默认为用户 *关闭* 广告追踪权限。 iOS 13 获得...

Quick App

前言 : 自2017年1月9日,张小龙在2017微信公开课Pro上发布的微信小程序正式上线。当时我是觉得入口深, 场景单一, 性能差, 觉得还需要很长的路要走, 经过一段时间的发展, 确实有很多企业在微信小程序上做的很好, 之后给应用市场造成了一定的冲击, 给手机厂商也造成了一定的冲击, 之后快应用应运而生. 1. 什么是快应用 快应用是九大手机厂商基于硬件平台共同推出的新型应用生态...

SwiftUI's explore

[TOC] 前言: iOS开发者的UI开发体验一直在大前端中体验是比较差的, 原始的Frame布局系统, API比较难用的Autolayout, 性能相对较差的Xib, SB, 而对于基础的业务开发, UI的开发又占用了大量的时间, 但是在2019 WWDC上Apple给我们带来了新的布局方式 “SwiftUI”; SwiftUI对大量的UI控件进行了重新”定义” Text, Butt...