使用Ruby简化移动应用程序开发– Dave Trollope

使用Ruby简化移动应用开发

去年春天,我有个主意,为什么没有一个应用程序可以跟踪轮到谁来支付咖啡/午餐/早餐等费用。结果,有几个旧应用程序,但这对我来说是一个很好的机会尝试回到应用程序开发中,我几年前就尝试过,但从未发布过任何东西。

我对RubyMotion也很感兴趣,并且已经开发了很长时间的Ruby,想了解它如何作为移动应用程序工作。 您不知道可以用Ruby编写移动应用程序吗? 就像Web应用程序一样有趣!

因此,我开始了构建现在位于应用商店中的应用的旅程。

版本1是一个非常简单的基于表的列表,由于可用的包装iOS API(ProMotion)的有用宝石,因此花了不到两周的时间来开发。 我希望该应用程序更美观,因此我开始使用版本2,这是挑战变得更加困难的地方。

我对使用RubyMotion感到非常高兴-挑战主要在于了解iOS API。 对于版本2,我为主页创建了一个自定义iOS视图,并基于RubyMotion示例之一创建了该视图。

它可能仍然漂亮,但比桌子更具吸引力!

当您不完全熟悉iOS生态系统时,将iOS API映射到ruby是我最大的挑战,但是毫无疑问,无论我使用哪种语言,我都会在很大程度上获得学习曲线-尽管Objective-C和Swift在网上有更多示例从。

RubyMotion将ruby编译为静态本机代码,因此常规的ruby gem在RubyMotion中不起作用。 我发现这并不是一个沉重的负担-有很多宝石可以移植功能或以其他方式进行操作。 可以预料,在完全不同的生态系统中运行时,有关此问题的文档很多。 调试可能会遇到一些挑战,因为有时(针对最棘手的问题)有时需要诉诸LLDB而不是RubyMotion REPL,但是REPL对于大多数问题超级有用,因为它允许您在运行iOS模拟器时检查进程状态该应用程序,太好了!

希望人们在App Store上找到该应用程序,开始使用它并向我提供反馈,这真是令人称奇。最大的请求之一是历史跟踪,由于红宝石,这非常容易! 将来,该功能将扩展为支持付款跟踪,这是另一个非常需要的功能。

我即将发布我的第一个应用程序内购买实现,它将实现支持设备对等同步的PRO版本(以上屏幕截图来自预发布)。

我还计划在Android上发布该应用程序的版本,因为RubyMotion也支持Android,WatchOS和OSX。 有一些实现跨平台支持的瑰宝,因此您不需要了解所有本机API(例如,EG Flow),尽管我并非以此为起点,所以我将不得不决定在为每个生态系统学习API还是切换瑰宝之间做出决定-以及重新创建我的自定义视图将变得多么容易。 另一天的挑战。

另外,我也想给JetBrains的人们一个叫喊声-我在整个开发过程中都使用了RubyMine,我真的很喜欢他们的开发平台。 他们也支持RubyMotion,尽管我实际上没有在该配置中设置…。 我很快也会再来的!

总体而言,RubyMotion在无需学习另一种语言的情况下使我轻松进入应用程序世界提供了极大的帮助,我非常感激能将其包含在我的工具带中!