SlideShare a Scribd company logo
MacRubyとHotCocoaで
        Macのアプリを作ってみた

                     Kanazawa.rb #4 LT 資料
                  井澤ゆきみつ <izawa@clwit.co.jp>




12年12月2日日曜日
RubyでMacなアプリを作りたい

       n     CLIなプログラミングなら普通にできる。…よね?

       n     「Macなアプリ」って何?

              n    ウインドウプログラミング(ウィジェット・スクリーンなど)

              n    デバイスプログラミング(サウンド・ジョイスティック・マウ
                    スなど)

              n    その他、CLIじゃないもの全部

              n    現行OS Xは主に Cocoaというフレームワークを使っています。

                   n   Carbon / POSIX / X11 / Java もあるよ。




12年12月2日日曜日
Macなアプリってどうやって作るの?


       n     Objective-C ...
       n     各種フレームワーク: Application Kit /
              Foundation / Web Kit ...
       n     Xcode ...




12年12月2日日曜日
Macなアプリってどうやって作るの?


       n     Objective-C ...
       n     各種フレームワーク: Application Kit /
              Foundation / Web Kit ...
       n     Xcode ...



                 覚えることいっぱーい
12年12月2日日曜日
そこでMacRubyですよ!

       n     MacRuby
              n   Ruby for the Objective-C Runtime
              n   WebPage: http://macruby.org/
              n   latest version: 0.12




12年12月2日日曜日
How to install

       n     rvmを使うのが楽です。

              n   rvm install macruby
              n   rvm use macruby




12年12月2日日曜日
なにができるの?
       n     ruby で NS~ なAPIを叩けるようになります。

              n   CLIアプリが作れます。

       n     Xcode で MacRuby Application を作れます。

              n   GUIアプリが作れます。

       n     .rb → a.out にコンパイル可能です。

              n   .app も作れます。


12年12月2日日曜日
HotCocoaってなに?
       n     HotCocoa
              n   The MacRuby HotCocoa UI library
              n   UIを記述するためのフレームワーク

              n   WebPage: http://hotcocoarb.org/
              n   latest version: 0.7.0



12年12月2日日曜日
How to install

       n     git clone git://github.com/HotCocoa/hotcocoa
       n     cd hotcocoa
       n     rake install
              n   MacRubyのgem としてinstallされます。




12年12月2日日曜日
sample app

       n     hotcocoa sampleapp
       n     cd sampleapp
       n     rake run




12年12月2日日曜日
sample app

       n     hotcocoa sampleapp
       n     cd sampleapp
       n     rake run




12年12月2日日曜日
sample app

       n     hotcocoa sampleapp
       n
                     あら、簡単ね!
              cd sampleapp
       n     rake run




12年12月2日日曜日
sample code
          require 'rubygems' unless deployed?
          require 'hotcocoa'

          class Sampleapp
            include HotCocoa

            def start
               application name: 'Sampleapp' do |app|
                 app.delegate = self
                 window frame: [100, 100, 500, 500], title: app.name do |
          win|
                   win << label(text: 'Hello from HotCocoa', layout:
          {start: false})
                   win.will_close { exit }
                 end
               end
            end
          end

          Sampleapp.new.start

12年12月2日日曜日
MacRuby&HotCocoaを使うコツ

       n     三枚のおふだ

              n   cocoa プログラミング

              n   MacRuby API
              n   HotCocoa API




12年12月2日日曜日
Cocoaプログラミング

      n      大事なことはみんな Mac Dev Centerが教えてく
              れた。

              n   https://developer.apple.com/devcenter/mac/
                   index.action
      n      クラスライブラリリファレンス・サンプルコード



12年12月2日日曜日
MacRuby API
       n     Objective-C のAPIを MacRuby APIに置き換え
              て考える必要があります。

              n   心の目で見れば分かります。

       n     ブラウザ用ユーザースクリプト:

              n   https://github.com/joakimk/macruby-docs-js/
                   raw/master/macruby-docs.user.js


12年12月2日日曜日
user scriptを活用




12年12月2日日曜日
user scriptを活用




12年12月2日日曜日
user scriptを活用




12年12月2日日曜日
HotCocoa API
       n     基本はソース嫁

       n     git clone してきたリポジトリの中を漁ります。

              n   $GIT/hotcocoa/examples/ ...
              n   $GIT/hotcocoa/lib/hotcocoa/ ...
              n   $GIT/hotcocoa/lib/hotcocoa/mappings/ ...



