Goby使用 ClojureScript 开发 iOS 应用
Goby 可以使用 ClojureScript 来开发 iOS 应用。ClojureScript 是一个用来将 Clojure 语言转成 JavaScript 脚本的工具。
该存储库包含一些轻量级的ClojureScript和Objective-C粘合代码,这些代码有助于创建iOS应用,其中视图控制器使用ClojureScript(而不是Objective-C或Swift)编写。否则,生成的iOS应用程序是本地的,并且JavaScript在嵌入式JavaScriptCore实例中运行。
总体设计包括用于各种UIKit元素的装饰器,每个装饰器都实现JSExport
协议,以便可以在ClojureScript代码和UI元素之间建立互操作。Goby将UI视为可以被操纵或监听的一堆可变状态,而ClojureScript代码中的原子仅保留对装饰器的引用。
当需要提供诸如的Objective-C协议实现时UITableViewDataSource
,Goby提供了等效的ClojureScript协议以及一些粘合代码和reify
宏,从而可以直接在ClojureScript中实现Objective-C协议。处理某些Objective-C方法是可选的情况。
还有其他一些事情可以解决,例如一些用于管理JavaScript加载的基础结构粘合代码,以及用于将方法从iOS分配到ClojureScript命名空间的简单工具。定义了各种iOS SDK枚举常量的ClojureScript关键字,以简化工作。
因此,Goby相当少,仅提供一些结构来帮助建立围栏的Objective-C和ClojureScript侧面之间的通信。它没有尝试提供支持功能编程风格的复杂框架。但是,它至少使您到达使用ClojureScript进行编码的地步。:)
这种方法被用来建立一个应用程序目前在App Store和该回购是从该项目中的可重用位的。