2010.5

AS3erのObjCメモ

2010/05/24

iphone開発のためにGWにObjCをざっととおしてみたのだけどいざ作ろうとすると鳥頭にもほどがあるので備忘録。

参考:「→XcodeによるObjective-C入門
とてもわかりやすかった。文字列、配列、クラスetc.. と基礎を通して書いてある。OSX用の話なのでそのまんまはいけませんがそれでも良書。

あと、→@ITの記事や、「最速基礎文法マスター」が流行ったときの記事も参考になりました。
→Objective-C 最速基礎文法マスター(by fn7の日記)
→ActionScript 3.0 基礎文法最速マスター(by 読書メモ+tips+日記)


で、以下メモ。


プロパティ、メソッド、定数

//プロパティ オブジェクト型は*ポインタが必要
//@privateで定義で private var myDate:Date;
NSDate * myDate;
NSString * myString;
NSLocale * myCurrentLocale;

//定数
//public static const HOGE:int = 2;
const int HOGE = 2;

//メソッド
//public function countNumber(count:int):int
-(int) countNumber :(int) count
{
	count++;

	//ローカル変数var result:int = count;
	int result = count;

	//trace(result);  %d10進数 %f小数 %c1文字 %@ オブジェクトの内容
	NSLog(@"%d", result);

	return result;
}

//--------------------------------
//よみにくいメソッド 引数2つ
//public function application
//( application: UIApplication , didFinishLaunchingWithOptions( launchOptions: NSDictionary ) ): Boolean

