Posted by yamada on 2012/04/09 – 09:00
Filed under Mac, Ruby
Tagged as Mac, OS X, Ruby, Xcode, プログラミング言語
MacRubyというツールで、Xcode+Rubyという環境でMacアプリを簡単に作れるらしいので、ちょっとどれほどのものか、とりあえずテストプロジェクトのビルドまでをやってみました!
作業環境は、Mac OS X 10.7.3、Xcode 4.3.2、MacRuby 0.10 です。
最近のMacRubyは、Intel 64bitのMac OS X 10.6以上、という環境でないと動かないので注意。
参考サイト
いくつかのチュートリアルページを見て、設定も簡単そうなので、試してみました。
ここを読む限り、簡単に出来そうで始めたわけです。
が!最新事情はちょっと変わっていて、ちょっとハマったので、下記にその解決策も書いておきます。
なにはともあれダウンロード
まず、公式サイト(http://www.macruby.org/)より、インストーラ(.zip)をダウンロードします。

インストーラパッケージ「MacRuby 0.10」をダブルクリックしてインストール。

完了したら、ターミナルで下記のようにコマンドの存在を確認できます。

Xcode 4.3対応
チュートリアルページを見てもこれで完了のハズですが、Xcodeで新規プロジェクトのダイアログを開いても、MacRubyが出てきません。

あれ?と思っていろいろ考えてみたら、Xcode 4.3でフォルダ構成がガラっと変わったことを思い出しました。
Xcode 4.2.x までは、 /Developer というフォルダにすべてが入っていたのですが、4.3からは、Xcode.app内に移動したのです。
で、探ってみたら、やはりMacRubyインストーラは/Developer フォルダにいろいろと入れているので、これを移動します。
Finder上でやってもうまくいかないところが出てくるので、ターミナルでsudoコマンドで実行しましょう。
MacRubyがインストールしたのは、/Developer/ 以下の Library、Examplesというフォルダと、binの3つのフォルダ。
まずは下記のように、Library、Examplesフォルダをコピーします。
1
2
| $ sudo cpmac -r /Developer/Library /Applications/Xcode.app/Contents/Developer/
$ sudo cpmac -r /Developer/Examples /Applications/Xcode.app/Contents/Developer/ |
もう一つのbinフォルダですが、この中に入っているのはrb_nibtoolというシンボリックリンク一つです。
シンボリックリンクをそのままコピーすると問題が出てくるので、改めてシンボリックリンクを作成します。
rb_nibtool ですが、 /Library/Frameworks/MacRuby.framework/Versions/0.10/usr/bin/rb_nibtool へリンクが貼られていたので、そのようにシンボリックリンクを作成します。
※このシンボリックリンクがうまく貼れないと、Xcode上で、xibファイルを見るときにXcodeが落ちたりします。
1
| $ sudo ln -s /Library/Frameworks/MacRuby.framework/Versions/0.10/usr/bin/rb_nibtool /Applications/Xcode.app/Contents/Developer/usr/bin/ |
以上でインストール完了です!
改めてXcodeを開いてみると、下図のようにMacRuby Applicationのテンプレートが追加されています!

テストプロジェクトのビルド
ちょっとテストなので、ドキュメントベースでもなく、CoreDataも使わない設定でプロジェクトを作ります。

プロジェクトが作られたら「⌘+R」でそのままビルド、実行できました!

さて、何しよう!?
関連エントリ:exerb
Windowsでも、CUIアプリ(.exe)なら簡単に作れます。
というエントリを以前書いていたので、改めて紹介。
.rbファイルをコンバートし、.exeにする、というものです。
最新版は2011年12月末にリリースされているので、その後もきちんとメンテされているようですね!
オープンソースプロジェクトでメンテナンスって一番重要だと思うので、とても評価できるプロジェクトだと思います。
[AD]
↓ヒレガス氏の著書。結構評判いいらしい。

Mac OS X Cocoaプログラミング 第三版
著者/訳者:Aaron Hillegass アーロン ヒレガス
出版社:ピアソン桐原( 2009-11-01 )
定価:¥ 4,410
Amazon価格:¥ 4,410
単行本 ( 479 ページ )
ISBN-10 : 4894714469
ISBN-13 : 9784894714465
↓英語だけど、比較的新しい著書なので内容は参考になりそうですね!

MacRuby: The Definitive Guide
著者/訳者:Matt Aimonetti
出版社:Oreilly & Associates Inc( 2011-11-03 )
定価:¥ 3,234
Amazon価格:¥ 2,503
ペーパーバック ( 223 ページ )
ISBN-10 : 1449380379
ISBN-13 : 9781449380373
Posted by yamada on 2012/04/06 – 09:00
ハガキ宛名印刷について調査し、まとめたPDFがあるのですが、これをどうやって配布しようかと考えて、とりあえずgumroadにて販売してみます!


ハガキ宛名印刷の手順説明書(サンプルデータ付)250円
https://gumroad.com/l/Qnw
内容について
売っているのは、エクセルとかの表計算ソフトでまとまっている住所録を参考に、ハガキ宛名印刷をするまでの流れを説明するスクリーンショット満載のチュートリアルドキュメント(PDF)です。
Microsoft Office、OpenOffice.orgの2通りのやり方を紹介しています。
Microsoft Office編では、Excelのデータ(.xls)を読み込み、OpenOffice.org編では、OpenOffice.org Calcのデータ(.ods)を読み込みます。
サンプル住所録、サンプルテンプレートも入っていて、とりあえず試してみることが出来ます!

お試しくださいー!
gumroadについて
値段を自由に設定できるのはいいですねー。通貨も自由!
ファイルをアップデートしなおしてもURLは変更しないし便利ですね。

ストレージはAmazonを使っているようですが、場合によっては、アプリとかプロジェクトファイルのバックアップとして使えるかも、とか思いついてしまった。
gumroadの規約とか読み込んでないけど、プログラムとか動画のプロジェクトファイルをアップして、高めの値段を設定しておいて。
とか、どうなんだろ?
そんな危なっかしいことするなら普通にDVDとかに焼くか…。
他の売り場
iBooksも考えたのですが、iPadでしか見られないし、iBooksで有料にすると他で売っちゃいけない規約だし。
しょうがないけど、ちょっと厳しいなぁ、と思う。
他のコンテンツがあったら売ってみたいと思います。
[AD]
↓OpenOffice.orgのマクロ(Basic)について、とは、珍しい!
↓ルパン三世のBlu-ray。「ルパン8世」パイロット版とか、「ルパン三世 3DCG」パイロット版も入っている!
Posted by yamada on 2012/04/03 – 09:00
iOSアプリで設定画面、と言えば、いわゆる「設定」アプリのような画面なのですが、いざ作るとなると結構面倒なのです!
「設定」アプリ内ならまだしも、アプリ内であの画面をつくろうとすると、、。
そこで便利なライブラリが今回紹介するQuickDialogというオープンソースライブラリ!

ライセンスは商用利用が可能なApache License Version 2.0です。
しかし、断念。。
ある程度プロジェクトに組み込んでから気づいたのですが、このライブラリを使うにはARC(Automatic Reference Counting)必須なのです!
個人的にまだARCに手を出していない上に、既に組み込み済みの他のオープンソースライブラリが逆にARC非対応だったりするので、この制限は厳しい。。
ということで、結局今回は、QuickDialogの使用は諦めました。
ですが、便利そうなのは間違いないので、別プロジェクトでチャンスがあれば是非使ってみたい。
参考サイト
↓このライブラリ、プロジェクトに組み込むのがちょっと面倒だったのですがこのQ&Aが参考になりました。
[AD]
↓ARC勉強するならこの書籍!↓
↓面白そうな!読み物系らしいので、リラックスして読んでみたい。

情熱プログラマー ソフトウェア開発者の幸せな生き方
著者/訳者:Chad Fowler
出版社:オーム社( 2010-02-26 )
定価:¥ 2,520
Amazon価格:¥ 2,520
単行本(ソフトカバー) ( 200 ページ )
ISBN-10 : 4274067939
ISBN-13 : 9784274067938
Posted by yamada on 2012/03/28 – 09:00
「テーブルをグイッと引っ張ったらデータをリロード」…もう誰もが当たり前だと思っているこの操作をUITableViewControllerに追加してくれるのがPullToRefreshライブラリです。

商用利用にも安心のMITライセンス!
プロジェクトに追加する
まずは、いつものように、Gitで取得。
1
| git clone git://github.com/leah/PullToRefresh.git |
次に必要な下記のファイルをコピーして、自分のプロジェクトに追加します。
- PullRefreshTableViewController.h
- PullRefreshTableViewController.m
- arrow.png
最後に、必要なFrameworkとして、QuartzCore framework を追加します。

使い方、カスタマイズ
自分のプロジェクト内では、UITableViewControllerの派生クラスとして作られているPullRefreshTableViewControllerクラスを派生させて使います。
既にUITableViewControllerを使っているプロジェクトなら、ほんとうに簡単に機能追加ができます!
読み込みのためのセルに表示されているメッセージ系は、下記のようにそれぞれプロパティが用意されているのでこれを使い変更できます。
1
2
3
| @property (nonatomic, copy) NSString *textPull; // for "Pull down to refresh…"
@property (nonatomic, copy) NSString *textRelease; // for "Release to refresh…"
@property (nonatomic, copy) NSString *textLoading; // for "Loading..." |
肝心のリフレッシュ処理ですが、PullRefreshTableViewController.m では下記のようなrefreshメソッドが定義されており、引っ張った後の処理はこれをオーバーライドして定義します。
1
2
3
4
5
| - (void)refresh {
// This is just a demo. Override this method with your custom reload action.
// Don't forget to call stopLoading at the end.
[self performSelector:@selector(stopLoading) withObject:nil afterDelay:2.0];
} |
別のライブラリ
@xcatsanさんが、実装している同様のライブラリも紹介しておきます。
どうやって実現しているかの詳細な説明があり、ためになります。
「Cocoaの日々」、いつも参考にしています!
特許について:GJ! Loren Brichter
このライブラリを試しているときには気にしていなかったのですが、引っ張ってリロード、という操作方法は「Tweetie」というTwitterクライアントアプリで初めて実装され、その際に特許をとられているそうです。
ただ、特許保持者のLoren Brichterはこの操作方法を他の開発者が使うことは禁止しない、と明言しています。
素晴らしい!!!
[AD]
↓WordPressとの連携とか、GPSとか、チューニング、デバッグ方法まで、素晴らしいノウハウが詰まっている良書!

iPhoneアプリネットワーク+GPSプログラミング
著者/訳者:橋本 佳幸
出版社:秀和システム( 2009-11-19 )
定価:¥ 2,940
Amazon価格:¥ 2,940
単行本 ( 279 ページ )
ISBN-10 : 4798024244
ISBN-13 : 9784798024240
↓バージョンが古く見えるけど、特に問題なく分かりやすい書籍です。