ひとりぶろぐ

価値ある情報をユーザー視点で発信するブログ

「PictRuby」iOS用のプログラミング言語Rubyが面白い

      2016/01/21

実用的に使えるiOS用のRuby

pictruby-00

iOSで動くプログラミング言語Ruby、PictRubyがリリースされていました。

PictRubyは、iOS 8.0以降。iPhone、iPad、およびiPod touchに対応した、オープンソースのユニバーサルアプリ。

組み込み向けのRubyであるmrubyを内蔵しており、ネットワーク環境不要でRubyスクリプトが実行可能。

PictRubyApp
カテゴリ: Productivity
販売元: Tomokazu Tsuruoka(サイズ: 1.6 MB)
全てのバージョンの評価: (0 件の評価)

このPictRubyはテキストエディタ、ファイル管理機能、実行環境が備わった簡易IDE。Rubyスクリプトを作り、編集し、そして実行できます。

pictruby-01 pictruby-02

当初、画像処理に特化した形でリリースされましたが、後にバージョンアップでiOSのクリップボードを扱えるようになり、テキスト処理にも使えるようになりました。

以下のような目的で使うことができます。

  • 自動処理
  • アプリの起動(openURLを使用)
  • Web APIの利用
  • 計算
  • 画像フィルタ

実例紹介

以下はイメージピッカーでカメラロールから画像を4点選択、それをグリッド状に並べてカメラロールに保存する例です。

def convert
	imgs = Image.pick_from_library(4)
	img = ImageUtil.grid(imgs)
	img.save
end

pictruby-04

pictruby-05

PictRubyは、メソッドconvertがエントリポイントとなっており、必ず定義が必要です。

最終行の返り値が画像かテキストになるようにします。

iOSのクリップボード、openURLもRubyから利用可能で、JavaScriptで言うalert()、prompt()に相当する最低限のユーザーインターフェースを備え、実用風なスクリプトを書くことが可能になっています。

以下はクリップボード上のテキストを1文字ごとに指定した文字で区切り、またクリップボードに戻す例です。

def convert
	txt = Clipboard.get
	delimiter = Popup.input("Delimiter?")
	txt = txt.split("").join(delimiter)
	Clipboard.set(txt)
end

Browser.open(url)というメソッドでOpenURLが使えますので、加工したテキストをほかのアプリに渡すこともできます。

def convert
  src = Clipboard.get
  Browser.open("twitter://post?message=" + URI.encode_www_form_component("[" + src + "]"))
end

pictruby-03

発展途上の点も

日本語の処理に難があったり、

"あいう".size #=> 9

mrubyなので正規表現が使えなかったりというウィークポイントもありますが、PictRubyは11月に登場したばかりですので、今後に期待ですね。あるいは、オープンソースですので、コミットしましょう。

この用途ではPythonista(Python)が非常に高い完成度を持っていますが、Rubyが好きな方は使ってみてはいかがでしょうか。

公式ページ

ソースコード

 - iOS, Programming