有人用过 RubyMotion 吗,哥们就是做 iOS 的,和 objc 打交道也有四年多了。 有点习惯了 objc,现在学 ruby 有点生涩,下周准备 rails 了 之前看过 rubymotion 的例子,毕竟不是原生,做 app 费劲的多,所以没打算转,只用 ruby 做做 server 就行了,呵呵,就这点追求了 以后遇到不懂,还请前辈们多多指教!
不过听了 teahour 的第四期之后忽然对 rubymotion 没那么大的冲动了,因为就算有 rubymotion 你很多时候还是要和 obj-c 打交道,很多资料或者文档还都是 obj-c 的,还要学 obj-c 还要熟悉 rubymotion 无疑增加了学习成本,不如直接用 obj-c 了,坐等 rubymotion 有杀手级别的 gem 或者比较吸引人的 feature 的时候再入手。
分析下文章里面说的几个优势。
1、性能不提,开发效率比 objc 高
2、shell 工具没有 rails 那么强大,功能有限,目前只能通过点击页面的 UI 元素来选取对象(不太好选),或使用 AppDelegate 等全局可以读取的东西,也许我使用方法不对?但调试简单代码,尤其是试验一些 api,有 shell 要方便得多
3、长语句输入其实不是问题,比如 sublime text 也有针对 rubymotion 的代码提示插件,基本够用。rubymotion 的好处是可以简化语法、不用太操心对象类型、不用在 h 和 m 文件里折腾、不考虑 strong、retain、weak 之类的问题。语法精简以后,可读性更好
4、cocoa 的学习不管是用 objc 还是 rubymotion 都是一样的,只需要简单了解 objc,就可以在两种语言间转换,这个体验就好像 javascript 和 coffeescript。这个转换非常容易,我在拿到 rubymotion 的第一天看了看文档,第二天就开始重写之前的小程序了,没有什么额外的学习成本,目前也没遇到什么 rubymotion 特有的坑
5、rubymotion 的最有价值特性还是源自 ruby 元编程,靠 DSL 把复杂的操作变得非常简单。目前已经有一些 rubymotion 的 wrapper(http://rubymotion-wrappers.com/) 可以与 objc 对比来看。比如 AFNetworking vs AFMotion,AFMotion 简洁的要死。比如 bubble-wrap 和 sugarcube,把大量常用功能都封装起来。再比如 MotionModel,虽然我还没试用,但是看文档描述,已经可以秒杀 objc 下任何相关项目了
我认为 rubymotion 很有前景、非常值得一试 IOS 开发火了这么几年,也没一个可以让人快速开发的框架出现,将来很可能会由 rubymotion 实现