2010年12月26日日曜日

[iOS] UIViewをゆっくりと隠す

参考元:iPhoneSDKのUIViewアニメーション

UIViewの派生ビューであれば、簡単にできます。

読み込み待ちをメッセージ表示するのに利用しました。

読み込み中であれば、次のビューを表示します。


ただ、読み込みが一瞬で完了すると、すぐに消えてしまい、何が表示されてたかわかりません。
そこで、一瞬で完了しても、ゆっくりと非表示にするようにします。

そのソースが以下になります。

if (isHidden) {// 非表示有無
    // ゆっくりと隠す
    CGContextRef context = UIGraphicsGetCurrentContext();
    [UIView beginAnimations:nil context:context];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.5f];// アニメーションを完了させる時間
    [self.waitView setAlpha:0.0f];// アニメーション内容(非表示)
    [UIView commitAnimations];
} else {
    // すぐに表示
    [self.waitView setAlpha:1.0f];// アニメーション内容(表示)
}

たった数行書くだけで、アニメーションを実現できるって、フレームワークの機能は充実してますね。

[iOS] Core Graphics

Core Graphicsがどんなものか、簡単な描画をしてみる。

■黒線で円を二つ描画してみる。

UIViewのサブクラスに次のソース付け足すだけです。


- (void)drawRect:(CGRect)rect
{
//現在のグラフィックスコンテキストを取得
CGContextRef cgContext = UIGraphicsGetCurrentContext();
//ストロークカラーの設定(0.0-1.0でRGBAを指定する)
CGContextSetRGBStrokeColor(cgContext, 0.0, 0.0, 0.0, 1.0);

//ストロークの線幅を設定
CGContextSetLineWidth(cgContext, 2.0);
//カレントポイントから指定した座標に向けて線を引く
CGContextStrokeEllipseInRect(cgContext, CGRectMake(10.0, 10.0,10.0,10.0));
//パスに円を追加
CGContextAddEllipseInRect(cgContext, CGRectMake(30.0, 30.0, 60.0, 60.0));
//画面に描画
CGContextStrokePath(cgContext);
}


グラフィックスコンテキストを取得して、描画したい内容を付け足すだけで、手軽にできそうです。

基本はわかったので、次はもうちょっと複雑な描画をやってみます。


iOSのグラフィックス

引用元:タワーディフェンスゲームの作り方 (1) - フレームワークの選定

iPhoneでグラフィックス描画を行うには、主に3つのフレームワークが提供されている。
パフォーマンスが高い順に、OpenGL、Core Graphics(Quartz)、Cocoaとなります。
それぞれを比較した表は引用元に掲載されています。

ぼくは、UIView上にグラフを描画したいだけなので、それほどゲームプログラミング並のパフォーマンスは必要ない。それより、手早く開発できることの方が重要です。

機能とパフォーマンスの高さから、Core Graphicsを選択して、グラフ描画を作成していきたいと思います。

まず、Core Graphicsの関連資料を調べてみました。
1.Quartz 2D Programming Guide
2.Core Graphics Framework Reference
3.Core Graphics Reference Collection

資料(1)に詳しく書かれているっぽいけど、英語なのが困ったものです。

2010年8月9日月曜日

SVN+SSH(公開鍵認証)でバージョン管理を構築

SVNを使ってファイルのバージョンを管理します。

嬉しいこと。
・ファイルの変更履歴を管理できる。
・複数人(複数PC)でファイル編集ができる。

さくらのレンタルサーバにSVNサーバを構築して、EclipseまたはWindowsから利用する。

さくらのレンタルサーバにSVNのインストールするやり方はここを参考にした。
http://mishuku.net/archives/2008/02/subversion-install.php

EclipseにSVNのクライアントPluginのインストールするやる方はここを参考にした。
http://server.seasar.org/manual/install_subclipse.html

WindowsからSVNクライアントを利用した場合にはこのソフトがオススメ。
http://www.gside.org/Gentoo/subversion/subversion_client.html
http://sourceforge.jp/projects/o2on/wiki/TortoiseSVN導入(公開鍵の設定)

SSH2で接続した場合には、公開鍵を作成してクライアントとサーバに置いてください。
また、svnでの接続先は次のようにする。
svn+ssh://<ユーザ名>@<ホスト名>/<リポジトリ>

※メモ
Eclipseでリンクフォルダにしているとバージョン管理できないので気をつけましょう。
僕はこのワナにはまって、1時間くらい時間を費やしてしまった;;

2010年7月31日土曜日

マインドマップソフトを使ってみよう









http://www.xmind.net/

香港のXMind Ltd.社が開発しているオープンソースのマインドマッピングソフトウェアです。

Windows、Mac、Linuxとマルチプラットフォームで動くのが魅力的です。

試しに適当なグラフを作成してみた。


なんだかEclipseベースのインターフェイスなのかな。よく似てる。

それにしてもデザインがきれいです。

操作も簡単で、ノードで右クリックまたはツールバーから子ノードをどんどん追加することができます。

ノードの文字・背景色も変更することができ、自由なマインドマップを描けます。


ダウンロードサイト
 http://www.xmind.net/