RubyMotion 使用 Rails 的方式来开发移动应用 (iOS/Android)

winnie · 2014年07月08日 · 最后由 frankswu 回复于 2015年10月24日 · 9267 次阅读

原贴:http://blog.arkency.com/2014/07/one-ruby-to-rule-them-all/

你有没有注意到软件开发正在强烈地朝向移动端发展的趋势? 有越来越多的项目都提供移动端应用,有些项目甚至只有移动端应用。 如果公司只有 Ruby Web 开发者,难道只有修炼成全栈高手才能解决问题吗? 不,Ruby 仍然可以开发移动端应用!

起因

以前,如果 Ruby 开发人员想开发 Android 或 iOS 应用,他得深入学习 Java 或 oc。 如果只是为了尝试一下移动端,而学习一门新的语言,这成本太大了。 试想一下,每天学习和使用新的语言,然后再在工作中再忘记他们 ... 你真的做得到吗?

见识 RubyMotion

我们非常乐意地介绍 RubyMotion 工具链,让你使用 Ruby 快速开发原生的 iOS 和 Android 应用。 我们也是最近才开始 RubyMotion 的征途,所以我们不够熟练,在下一次博客我们会提供一些代码。现在我们专注一下我们要解决的问题。

我们是Ruby开发人员,为了不重新发明轮子,我们经常使用gem库,它能加快速开发进程。当然,有时候适得其反,但这不是今天的主题。让我们达成共识,大部分情况下这是真的。

在开始之前,我们研究发现RubyMotion支持大量的第三方库来提高我们的开发生产力,比如:cocoapods 和 gem 库。 我们来看一下。

1. Libraries:提供一个压缩包,需要手工提取和使用。
2. Pods: oc特有的库,以前只能用于oc项目,通过 HipByte,现在可以在 Ruby 中使用。
3. Gems:Ruby库,RubyMotion 一样可以使用。

框架:

“框架”这个词不一定对,但是容易理解,RubyMotion 的生态圈中有一些“框架”,可以使移动平台开发完全不鸟原来的土鳖语言。 这些框架一般是 Gems,我们来对着 Rails 来列个清单:

RubyMotion:这是 RubyMotion 本尊,他是对原本平台语言的 Ruby 实现,比如:java 或 oc
ProMotion: 它使用 Ruby 的约定,来隐藏或改造 oc 的的冗长语法。学起来不难,用起来方便。
RMQ: oc的 jQuery 版,通过链式表的方法来操作组件,动画,事件和手势等。

合体:

偷学别人的经验,我们总结如下:

必备:

sugarcube - RubyMotion 简化语法大师,
bubblewrap - 公用功能,如:数据持久化,全局状态,通知和硬件。
afmotion - 最好的网络访问接口实现
motionsupport - 使 RubyMotion支持类似 ActiveSupport 功能

样式化:

sweetkit(motionkit + sugarcube)提供类 Rails 布局和类 CSS 样式化
SweetTea (Teacup + SugarCube) 提供类 CSS 样式化,还在开发中
RubyMotion-PixateFreestyle 提供 CSS 样式化,还有对应的设计工具:Pixate Studio

Models:

Core Data Query - 管理 CoreDataStack 数据模型
Motion Model -  CoreData 方言,提供验证和其他混入功能

Frameworks:

Promotion:最接近 Rails 的开发方式。
RMQ:最接近 jQuery 的开发方式,提供类 CSS网格 的方法来实现布局。
2015.9.12 更新:现在推荐 redpotion 和 bluepotion 框架。

总结:

不懂 java 或 oc 不要紧,用 Ruby 去开发吧。RubyMotion 社区和工具都非常棒,不过他是收费的。

试用版本:http://pan.baidu.com/s/1hqBWz6c (只能开发ios应用,不能发布,不能更新,永不过期)

参考连接: http://motion-toolbox.com http://blog.rubymotion.com/post/87048665656/rubymotion-3-0-sneak-peek-android-support


2015.9.12 更新: 现在推荐 redpotion 和 bluepotion 框架。 RubyMotion 推出了免费版本:http://www.rubymotion.com/download/

共收到 17 条回复

坏人,老是考验我面对诱惑的定力。

不过诱惑真的还蛮大的,我快撑不住了

我觉得这些文章都在避重就轻,对「需要熟悉 cocoa 框架等等」只字不提。其实 OC 虽然冗长怪异但是真要学也花不了很长时间,主要时间都是在学习 API 上面。

#2楼 @blacktulip 支持。

如果熟悉了 cocoa 框架,用 oc, swift 应该也难不到哪里去吧, oc 就是没那么好看而已,最讨厌那个多参函数的写法,太别扭了,让人真气逆行。

#3楼 @Peter 哈哈 Swift 把多参函数这一块搞得更复杂了,就是为了兼容 OC 的库,哎,没有办法,只能是写啊写啊的就习惯了。

nice! 看来可以试试

@Peter @blacktulip 你俩是打入 Ruby 的卧底么? 青春很短,趁早性感,Sexy Ruby !

7楼 已删除

不知道如果要开发 mac app 的话现在 macruby 是否还可以一战

motion-kit现在值得关注

用正确的语言做正确的事,远离语言纷争

#6楼 @winnie 大赞,一直在期待RubyMotion出试用版,结果打死不出。不敢保证自己能否hold住,能否坚持,所以一直不敢买。有了试用版就爽了。

嗯,不打语言仗,RubyMotion 为 Ruby 开发者快速入门移动端开发提供一种可能,比较适用于创业公司快速上线移动端。

诱惑力真大阿,不过我已经开始swift了,纠结。

赞,试用下试试。

rubymotion说年底支持安卓呢

对我最大的吸引力就是2点 1、用ruby来写业务逻辑 2、年底能支持安卓

一套逻辑跨两个平台,可以只养一波人,包括web端得人,嘎嘎

这个确实很强大,方便

License file not present. Please activate RubyMotion with `motion activate' and try again.
rake aborted!
ArgumentError: A version may only contain periods and digits.

楼主 不能用么?

从RubyMotion到RMQ再到RedPotion和BluePotion,赞

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册