« 2012年1月 | トップページ | 2012年3月 »

2012年2月の8件の記事

2012/02/29

娘、バックします

 生後5ヶ月を迎える前に初寝返りを行った娘。思わず「よくやった、感動した」と感激してからすでに半月たちました。

 初寝返りは仰向けの状態から、左腕を下にしてうつぶせに。
 その後、うつ伏せからやはり左腕を下にして仰向けに寝返り返りをするようになりました。
 さらに、うつぶせの状態から腕立てのように両腕を踏ん張って顔を持ち上げることも。
 いずれハイハイもするのでは?との期待もある中、なかなか右腕を下にしての寝返りができません。まぁ、誰にでも得手不得手はありますし、もう少し暖かく見守ろう・・・と思っていた矢先。

 娘、 腕を踏ん張ってひざを立てた!!、その後、腕はそのまま脚を伸ばし、結果、バックをしました。ハイハイができるようになる前に、後ろ向きにズリズリ移動するそうですが、まさに、その瞬間に立ち会えたのです。
 こうしていろいろ移動できるようになっていくんですねぇ。

| | コメント (0) | トラックバック (0)

2012/02/22

iTunes in the iCloud始まる

 アップルのiTunes in the Cloudが日本でも始まりました。これで、一度購入した楽曲は、Apple IDさえ同じであれば複数の端末に何度でもダウンロードできます。まぁ、私はiPhoneもiPod touchも持っていないのでそれほど関係ないのですが、これが日本でも始まったことが大きいです。何しろ日本では、自分だけしか見ることができないビデオでもネット上に上げると犯罪になるという判例がありましたからね。

 そして、全楽曲のiTunes Plus対応。つい最近まで、「iTunes Storeで買った楽曲はDRM付きなのでiPod(iPhone)でしか聞けない」と吹聴する人が多かったのですが、もう何年も前からDRM無しのiTunes Plusの楽曲が販売されていました。そして、現在に至るまでDRM付きの楽曲を売っているのはiTunes (Music) Storeが開設されている国の中では日本だけでした。これで、DRM付きの楽曲は全てなくなり、自分の好きなプレイヤーで聞くことができるようになります。

 あと、洋楽だけらしいですが、ソニーミュージックの楽曲も扱われるようになったとか。

 ここにきて、iTunesが活発になってきましたね。

| | コメント (0) | トラックバック (0)

2012/02/20

Mountain Lionにほしいアプリ

 Mountain LionはiOSから多くのアプリケーションを取り込む予定のようですが、その中にはiBooksの名前は挙がっていないようです。
 iBooksは、日本では本格始動していないとはいえ、電子書籍の一つの形として普及しても良いはず。そして、iPhone、iPad、iPod touchでは同じ本を共有し、どの端末からでも読めるのが利点。となれば、Macからも読めていいはず・・・・なのに、どうして・・・。
 メッセージ、リマインダー、メモなどiOSにあるアプリを次々とMacに入れるのであれば、ぜひ入れてほしいアプリですよね。

| | コメント (0) | トラックバック (0)

2012/02/17

OS X Mountain Lion現る

 突然といえば突然、前触れも無く、おそらくMac OS X 10.8となるであろうOS X Mountain Lionがデベロッパープレビューされました。

 デモビデオも公開されていますが、LionにiOSの各種アプリケーションを取り込んだだけ、という感じですね(OSの機能と見るか、個別のアプリと見るかの見解の違いはあるかもしれませんが)。
 MessagesはiChatやFaceTimeと、RemindersはiCalと、NotesはスティッキーズやMailの機能と被る気もするのですが、何らかのすみわけあるいは世代交代が起こるのでしょうか。Messages、iChat、FaceTimeは統合すべきだと思うのですが。

 表面的なこともそうですが、デベロッパにはiOSと共通のライブラリが用意されるなど、iOSと近しい関係になっていくのでしょうね(AV FoundationもiOSからLionに移植されたんでしたっけ?)。

 なんとなく、OSとしての進化がなくなった気もしますが、それだけ成熟してきたということでしょうか。変化が少ないぶん、家族に内緒でバージョンアップしても気づかれずにすみますね(笑)。

| | コメント (0) | トラックバック (0)

2012/02/13

プログラミングの勉強

 さて、最近プログラミングの勉強を始めました。
 最初はYour First Mac Appのチュートリアル。
 テキストボックス、スライダー、ボタンがあるビューと、AppDelegate、モデルによる簡単なアプリケーションです。
 テキストボックスとスライダーのIBActionを同じメソッドに繋げるというのが斬新でしたが、それ以外は今までの知識で追いつける範囲でした。

 続いて、Cocoa GUIアプリケーションというチュートリアル。こちらでは、Xcode3でのチュートリアル。私の環境はXcode4ですが、まずまず順調に進みました。
 Xcodeのバージョンによる問題は発生しませんでしたが、テーブルビューが出てきたところから私の知識の不足が露呈してきました。いろいろツールを作るとなるとテーブルビューは重要ですから、ここは復習の必要がありますね。
 このチュートリアルでは、プログラム本体だけでなく、多言語化やアイコンなどの設定方法も出てくるので、困ったときはこのチュートリアルに戻ることにします。

 そして、現在取り組んいるのが、Repeating Motif Wonderlandです。まだ一番最初の、ココアアプリケーションの第1のプロジェクトの途中なのですが、すでに大変です。Xcodeのバージョンの違いによる組み立て方(従来はInterface builderからサブクラスを作るのが主流だったけれども、いつの間にかXcodeで作ってInterface builder(現在は統合済み)で接続)もそうなんですが、バインディングが分かりません。モデル・ビュー・コントロールの独立性を高めるのが狙いなのでしょうが、あまりにも独立しすぎていていまいちつながりが分かりません。精進せねば。
 それと、現在ARCを使用しつつこのチュートリアルに取り組んでいるのですが、実行できたり出来なかったり、ベジェラインが表示がされたりされなかったりと、ずいぶん不安定です。ARCによって何か変わったのか、XcodeやOSのバージョンの違いによるものか、もちろん、私の入力ミス・理解ミスのよるものなのかと、いろいろ原因がありそうで、本来はそれをちゃんと突き止めるべきなのですが、いまはチュートリアル全体をなぞるのに精一杯です。

 はたして、チュートリアルも満足にクリアできず、自作のプログラムなぞできるのでしょうか?

