Home
Klein Mioke
Cancel

How to make Swift Macro available using CocoaPods

By the release of Swift 5.9, it provides the feature Swift Macro, which is really useful for the developer to reduce boilerplate code and helping to improve the readability of the code. However, a...

When we talk about politics

如今国内已经越来越难互相谈论社会、政见话题了,原因不乏就是政治教育缺乏,同时也没有讨论环境。本来有很多想说的,但是经历过一次次冲突之后明白了一个道理,要讨论这些,首先需要判断对方的思维体系是趋同的还是趋异的。人类文明进步到今天,一定趋同是文明进步的趋势。所以跟一个趋异的人去讨论问题,他一定会用一些你们根本上的差异点去反驳你,导致不可调和的矛盾。所以,一定要首先从缓和的话题去分析他是属于哪种人...

Why we struggled using native code to build apps

以下想法为个人思考,没有讨论对错,没有想去从全局or任意角度为分析,仅为记录。 写这篇思考对的思源是,近两天看到朋友圈在发关于腾讯云搭建低代码平台的新闻。文中对低代码的优势总结几个字在于快速、simple、难度低(人人都是工程师😂)。我个人对平台级技术的发展没什么意见,但是我偶尔想到了最近刚在炒的概念 Metaverse (元宇宙)。我感到有点有趣🤔,因为不论以后 Metavers...

The some in Swift

Swift 5 introduced the “Opaque Type” and see how wrong did I think about it. 我的思路遇到了什么问题 最先开始我以为 some 是一个类似于 ObjC 中 __kindof 的标识,意识到我的错误是在一段时间之后了。 说明这个过程和 some 的用法我们需要从我先入为主的乱用开始说起(开始废话了)。 ...

Compare between RxSwift and ReactiveSwift

If you asking me which framework should we prefer to use now, my answer is RxSwift🙈. RxSwift 社区更为活跃,并且 RxSwift 实现的是 Rx 通用接口(加上一点点🤏语言特性功能),所以更容易找到文档或查找到相关讨论(包括目前 RxSwift 已经开始开发 concurrency 相关的 f...

Chirpy - Installations and Functions

Customize the favicon The favicons of Chirpy are placed in the directory assets/img/favicons/. You may want to replace them with your own. The following sections will guide you to create and repla...

Codable introduced in Swift 4.0

Swift Codable Codable 其实是组合协议: typealiase Codable = Encodable & Decodable Swift 基础库中的 Codable、JSONEncoder、PropertiesListEncoder 给我们提供了日常所用的基础功能。使用起来也很简单,以 JSONEncoder 为例。 struct Cat: Codab...

Swift Tips (3) - Protocol

protocol 组合 其实 Any 是 protocol<> 的同名写法,可以用来表示任意类型。protocol<> 的标准语法形式是:protocol<ProtocolA, ProtocalB>。protocol 组合是可以使用 typealias 来命名的,这样可以提高我们的代码可读性: typealise ServerType = protoc...

Swift Tips (2) - Standards

方法参数命名规范 由于Objective-C API的命名转换,到Swift API的更新,现在(Swift 4.0)我们更应该使用靠近Swift系统的命名方式: func convert(_ point: CGPoint, from view: UIView?) -> CGPoint 不符合规范的:func convertPoint(_ point: CGPoint, ...

Swift Tips (1) - Function

函数的柯里化 Swift 里可以将方法进行柯里化 (Currying),这是也就是把接受多个参数的方法进行一些变形,使其更加灵活的方法。 在非函数式的代码时,我们可能会这样写一个方法: func isNumber(_ base: Int, greaterThan target: Int) -> Bool { return base > target } 同样的功能如果...

RxSwift 在工程中的应用

RxSwift在工程中的规范化应用 在工程中使用 RxSwif 和 RxCocoa 之后,遇到了不少问题,从这些问题中总结出了一些优化点和需要注意的地方,作为讨论和以后编码时的指导。 简化 Observable 功能 Observable 用来描述一个操作的流程,简单可以描述为:输入->执行->输出 * n->结束。对于一个 Observable 来说,他的执行部分代...

Learning ReactiveSwift - Part 2

数据流 FRP之前一篇已经介绍过,是一种抽象的数据流型的编程思想。对于数据流,开始一个数据流后,会产生很多事件。在ReactiveSwift中,定义的事件有Event、Error。对应Observer则会有observe value、failed、complete、interrupted。 对于冷信号: let observer = Signal<Int, NSError>.O...

Learning ReactiveSwift - Part 1

RAC 4.0发布以后发现,RAC进行了大量的更新,其中最主要的是使用了ReactiveSwift作为基础库,替换掉了以前OC版的库,RAC则是对于RAS和Cocoa框架的封装。 入门 对于以前的RAC教程,理论部分大部分还是通用的,但是ReactiveSwift在某些方面进行了重构和修改,而且现有教程缺乏更新,不得已我们重头来梳理遍ReactiveSwift的入门教程。 Rea...

POP, 泛型和函数式思想在iOS中的应用

什么是POP (Protocol-oriented-programing) 在我们平常工作中,经常使用的是OOP(Object-Oriented-Programing),比如C++、OC、JAVA。他们是把一些数据或动作集合当做一个对象来看待,比如树、人、机器等。POP则不同,它从另一个视角看待事物:属性。一个对象拥有的数据属性和动作属性,都可以成为一种协议(protocol),不...

Transmission Between Weex and iOS Native

Weex 与 iOS Native 的传输 在使用Weex时,我们经常需要数据和事件与native之间的交互,多发生于界面事件和数据传输。举个很简单的例子,Weex page中一项内购的页面,需要显示Apple store的价格,此时需要native从服务器拿到价格后发送给weex page做显示。这个过程包括weex发送请求到本地,本地处理回调等。 本文主要内容就是,如何实现这一过程及...