我们公司主要将 ruby 作为服务器端和 web 语言。而移动端的开发采用的是安卓和 ios。而 ruby 开发 app 需要套壳子,我想问问大家有没有好的建议和想法?
Turbolinks
然后今年 @Rei 也要在 RubyConf China 上面讲这个话题。
很多人误解了 Turbolinks,其实是一个非常棒的东西
参考实现:
Ruby China 的 iOS 客户端已经放弃了之前的 Ionic 方案,改用 Turbolinks 了,这个版本不出意外,将会在 RubyConf China 2016 那天发布。
个人建议简单 App,如果会 OC/Swift/Java 的,还是开发原生 App 吧,体验真的好不少,而且代码和逻辑非常符合各平台自己的习惯。 如果 App 业务逻辑非常复杂,做 Hybrid App,用 Web 实现业务最复杂最经常变化的那些部分,嵌入到原生 App 中。
#9 楼 @huacnlee 原来是https://github.com/ruby-china/ruby-china-turbolinks的插图没留全... 一方面看不到底部,一方面看不到首页...
讲心里话,没有一个语言是通吃天下,只有适合的场景用适合的语言。iOS 和安卓肯定是选用原生的方式开发是最好的,运行速度和体验上是不一样的。而且 iOS 和安卓有互通的地方,所以基本上学会一门,再去搞另一门是非常轻松的事情。
试图用一把锤子敲天下所有的钉子(其实好多并不是钉子对不?)的行为都是耍流氓。
其实技术选型非常朴素:如果 app 内容(外观、渲染、交互),与 web 很接近(Basecamp 恰巧就是这种类型),用 Hybrid,首选 Turbolinks。如果不是则上原生。
感觉 Rails 团队好怀念当年拔剑四顾、天下无敌的 Web 开发黄金年代啊,哈哈!
个人认为,如果本身是就是 Web 的内容,将其直接移动化,比如 Ruby China 本来就是一个网站,那么用 Turbolinks 的确非常省事。但如果一门心思的试图以 Web 的技术来适配通用的移动应用场景,那就很不合适了,老虎钳是好用,拧螺帽也不是不得行,但总觉得很有点别扭,对不对。
就好像视频中的问答一样,SQL Lite 支不支持?GPS 支不支持?等等,回答好像我记得都是肯定的,但演讲者似乎对这些场景稍稍感到有点意外,可能没这么真正用过,真正处理起来,绝对有许多坑。
所以最近几年下来,个人感觉对 Rails 团队的固步自封非常失望,越来越失望!开源社区从 Rails 身上已经学到了很多,但 Rails 团队自身却很少离开自己的舒适区,核心成员十几年都待在同一家公司,做着同一件事情。因此,Today I accept that Rails is yesterday’s software(并不太同意这篇文章,但比较接受这个标题描述的事实)。
最后,搭个便车,诚招 Rails 工程师,坐标重庆新牌坊,有意者请联系我,谢谢!
#17 楼 @xhj6 这哪里是固步自封呀?什么地方体现出固步自封?我觉得应该是哪些人掌握了一套有效的解决方式、正确的工作模式持续坚持而已。你怎么知道哪些人没尝试过其他语言其他框架,其他的技术实现,你以为他们都傻么。
Rails 的思想是用简单有效的方式解决复杂的事情,Tubrolinks 的出现也不是拍脑门,而是确实能解决很多实在的问题,而且简单有效,Rails 的很多设计是希望整合实现,结合 Rails 已有的技术,避免重复开发相同的功能。
是的 Turbolinks 不是万能药,你不可能靠他实现所有项目,但在项目初期,甚至后期,你依然是可以用他实现很多功能的,然后它仅仅是 iOS 开发里面的一个小组件而已,有一天你的项目有时间有需要的时候,你可以逐步的把一些功能用 Native 实现(前提是你得有哪么多时间),Turbolinks(我指客户端的组件)仅仅是 iOS 里面一个对 WKWebView 的封装而已,它并没有破坏原有的 Native 架构,所以这个对于未来的 Native 实现是没有成本(或者说成本非常低的),当然也是相对 React Native、Ionic、RubyMotion 之类的架构方式。
所以为何不用呢?Turbolinks 能帮你项目起步的时候快速实现 iOS 功能,当然你要牛逼并且有时间有资金,你当然可以找几个 iOS 和 Android 工程师开发 Native 的 App。
还有一点是我认为 Turbolinks 还是更多的为 Rails 而设计的,只有 Rails 的项目用起来才会那么顺畅,我前面说到那些快速实现的基础是 Web 开发者得有熟练的 Rails 基础。
#20 楼 @ashchan #21 楼 @huacnlee
Sorry, 说“固步自封”太过了!其实我当然知道他们很牛,解决问题的方案也在一直引领潮流。但是我的感觉是需求的固化使得这些牛人们 也许 会对 Rails 的欠缺之处缺乏同理心,“在我这儿用得好好的啊?”,会不会这样呢,仅仅只是我的猜测。
我的失望之处就主要来源于 Rails 对移动化的支持来得太晚、太浅、太不够,比如对前端的支持和跟进肯定是像 @huacnlee 所讲的那样,尝试了很多框架,回头来还是觉得目前绑定 JQuery 就够了,为什么呢?我以为是需求的单一化所造成的,对于他们来讲够用了而已。
但是对于 Web 开发来讲,对于创业公司和小团队来讲,Rails 在团队人员跟得上的情况下,仍然是黄金利器。我本人以及本人的团队在可以预见的两三年内仍然会坚持使用 Rails,对 Turbolinks 这种方案也非常感兴趣,所谓的“失望”只是观看视频的过程中的一点小感慨而已。
#22 楼 @cqcn1991 不能说是烂摊子,还是有很多好东西的,只是还没有入 Rails 团队的法眼,或者是没办法整合而已。
十几年公司不倒,聚财吸金不辍,人精简效率高,乃第一世界业界之楷模,北欧英才,偕日式菊刀,傲立美利坚硅谷,开宗创派,江湖老司机
第三世界一小撮观点,认为此举不妥,固步自封
北欧风偕菊与刀,是“痛失首金非喜迎首银“的民族无法理解的
#25 楼 @oth 本不想回此贴的,转眼间居然有 3 个人为你点赞,真是令人遗憾。
我想谈论的是:
我遗憾的是,我提出这个观点,您如果认为它并不符合事实,完全可以列出反驳的事实和论据,比如象 @huacnlee 那样,说明 Tubrolinks 为什么好,令人阅后有所收益,而您的回帖呢,我的理解是基本上完全仅仅只是人身攻击而已。
回避问题,动则扣大帽子,正是 “痛失首金非喜迎首银”的民族 的典型做派,我分不太清楚这究意是“文革余毒”还是“封建遗毒”,不太清楚您是否看过《影响力》这本书,但书中有一个观点可供您参考:
自我认同度越低的人,越容易去 认同 / 迷恋 / 捍卫 别人的成功。
另外,对我自己而言,不管它是北欧或是日式,我的尊敬并不会因此而多一分,也不会因此而少一分;对于技术,说老实话,我真的很少意识到它还有国别和民族的差异,动则以歧视性的角度去看人看事,归根结底还是因为自己非常自卑吧,而这,恰恰又正是 “痛失首金非喜迎首银”的民族 的典型特征之一。
就如 @ashchan 提到没有一种方案是通吃的,每种技术方案都有它适合的场景,存在的意义,关键自己想要什么。要性能,体验,那么原生,代价是成本较高,如果要性能,要开发效率,那么试试 react native / weex,当然也并不完美。对于 web 开发者,个人也更倾向于偏 web 方案,更亲切,当然个人意见。