原贴:http://blog.arkency.com/2014/07/one-ruby-to-rule-them-all/
你有没有注意到软件开发正在强烈地朝向移动端发展的趋势? 有越来越多的项目都提供移动端应用,有些项目甚至只有移动端应用。 如果公司只有 Ruby Web 开发者,难道只有修炼成全栈高手才能解决问题吗? 不,Ruby 仍然可以开发移动端应用!
以前,如果 Ruby 开发人员想开发 Android 或 iOS 应用,他得深入学习 Java 或 oc。 如果只是为了尝试一下移动端,而学习一门新的语言,这成本太大了。 试想一下,每天学习和使用新的语言,然后再在工作中再忘记他们 ... 你真的做得到吗?
我们非常乐意地介绍 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
Core Data Query - 管理 CoreDataStack 数据模型
Motion Model - CoreData 方言,提供验证和其他混入功能
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/