Swift开发开源框架Katana

Katana是一个用于编写iOS应用程序的现代Swift框架,灵感来自React和Redux:

1.逻辑:应用程序状态完全由单个可序列化数据结构描述,并且更改状态的唯一方法是调度操作action。动作action是转换状态的意图,并包含所有要执行此操作的信息。因为所有的变化是集中的,并且以严格的顺序发生,没有微妙的竞争条件值得注意(无需关注锁与并发问题)。

2.UI:根据属性props(配置数据,如按钮的背景颜色)和状态(内部状态数据,如按钮的突出显示的状态)声明性地描述的组件树来定义UI。这种方法让您将组件视为独立的,可重复使用的UI,因为组件的呈现方式仅取决于组件本身的当前属性props和状态。

3.逻辑↔️UI:UI组件连接到应用程序状态,并将在每个状态更改时自动更新。您可以控制它们的变化,这种变化是通过选择应用程序某个状态实现,这些状态正好输出给组件属性props。为了尽可能快地呈现该过程,仅更新UI的相关部分。

4.布局:Katana定义了一种简洁的语言(灵感来自于Plastic),用于描述完全响应的布局,它将适度地缩放每个宽高比或尺寸,包括字体大小和图像。

BendingSpoons/katana-swift: Swift Apps in a Swoosh