[Books] 気になるが気が遠くなるほど発売が先のiPhone app開発関連の本二冊

Tags: , , ,

発売はどちらも2009年7-8月予定。先すぎて死ねる。

  • The Essential Guide to Iphone Application Development for Flash Users
    The Essential Guide to Iphone Application Development for Flash Users (Essential Guide)

    Flash専門の感のあったFriendsofEDがとうとうiPhone app本出すらしい。ただし単なるiPhone本ではなくFlashユーザーのため、としているところが一風変わったところか。ここのFlashユーザーのためのPHP本がわかりやすかったので興味はある。Essentialと付いているのでチンカス本の可能性もなきにしもあらず。

  • Cocoa Design Patterns
    Cocoa Design Patterns (Developer's Library)

    Cocoaデザインパターン本。CocoaやObjective-Cを題材にしたデザインパターンの本は存在しないので非常に興味がある。iPhone SDKプログラミング大全の著者、木下誠がダイナミックObjective-C | コラムでObjective-Cを題材にしたデザインパターンのネット解説を行っているがタイトル通りコラムの域を超えておらず、この手の内容は書物としてしっかり読みたい僕としては満足できない。

ちなみにデザインパターンの発祥はCocoaらしい。すげーなCocoa!イマイチしっくりこないけど!

もっとも、正確に言えば、Cocoaがデザインパターンを応用しているのではなく、デザインパターンがCocoaをもとにして作られた訳だが。GoF本では、パターンの実例として、Cocoaの前身である、NEXTSTEPが何度も取り上げられている。また、パターンの1つであるChain of Responsibilityという名前は、明らかにAppKitのResponder Chainから取られていると考えられる。

【コラム】ダイナミックObjective-C (49) デザインパターンで読み解くCocoa

[iPhone][App] TheirAges - How old are they?

Tags: ,

TheirAges - How old are they?

名前と生年月日を登録するとそのひとの年齢(何年と何日)をトラッキングできるアプリケーションです。 つい忘れがちな恋人の年齢、両親の年齢、ペットの年齢など記録してください。 フォトライブラリの画像をアイコンに登録することも可能です。

Get App

アプリケーションの詳細はこちら。
» TheirAges - How old are they?

[iPhone][App] FartMan, The Fart Sound Generator

Tags: ,

FartMan, The Fart Sound Generator

邦題を付けるなら「おならマン」。デバイスを振るとおなら音が発生する無料アプリケーションです。満員電車で起動させてみてください。

Get App

アプリケーションの詳細はこちら。
FartMan, The Fart Sound Generator

[iPhone]プロパティのsetter/getterの表示を変更する

Tags: ,

コーディングの趣味の話なので必ずしも重要ではないが、個人的には大発見。

Problem

インスタンスプロパティ(Objective-Cではインスタンス変数と呼ぶ)の表示名とgetter/setter(Objective-Cではアクセサメソッドと呼ぶ)の表示名を異なるものにしたい。例えば、インスタンス変数をNSStringの”_name”と定義、そのアクセサメソッドは先頭のアンダースコアを除いた”name”で扱いたい。

Recipe

プロパティの定義は普通に”_name”とする。setter/getterを作成する際に以下のような細工をする。@propertyと@synthesizeの書き方が定義されたインスタンス変数と若干異なる(特に@synthesize)。

//TestClass.h
@interface TestClass : NSObject{
	NSString *_name;
}
@property (retain) NSString *name;
 
@end
 
//TestClass.m
@implementation TestClass
@synthesize name = _name;
 
@end

クラス内部でのインスタンス変数への直接アクセス(”_name”)とアクセサメソッド経由のアクセス(”self.name”)が明確に区別できるのが利点。Xcodeの適当な色づけに頼るよりアンダースコアの有無による絶対的な判断の方がしっくりくるという理由もある。

ActionScriptで言うと

上記内容は以下のgetter/setterと同等。ほんとに趣味の問題。

protected var _name:String;
 
public function get name():String{
	return _name;
}
 
public function set name(value:String):void{
	_name = value;
}

Reference

【コラム】ダイナミックObjective-C (102) プロパティ(2) - プロパティの宣言 | エンタープライズ | マイコミジャーナル

Creative Commons Licenses 3.0

Tags:

アイコンだったりベクター素材だったりの利用規約でよく見かけていたCreative Commons Licenses 3.0。ちゃんと調べる機会ができたのでメモ。Creative Commons 3.0と表記されている場合は原著作者クレジット表記が最低限必要。その他諸々のライセンス体系はAttributionの内容で異なってくる。知ってしまえば意外と簡単な分類だった。

  • Creative Commons 3.0 Attribution

    原著作者クレジット表記が必要。商用利用OK。改変OK。単に「Creative Commons」とか「Creative Commons Licenses 3.0」と表記されているものはこのライセンスだと考えればよい。

  • Attribution-NoDerivs

    原著作者クレジット表記が必要。商用利用OK。改変NG。

  • Attribution-NonCommercial-NoDerivs

    原著作者クレジット表記が必要。商用利用NG。改変NG。

  • Attribution-NonCommercial

    原著作者クレジット表記が必要。商用利用NG。改変OK。

  • Attribution-NonCommercial-ShareAlike

    原著作者クレジット表記が必要。商用利用NG。改変OKだが頒布する場合の二次創作物のライセンス体系は同じくCreative Commons 3.0 Attribution-NonCommercial-ShareAlikeとしなければならない(いわゆるコピーレフト)。

  • Attribution-ShareAlike

    原著作者クレジット表記が必要。商用利用OK。改変OKだが頒布する場合の二次創作物のライセンス体系は同じくCreative Commons 3.0 Attribution-ShareAlikeとしなければならない。

Next Page →