- (BOOL)application: (UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions 
{    
    
    //window.addSubview( viewController.view );    
    [window addSubview:viewController.view];

    //window. makeKeyAndVisible();
    [window makeKeyAndVisible];
	
    return YES;
}


文字列


	//変更可能な文字生成するオブジェクト
	NSMutableString * moji;

	//new NSMutableString(10); 10文字の領域を確保した変更可能な文字オブジェクトを生成
	moji = [[NSMutableString alloc]initWithCapacity:10];
	
	//moji = "foo" + "bar" + "30"; 
	[moji appendString:@"foo"];
	[moji appendString:@"bar"];
	[moji appendFormat:@" %d",30];
	NSLog(@"%@",moji);
	
	//--------------------------------
	//NSStringにあとで文字を追加したい場合
	NSString * str1 = @"hoge";
	NSString * str2 = [str1 stringByAppendingString:@"fuga"];
	
	NSLog(@"%@",str2);
	
	//--------------------------------
	//文字列の等価の判定
	
	NSString * strA = @"hoge";
	NSString * strB = @"fuga";
	
	if ([strA isEqualToString:strB]) 
	{
		
		NSLog(@"いっしょ");
	}
	else 
	{
		NSLog(@"いっしょじゃない");
	}

配列


	//Cのint型の配列 var myArray = new Array();でもintだけ
	int myArray[] = {1,31,5,6,80};
	
	double sum = 0;

	for (int i = 0; i < MAXNUM; i++) {
		sum += myArray[i];
	}
	
	//--------------------------------
	//ObjCの変更可能な配列

	NSMutableArray * mutableArray; 
	
	//メモリ領域を確保して生成
	mutableArray = [NSMutableArray arrayWithCapacity:5];
	
	//push
	[mutableArray addObject:@"one"];
	[mutableArray addObject:@"two"];
	[mutableArray addObject:@"three"];
	[mutableArray addObject:@"four"];
	[mutableArray addObject:@"five"];
	
	//for each
	for(NSString * str in mutableArray)
	{
		NSLog(@"%@",str);
	}

インスタンス化とメモリ解放


//生成 myDate:Date = new Date();	
NSDateComponents * myDate = [[NSDateComponents alloc]init];

//解放
[myDate release];

ポインタ

	//なんでも参照渡しになるかんじ?

	int thisYear = 2009;
	int * pointerYear1;//メモリ上の場所を確保して変数を宣言
	int * pointerYear2;

	//メモリ上の場所に変数thisYearをつっこむために&つきでわたす
	pointerYear1 = &thisYear;
	pointerYear2 = &thisYear;
	
	//おなじメモリ上のアドレスを見ているので変更するとpointerYear2も変更される
	*pointerYear1 = 2000;


ほかにもたくさん要素はあるけどざっくり念頭においとくために。
メモリ解放のところは、iphoneのほうの書籍にもうちょいこまかいことが書いてあったけど会社においてきたのであとで追記します。

勘違いしてるとこがあったらご指摘ください☆

「実寸くん」〜Macの画面にiphone実寸相当で表示したいときの縮尺計算機

2010/05/08

The Flash plugin is required to view this object.



使い方

01 上に表示されてる「実寸くん」はflashによる縮尺計算機です。
モニタのインチサイズ・解像度を入力すると、お使いの環境で画像を何%縮小表示すればiphone実機相当の大きさで見えるか、といった数値を表示します。
解像度は自動入力してるので、間違ってなければ、インチのみ入力してください。

その「実寸くん」から得られた縮尺率をデザイン中の画像に適用すると、左の画像のように実機と画面上のテンプレが似たようなサイズになります。実際の感じをつかみながらデザインしたい時に便利です。


(※3GSまで。iphone4は解像度4倍ですっけ・・さらに25%すればいけるとおもいますが。。)
あ、あと画像の縮小等はフォトショやGIMPつかってくださいね。

完全に一致・・・するかどうかはモニタまわりの黒縁の大きさや設定等で誤差ができると思います。
 ほんとの実寸になることを保証するものではないことをご了承ください


どうして作ったか

0左の画像は、Macで100%表示したiphone用のPSDのテンプレ(→iphone GUI PSD 3.0 by Geoff Teehan)と、実機をならべたものです。

でっかい、ですよね。

iphoneのディスプレイ部分の大きさで320px × 420px ですが、ピクセルはモニタインチと解像度によって表示される大きさがかわってしまうので、こんなふうになっています。

ちょっとこれだと、実際の見え方がわかりにくくてデザインしにくいなー、何%縮小すればモニタ上で実機サイズに見えるのかなー? と思って「実寸くん」を作成しました。


Photoshopで縮小表示するときのTips

ところでPhotoshopで作業されてる方はご存知だと思いますが、虫眼鏡ツールなどで中途半端な80.5%とかの縮尺で表示させると、すっげー文字や画像がガビガビになります。
これだと実寸でどんなかんじ?という確認にならないので、簡単なTipsをひとつ。

【photoshopで縮小表示確認するときのTips】
スマートオブジェクトを配置したほうで縮小して編集はスマートオブジェクト本体で行います。(CS3以降)
スマートオブジェクトはFlashで言うシンボルみたいなものです。配置したもののサイズを変えても内容物は非破壊のまま保たれます。またスマートオブジェクト内を修正して保存すると即座に変更が反映されます。

【手順】
02 ・必要なテンプレ画像を作成し、デスクトップかどこかに保存
・ファイル > スマートオブジェクトとして開く から先ほどのファイルを開く
・「実寸くん」でもとめたサイズに縮小します。これできれいに実寸でみれました
・レイヤーをダブルクリックするとスマートオブジェクトの本体が開くので編集
 保存すると即座に反映されるので、感じをつかみながらデザインできます

画像は、photoshopのキャプチャですが、左がスマートオブジェクトでひらいて、iphone実寸にしたもの、右が編集中の、スマートオブジェクトの中身です。こんなふうに並べて作業するとよさげかと思います。

iphone制作用ツールなのになんでflashで作ったのかはげふんげふんげふん・・

それではenjoy!


読みにくい英文サイトを読みやすくする

2010/05/06

英語の話のエントリを書くとだんぜん情報●材ぽいうさんくささが出るのはなぜなんだぜ・・・

で。英語、苦手なんですが、調べものしててどーしても英文読まないといけないシチュエーションが多々あり。
いつもなら機械翻訳につっこむんだけど、英文を英文でよめるといいよな〜というのは課題ではあった。

それで、受験のとき長文とか・・・それなりに読んでたよな?と。
どうやって読んでたかなーと記憶をたぐると、あースラッシュいれてたわ、と。

→サルでもわかる高校英語教室 スラッシュリーディングって何だ?

↑こういうのっぽい。
で、ネットの英文なので、読みながらスラッシュをいれこみたい。
とりあえず画面編集できればいいのか・・そういうブックマークレットどうやってつくるのかな? としらべてたらもうあった。


→Mozilla Re-Mix Firefoxで表示しているページを自在に編集することができるようになるブックマークレット


そんなわけでスラッシュいれながら読んでみる。


slash


見えづらゴチャっとしてるけど、読みながら / 入れると理解しやすくなった。