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)へ続く。



サポートしていただけると、泣いて喜びます! 嬉しくて仕事をめちゃめちゃ頑張れます。