| | コメント (0) | トラックバック (0)

2012/02/07

SyntaxHighlighter導入

 私はココログに記事を書く際、ブログエディタなるものは使わず、ウェブブラウザから直接文章を書いています。ココログの入力画面では、改行するとbrタグがバックグランドで挿入されます。
 しかし、ソースコードを書こうとpreタグなどを使うと、このバックグランドで挿入されるbrタグのためにとても間延びした表示になってしまいます。
 ココログではCSSを定義することができるので、それを使ってきれいに表示できるようにすればいいのですが、やはり、先人の技術で使えるものは使っておきましょう。
 ということで、導入しましたSyntaxHiglighter。これで、ソースコードが本文と明確に分けて表示できます。
 SyntaxHiglighterは、各種プログラミング言語の予約語などの色つけもしてくれるのですが、残念ながらObjective-Cには対応していないようです。そのため、このブログではC++の予約語だけ色つけするように指定していますが、それでもコメントは色が異なるなど、読みやすくはなっています。
 あとは、どんどんプログラムを書くだけ・・・・なんですけどねぇ。

| | コメント (0) | トラックバック (0)

2012/02/06

Xcode ARC時代のマイルール

 私がMacでプログラミングをしていた時代は Objective-C 1.0の時代。@propertyもガベージコレクションもARCもありませんでした。
 久しぶりにXcodeに取り組むと、いろいろ違いますね。
 そんなわけで、自分なりの覚書。

Objective-C 1.0時代のクラス定義
@interface MyClass : NSObject
{
    NSString *string;    // インスタンス変数
}
- (NSString *)string;    // ゲッターの宣言
- (void)setString:(NSString *)aString;    // セッターの宣言
@end

@implementation MyClass
- (NSString *)string     // ゲッターの実装
{
    return string;
}
- (void)setString:(NSString *)aString;    // セッターの実装
    if (string != aString) {
        [string release];
        string = [aString retain];
    }
}
@end
Objective-C 2.0時代のクラス定義
@interface MyClass : NSObject
{
     // インスタンス変数の宣言は不要に(括弧も省略可だが、一応書いておく)
}
@property (retain) NSString *string;    // セッター・ゲッターの宣言は1行に
@end

@implementation MyClass
@synthesize string = _string;    // セッター・ゲッターの実装も1行に
@end
ARC時代のクラス定義
@interface MyClass : NSObject    // 括弧は原則不要
@property (retain) NSString *string;    // セッター・ゲッターの宣言は1行に
@end

@implementation MyClass
{
    // 実装ファイルの中にインスタンス変数を宣言することができる
}
@synthesize string = _string;
@end

 という感じですかね。
 一つのプロジェクトの中に、いろいろな記法が混在することはよくありません。そこで、今後作るプロジェクトはこのような形にしようと思います。

ヘッダファイル(@interface部)には、プロパティとpublicなメソッドのみ記述する。
ヘッダファイルは他のファイルに読み込んだりして使うので、プロパティとpublicなメソッドのみ記載し、{}は記載しないようにします。
@synthesizeでセッター・ゲッターを作成する。
セッター・ゲッターはできるだけシンプルにした方が良いので、@synthesizeで実装します。
プロパティアクセスにはドット構文を使う。
ドット構文は、メモリ管理も引き受けてくれるので、ドット構文を積極的に利用します。ただし、init系メソッドの中では、インスタンス変数を直接アクセスします。これは、セッター内で他のインスタンス変数相互関係がある場合のトラブルを避けるためです。
@synthesizeでインスタンス変数を定義します。
メソッド内でドット構文(self.〜)を付け忘れ、直接インスタンス変数にアクセスすることを避けます。また、インスタンス変数名は、プロパティ名の前にアンダースコア(_)をつけたものにします。これは、IBOutletをつないだときに自動生成されるインスタンス変数名と同じです。
プロパティ以外のインスタンス変数は実装ファイル(@implementation部)に記述

 いろいろ例外が出てくるでしょうが、ひとまずこんな感じで。

| | コメント (1) | トラックバック (0)

2012/02/01

掃除機を新調

 先日、掃除機を新調しました。
 以前より奥さんから「今の掃除機調子悪い、使いにくい」と言われていたのです。調子の悪い原因は、コンセント差込口あたりの接触不良で、うまくいじれば電源オン、ちょっとしたことで電源オフとなってしまいます。掃除機本体のトラブルでもないのでなんとなくそのままにしていたのですが、ある日奥さんが爆発(笑)。急いで新しい掃除機を購入しました。

 しかし、掃除機って種類が多いですね。奥さんにヒアリングして必要な機能を満たすものを探したのですが、それでもたくさんあります。
 最後は「えいやー」で決めてしまいました。果たして、奥さんの希望にぴったりだったかは分かりませんが、今のところはご機嫌で使ってもらえているようです。

 そういえば、洗濯機もたびたびトラブルが起きるけど、こちらもいずれ・・・。

| | コメント (0) | トラックバック (0)

« 2012年1月 | トップページ | 2012年3月 »