僕は発展途上技術者

RubyMotion で API にアクセスし、取得した JSON をパースして表示するサンプル

Ruby で iOS アプリを開発できる Ruby Motion を使ってアプリを作り始めているのですが、Objective C で開発していたときと比べて楽過ぎてヤバいです。

Ruby Motion だけでも充分楽になるのですが、さらに BubbleWrap というラッパーと一緒に使うと、コードがとってもシンプルになって楽しい。

どんなにコードがシンプルになるかをデモするために、API にアクセスし、取得した JSON をパースする、という良くあるパターンを含んだサンプルアプリを作ってみました。 

World Countries API にアクセスし、取得した JSON から国名のリストを作成し、画面をタップするごとにランダムに国名を表示します。

このサンプルを動かすには、

gem install bubble-wrap

で BubbleWrap をインストールしたあと、Rakefile に

require 'bubble-wrap'

を追加する必要があります。

アプリのソースコードは GitHub に置きました。


» champierre/RubyMotionSamples/Countries



class AppDelegate
def application(application, didFinishLaunchingWithOptions:launchOptions)
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
@window.backgroundColor = UIColor.whiteColor
label = UILabel.alloc.initWithFrame @window.frame
label.textAlignment = UITextAlignmentCenter
label.text = "Tap!"
BubbleWrap::HTTP.get("http://www.geognos.com/api/en/countries/info/all.json") do |response|
if response.ok?
json = BubbleWrap::JSON.parse(response.body.to_str)
@countries = json["Results"].values.map{|info| info["Name"]}
end
end
label.whenTapped do
label.text = @countries.sample
end
@window.addSubview(label)
@window.makeKeyAndVisible
true
end
end
view raw app_delegate.rb hosted with ❤ by GitHub

RubyMotion で画像を View の上に表示する

備忘録的にメモ。

image = UIImage.imageNamed("icon.png")
@image_view = UIImageView.alloc.initWithImage(image)
@image_view.frame = CGRectMake(0, 0, 36, 36)
view.addSubview(@image_view)
view raw gistfile1.txt hosted with ❤ by GitHub





image = UIImage.imageNamed("icon.png")
@image_view = UIImageView.alloc.initWithImage(image)
@image_view.frame = CGRectMake(0, 0, 36, 36)
view.addSubview(@image_view)




view raw
gistfile1.txt
This Gist brought to you by GitHub.




表示したい画像の画像ファイルは resources 以下に置きます。

プロフィール

株式会社まちクエスト代表、つくる社LLC代表。

Scratchで楽しく学ぶ アート&サイエンスRaspberry Piではじめる どきどきプログラミングを書きました。

オンラインコンテンツ: 大人のためのScratch

Amazonから図書館検索 Libron、iPhoneアプリ ひらがなゲーム かなぶん を作っています。

Email: webmaster at champierre dot com

Twitter @jishiha

最近のエントリー

アーカイブ