Ruby Motionチュートリアルやってみた(1)
Ruby Motionチュートリアルはこちら。ただし、翻訳版になっています。
▼開発環境
Ruby 2.5.3
Xcode 10.1
Ruby Motion 5.16
ここから、Ruby Motionをダウンロード。
ターミナルで、motionコマンドが使えるようになればOK$。
$ motion create HelloMotion
これで、アプリを作成。
motionはrailsコマンドに相当する。
Rakefileファイルは、設定情報を記載する。ちなみに、$:は、「$LOAD_PATH」のことだそう。
アプリを作成したら、フォルダをアプリ内に移動し、rakeコマンドでアプリを実行することができます!
xcodeをインストールしていれば自動的にSDK(要するにスマホでどのように見えるかを確認できるツール)が含まれています。
ただ、僕の場合はこのSDKがないよ!って言われちゃいました。調べたら、xcodeの設定を最新のものにしないといけないそう。
$ cd HelloMotion
$ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
$ rake
これで完了です!
次に、チュートリアルにそってRakeファイルを変更します。
Motion::Project::App.setup do |app|
app.name = 'HelloMotion'
app.delegate_class = "SuperAppDelegate"
end
まぁ、スーパークラスを継承させてるんだなーくらいにしか認識してません。
次にチュートリアルでは、アプリケーションメソッドを変更するように指示があります。
def application(application, didFinishLaunchingWithOptions:launchOptions)
true
end
これを
def application(application, didFinishLaunchingWithOptions:launchOptions)
alert = UIAlertView.new
alert.message = "Hello Motion!"
alert.show
puts "Hello again!"
true
end
に。でも、バージョンが違うので最初のコードは、これじゃないです。というか、スマホの画面に出ているのも最新バージョンだとホーム画面が表示されてます。最初から記述されてたのはこれ。
def application(application, didFinishLaunchingWithOptions:launchOptions)
rootViewController = UIViewController.alloc.init
rootViewController.title = 'HelloMotion'
rootViewController.view.backgroundColor = UIColor.whiteColor
navigationController = UINavigationController.alloc.initWithRootViewController(rootViewController)
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
@window.rootViewController = navigationController
@window.makeKeyAndVisible
true
end
多分、このコードがホーム画面を表示させてくれてるんだと思います。
ただ、ここ飛ばしちゃうと勉強になんないので、上記のコードにアラートの記述を追加したいと思います。
def application(application, didFinishLaunchingWithOptions:launchOptions)
rootViewController = UIViewController.alloc.init
rootViewController.title = 'HelloMotion'
rootViewController.view.backgroundColor = UIColor.whiteColor
navigationController = UINavigationController.alloc.initWithRootViewController(rootViewController)
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
@window.rootViewController = navigationController
@window.makeKeyAndVisible
#ここを追記
alert = UIAlertView.new
alert.message = "Hello Motion!"
alert.show
puts "Hello again!"
#追記終了
true
end
この状態で再び、rakeコマンドを実行してみました!
$ rake
うん、何も起きない。ログを見てみると、
================================================================================
The application terminated. A crash report file may have been generated by the
system, use `rake crashlog' to open it. Use `rake debug=1' to restart the app
in the debugger.
================================================================================
って書いてる。これじゃわかんないので、指示通りcrashlogを見てみる。
そしたら書いてました。「SuperAppDelegateが見つけられねーけど?」って言われるじゃん!!ちっ、チュートリアルの罠かよ。
ということで、追記したこのコードを削除。んで、もう一度実行。
OK!ちゃんと、表示された!かっこい〜♪
Ruby Motionチュートリアルやってみた(2)へ続く。
いいなと思ったら応援しよう!
