使用Ruby进行iOS开发

从RubyCocoa到MacRuby

Hisakuni Fujimoto于2001年开始开发RubyCocoa框架,这使使用Ruby创建基于Mac OS的基于Cocoa的本机应用程序成为可能。 Cocoa是Apple的API,用于在macOS上构建应用程序。

它发展很快,几年后,苹果开发人员Laurent Sansonetti加入了提交者。

苹果在2008年宣布MacRuby将很快发布,并将取代RubyCocoa。 有趣的是MacRuby是开源的,这对Apple来说是罕见的。

2008年3月,第一个版本发布。 MacRuby使用Ruby 1.9和LLVM编译器(用C ++编写的编译器)和受支持的Interface Builder(XCode)。 开发过程一直持续到2012年,直到苹果对此失去兴趣,洛朗·桑松内蒂(Laurent Sansonetti)离开了公司。

RubyMotion

劳伦(Laurent)离开苹果后,他创立了自己的创业公司RubyMotion。

RubyMotion是一组用于在Ruby中进行iOS开发的组件,其中对象模型是使用Objective-C运行时运行时在编译器中用来实现语言中内置的函数的库)来实现的 ,因此在创建类,对象或对象时一个方法,您正在使用Objective-C对象,类或方法的相同运行时实现。 因此,您无需使用任何中间件就可以访问整个iOS API。

最后,设备采用了Objective-C和Ruby运行时,其中Ruby实现运行时是静态链接的,大约为1Mb。 它包含所有现有的类,例如String,Aray,Hash等,并且还实现了Objective-C中不存在的所有Ruby功能,例如mixin(模型)或将实例变量动态设置为Class。

RubyMotion还具有静态编译器,可将Ruby立即编译为优化的机器代码。

咱们试试吧!

RubyMotion项目基于Rakefile。

“ app”目录包含应用程序代码。 “资源”目录将包含项目的资源文件,例如图标,图像或声音文件。 “ spec”目录包含规范/测试文件。

让我们尝试一下RubyMotion提供的示例之一-TicTacToe。

…而且有效!

链接

RubyCocoa,MacRuby,RubyMotion

与Laurent Sansonetti一起了解RubyMotion – SitePoint
直到去年4月,Laurent Sansonetti凭借RubyMotion吸引了整个Ruby社区的想像力…… www.sitepoint.com