12年12月2日日曜日
References




12年12月2日日曜日
References
       n     Apple Developer Center
              n   https://developer.apple.com/
              n   クラス名で検索すると、クラスのリファレンス・サンプ
                   ルコードが出てきます。




12年12月2日日曜日
References
       n     Apple Developer Center
              n   https://developer.apple.com/
              n   クラス名で検索すると、クラスのリファレンス・サンプ
                   ルコードが出てきます。

       n     MacRuby Dojo(道場)

              n   http://watson1978.github.com/MacRuby-DoJo/
              n   Xcodeを使ったサンプルプログラムの作り方が丁寧に解
                   説されています。




12年12月2日日曜日
References
       n     Apple Developer Center
              n   https://developer.apple.com/
              n   クラス名で検索すると、クラスのリファレンス・サンプ
                   ルコードが出てきます。

       n     MacRuby Dojo(道場)

              n   http://watson1978.github.com/MacRuby-DoJo/
              n   Xcodeを使ったサンプルプログラムの作り方が丁寧に解
                   説されています。

       n     Google Search Engine
              n   http://www.google.co.jp/
              n   困ったときの答えは全てここにあります。

12年12月2日日曜日
今回作ってみたApp
       n     壁紙をランダムに選んで貼り付けるアプリ

              n   https://github.com/izawa/randWallPaper




12年12月2日日曜日
習作的要素
    n   widgetの組み立て方・基本操作(ボタン押したらwindow開くとか)

    n   スクリーン操作(マルチスクリーン対応)

    n   画像操作

    n   タイマー操作

    n   設定データのLoad/Save

    n   スライダー操作

    n   ファイル選択ダイアログ

    n   ステータスメニュー・常駐化

12年12月2日日曜日
n     statusメニューに常駐




12年12月2日日曜日
n     ひまわり画像をクリックでサブメニュー表示




12年12月2日日曜日
n     ひまわり画像をクリックでサブメニュー表示




12年12月2日日曜日
n     ひまわり画像をクリックでサブメニュー表示




12年12月2日日曜日
n     ひまわり画像をクリックでサブメニュー表示




12年12月2日日曜日
n     設定画面




12年12月2日日曜日
n     Thank You!
              n   If you have any comments, please send to:
                   n   Mail: izawa@izawa.org / izawa@clwit.co.jp
                   n   Twitter: @Yukimitsu_Izawa




12年12月2日日曜日

More Related Content

