Skip to main content

Command Palette

Search for a command to run...

RubyMotion: iOS app in Ruby

Published
1 min read

故事是這樣的,2007 年的某個時刻,Apple 公司的 Laurent Sansonetti 公佈了 MacRuby,一個 Object-C 執行期的開源動態解析器。能夠用 Ruby 直接操作 Cocoa API。稍稍的降低了開發 OS X 桌面程式的痛苦程度。當然 Ruby 社群們殷殷期盼的,就是能夠在 iOS 上如法泡製。

五年後的現在,Laurent 剛剛從工作了七年的 Apple 愉快的(?)離職了幾個月,發表了橫空出世的新作品: RubyMotion

除了能將 Ruby 語言編譯成 iOS native byte code 外,不依賴 Xcode IDE,改用 Ruby 界習慣的 Rake 模式建立及開發。令人更加驚豔的是能在終端機中直接與模擬器互動,即時修改 => 測試:

Pragmatic Studio 更破天荒的錄製了 50 分鐘的基礎教學。這影片就是本篇的重點了。

目前擁有的優勢:

  1. Ruby,Ruby,Ruby。
  2. 可以用自己習慣的editor,習慣的rake,習慣的SourceControl。
  3. 提供了連Xcode都沒有的即時修改模式。
  4. Ruby社群等很久了…

可能會阻止你的點:

  1. 商業軟體: USD199149,即使早鳥價也不太輕鬆。
  2. 沒有 OpenSource。
  3. 你還是得學會 Cocoa...
  4. 把 View 寫在 controller 裡,沒有拖拉界面的 GUI (聽說有人送 Patch 了…)
  5. 市面上有經營一段時間的 Titanium(JavaScript),及即將發佈的 MobiRuby 兩個免費解決方案。

有閒情逸致的話,再來比較 Titanium 及 RubyMotion的優劣囉。

More from this blog

聊聊 Elixir 中的 type

最近有幾位朋友分別來問 Elixir 的 type 的問題,想說中文世界好像沒有比較完整的東西,就把知道的東西整理出來。 (目前) Elixir 的 type 能做什麼? tl;dr: 最主要是文件,然後在某種程度下防止錯誤。 我覺得這應該是在研究 Elixir 的 type 時最需要知道的事情了。不像 Haskell 及 F# 這種以型別著稱的 ML 系語言,Elixir / Erlang 本質上是個動態語言,所有與型別有關的標註都會被編譯器忽略。而 Erlang 內建的型別檢查工具 dia...

Oct 18, 20222 min read

Steam 上的程式教學類遊戲

農曆年期間比較有空,玩了一些之前買的遊戲。這次特別試了幾個標榜讓不會寫程式的人學寫程式的遊戲。分享一下試玩的心得。 1. 7 Billion Humans 考慮到劇情的話我最喜歡的是 7 Billion Humans。它用拖拉語法的方式下指令,一開始還蠻好上手的,但是因為只有 goto 那樣的結構,而操作的時候又是一次對所有的 worker 下指令,所以常常要想一下執行後每個人運作的順序。但是介面有正體中文,以「想要體驗一下寫程式大概是怎麼一回事」來說還蠻適合的。 2. while Tru...

Feb 24, 20201 min read

Let's (re)start from here.

最近的時間大半都花在這上面了。 算算應該是第五次弄部落格系統。算一下扣除上古時期用現成的之外,每個系統平均各寫六篇文章,也都撐不過兩年。前幾個分別用了 Refinery CMS -> jekyll -> middleman -> jekyll。想來架系統的總時數應該超過寫文章的時間 XD 而這次用上了 Gatsby + tailwindcss,除了恢復一下 GraphQL 的手感之外,這次還挑戰了不套別人做的版型,自己把類似上一個部落格的 style 刻出來。想說來分享一下這些技術的感想: G...

Jan 11, 20201 min read

Mostly Functional

31 posts

/.(ex|jsx?|rb|hs|rs|py)/, A father, a bookworm, a pluviophile. Co-organizer of http://Elixir.tw. Learning Satir, coaching & mediation.