MacRubyとHotCocoaでMacのアプリを作ってみた

  • 1. MacRubyとHotCocoaで Macのアプリを作ってみた Kanazawa.rb #4 LT 資料 井澤ゆきみつ <[email protected]> 12年12月2日日曜日
  • 2. RubyでMacなアプリを作りたい n CLIなプログラミングなら普通にできる。…よね? n 「Macなアプリ」って何? n ウインドウプログラミング(ウィジェット・スクリーンなど) n デバイスプログラミング(サウンド・ジョイスティック・マウ スなど) n その他、CLIじゃないもの全部 n 現行OS Xは主に Cocoaというフレームワークを使っています。 n Carbon / POSIX / X11 / Java もあるよ。 12年12月2日日曜日
  • 3. Macなアプリってどうやって作るの? n Objective-C ... n 各種フレームワーク: Application Kit / Foundation / Web Kit ... n Xcode ... 12年12月2日日曜日
  • 4. Macなアプリってどうやって作るの? n Objective-C ... n 各種フレームワーク: Application Kit / Foundation / Web Kit ... n Xcode ... 覚えることいっぱーい 12年12月2日日曜日
  • 5. そこでMacRubyですよ! n MacRuby n Ruby for the Objective-C Runtime n WebPage: http://macruby.org/ n latest version: 0.12 12年12月2日日曜日
  • 6. How to install n rvmを使うのが楽です。 n rvm install macruby n rvm use macruby 12年12月2日日曜日
  • 7. なにができるの? n ruby で NS~ なAPIを叩けるようになります。 n CLIアプリが作れます。 n Xcode で MacRuby Application を作れます。 n GUIアプリが作れます。 n .rb → a.out にコンパイル可能です。 n .app も作れます。 12年12月2日日曜日
  • 8. HotCocoaってなに? n HotCocoa n The MacRuby HotCocoa UI library n UIを記述するためのフレームワーク n WebPage: http://hotcocoarb.org/ n latest version: 0.7.0 12年12月2日日曜日
  • 9. How to install n git clone git://github.com/HotCocoa/hotcocoa n cd hotcocoa n rake install n MacRubyのgem としてinstallされます。 12年12月2日日曜日
  • 10. sample app n hotcocoa sampleapp n cd sampleapp n rake run 12年12月2日日曜日
  • 11. sample app n hotcocoa sampleapp n cd sampleapp n rake run 12年12月2日日曜日
  • 12. sample app n hotcocoa sampleapp n あら、簡単ね! cd sampleapp n rake run 12年12月2日日曜日
  • 13. sample code require 'rubygems' unless deployed? require 'hotcocoa' class Sampleapp include HotCocoa def start application name: 'Sampleapp' do |app| app.delegate = self window frame: [100, 100, 500, 500], title: app.name do | win| win << label(text: 'Hello from HotCocoa', layout: {start: false}) win.will_close { exit } end end end end Sampleapp.new.start 12年12月2日日曜日
  • 14. MacRuby&HotCocoaを使うコツ n 三枚のおふだ n cocoa プログラミング n MacRuby API n HotCocoa API 12年12月2日日曜日
  • 15. Cocoaプログラミング n 大事なことはみんな Mac Dev Centerが教えてく れた。 n https://developer.apple.com/devcenter/mac/ index.action n クラスライブラリリファレンス・サンプルコード 12年12月2日日曜日
  • 16. MacRuby API n Objective-C のAPIを MacRuby APIに置き換え て考える必要があります。 n 心の目で見れば分かります。 n ブラウザ用ユーザースクリプト: n https://github.com/joakimk/macruby-docs-js/ raw/master/macruby-docs.user.js 12年12月2日日曜日
  • 20. HotCocoa API n 基本はソース嫁 n git clone してきたリポジトリの中を漁ります。 n $GIT/hotcocoa/examples/ ... n $GIT/hotcocoa/lib/hotcocoa/ ... n $GIT/hotcocoa/lib/hotcocoa/mappings/ ... 12年12月2日日曜日
  • 22. References n Apple Developer Center n https://developer.apple.com/ n クラス名で検索すると、クラスのリファレンス・サンプ ルコードが出てきます。 12年12月2日日曜日
  • 23. References n Apple Developer Center n https://developer.apple.com/ n クラス名で検索すると、クラスのリファレンス・サンプ ルコードが出てきます。 n MacRuby Dojo(道場) n http://watson1978.github.com/MacRuby-DoJo/ n Xcodeを使ったサンプルプログラムの作り方が丁寧に解 説されています。 12年12月2日日曜日
  • 24. References n Apple Developer Center n https://developer.apple.com/ n クラス名で検索すると、クラスのリファレンス・サンプ ルコードが出てきます。 n MacRuby Dojo(道場) n http://watson1978.github.com/MacRuby-DoJo/ n Xcodeを使ったサンプルプログラムの作り方が丁寧に解 説されています。 n Google Search Engine n http://www.google.co.jp/ n 困ったときの答えは全てここにあります。 12年12月2日日曜日
  • 25. 今回作ってみたApp n 壁紙をランダムに選んで貼り付けるアプリ n https://github.com/izawa/randWallPaper 12年12月2日日曜日
  • 26. 習作的要素 n widgetの組み立て方・基本操作(ボタン押したらwindow開くとか) n スクリーン操作(マルチスクリーン対応) n 画像操作 n タイマー操作 n 設定データのLoad/Save n スライダー操作 n ファイル選択ダイアログ n ステータスメニュー・常駐化 12年12月2日日曜日
  • 27. n statusメニューに常駐 12年12月2日日曜日
  • 28. n ひまわり画像をクリックでサブメニュー表示 12年12月2日日曜日
  • 29. n ひまわり画像をクリックでサブメニュー表示 12年12月2日日曜日
  • 30. n ひまわり画像をクリックでサブメニュー表示 12年12月2日日曜日
  • 31. n ひまわり画像をクリックでサブメニュー表示 12年12月2日日曜日
  • 32. n 設定画面 12年12月2日日曜日
  • 33. n Thank You! n If you have any comments, please send to: n Mail: [email protected] / [email protected] n Twitter: @Yukimitsu_Izawa 12年12月2日日曜日