2011年1月30日日曜日

class-dumpをMac portでインストール

class-dumpというクラスのヘッダー情報表示ツールがあることを、木下誠氏の本で知った。
(以下のページに同じ情報があった)
http://journal.mycom.co.jp/column/objc/001/index.html

そこで、ダウンロードして使おうとしたが、
どうもMac Portでインストールした方が早そうだと思われ、
まずMac Portをインストールすることに。
http://www.macports.org/install.php

そして、
sudo port install class-dump
でインストール。

これでclass情報のダンプがとれる、というのだから楽しみです。

2011年1月27日木曜日

テンプレートに学ぶ

これまで、プロジェクトの制作時に選択するテンプレートにあまり注目していませんでした。
が、よく考えてみれば、いろいろな基礎コードの書き方を教えてくれる模範例だと気づき、
ちょっと使ってみたことの無かったテンプレートを使ってみました。

勉強になりますね。
やはり、餅は餅屋。

右も左もわからない状態を少し抜けたら、
各テンプレートを、ニーズに合わせて見てみると、とても勉強になると気づけて、少し幸せでした。

デリゲートの理解へ向けて

iOSの概念で、「デリゲート」がなかなか十分理解できなかったのですが、
二冊の本がためになっています。

詳解Objective-C2.0」(荻原剛志著 Softbank Creative刊)のP352からに、4ページにわたる文章での解説があり、勉強になりました。

また、「基礎からのiOS SDK」(鶴薗賢吾著 Softbank Creative刊)という本が複数のフローチャートを使った解説を掲載しており、
分かりやすく解説されていてためになりました。

P117 Delegateの基礎解説(Application Delegateについて)
P311 UIPickerViewDelegate
P322 UITextViewDelegate
P333 UIActionSheetDelegate
などについて、かなり詳細な解説あり。
他にも、この本は解説に良い図説がたくさん提供されており、
ためになっています。(あくまで自分の感想です)


(それにしてもこれまで、10冊以上iPhoneアプリ製作本を買いましたが、自分の場合は少なくとも1,2冊で全容や詳細を理解するのは無理でした。かなりの出費になりましたが、複数の本を併せて参照することで、各本の強みとなっている解説などで補完されて助かります。ほんと、かなりの出費ですが。。。。)

2011年1月25日火曜日

Git、使用開始

Gitを使用し始めました。
Xcode4からは標準でサポートされますので、Gitがいいかな、と思い。

GitだとSubversionのようにリポジトリから一度working copyに落としてくる、という必要が無く、作業領域とgitのリポジトリが同じ場所にある、ということが大変気に入りました。
(「入門Git」Travis Swicegood著 でびあんぐる監訳 が自分のような初心者にはいい本でした。)

http://www8.atwiki.jp/git_jp/pub/git-manual-jp/Documentation/gittutorial.html
ここも勉強になります。

terminalを開いて、cdでリポジトリにしたい場所へ移動し、
git initで初期化。
そして、
git add <file names~~>
のようにファイルやフォルダを指定してやると、最初のコミットが完了。

まだ基礎がわかりきっていないので、これから勉強です。

2011年1月21日金曜日

Xcode4ベータ、かなりいい感じ

Xcode4のベータを落としてみました。
まだ触りたてですが、いい感じです。

http://developer.apple.com/jp/technologies/tools/whats-new.html

「バージョン管理を、SVNでなくGitでいこうか」と思い始めていたら、
ちょうどXcode4はGitもサポートする、というので落としてみました。
複数プロジェクトの扱いも改善され、好印象です。

Xcode3と4はプロジェクトを共有できて、
どちらで編集しても、もう一方でもOK、ということなので、
本番コンパイル以外は4で書いていってみようかな、と思ったりしています。
(まだよく調べてないので、問題がありそうなら3で再開しますが。)

正式リリースはいつなのか、楽しみです。

2011年1月13日木曜日

アプリの高速化についてメモ

iPhoneアプリ高速化の5つのノウハウ、という記事をあげておられたので、メモメモ。
http://son-son.sakura.ne.jp/programming/iphone_sdk.html

背景に透過を使うと処理が遅くなるんですね。
考えてみりゃそりゃそうだな、と納得。

xibファイルからのインスタンスを減らす、というのは当然でしょうね。
まあ、自分はまだ初心者なので、これからだんだんIBからの離脱を試みます。

ドキュメント化されていないクラス、メソッド等のトレース

ドキュメント化されていないクラス、メソッドをハックするため、トレースする方法があると、教えていただきましたので、リンクメモ。
http://son-son.sakura.ne.jp/programming/iphone_sdk_6.html

エリカ・サドゥンさんの「iPhoneデベロッパーズクックブック」P267には、コントローラーの階層構造を把握する方法が書かれています。引用はアウトっぽいので引用できませんが。
http://translated.by/you/iphone-developers-cookbook-building-native-applications-for-the-iphone-1/original/?page=9
ただ、このページには引用されていました(汗

2011年1月12日水曜日

NDAをほとんど認識してませんでした。

これまで、「NDA」(秘密保持規約)というものをほとんど認識していませんでした(汗

が、公開された情報に関しては大丈夫ということになっている様子。
http://kozy.heteml.jp/l4l/2009/06/iphoneiphone-sdk-nda.html

2008年10月までは非常に制限が厳しかったのですね。

遅まきにやってきたので、認識が甘かったかもしれませんが、
ドキュメントとして公開されている部分は大丈夫、ということのようなので、
これまでの投稿は大丈夫かな、、と思ったり。

2011年1月11日火曜日

signedとunsigned

signedとunsignedは、intやshort(16ビット)やlong(32ビット)で負の値があるかどうか、ということらしい。
メモメモ。

2011年1月10日月曜日

IBOutletの@property内での記述メモ

自己メモです。

@property の記述内で「IBOutlet」を記述する。
@interfaceの中では書かず。


@property (nonatomic ,retain) IBOutlet UILabel *label;

2011年1月9日日曜日

英語の壁

HTML/CSSやPHPを覚えようとしたときも
iPhoneアプリ制作を覚えようとしている今も、
ドキュメントをはじめとする「英語」がハードルになっています。

英語環境にある人々は、
プログラミングやweb技術に関して、アドバンテージがある。
非英語圏の我々日本人などは、やはりハンデがある。

1、英語そのもののハードル
2、技術単語、という普通の英語教育ではほぼお目にかからないものを解読するハードル
の2つがありますが、
まあ、根気と慣れとネット&辞書が頼りですね。

技術単語も、一度意味を調べて、だいたいつかんで、その後は文脈の中で何度も出てくるたびに再確認すると、いつの間にか普通にスンナリ意味が取れるようになったりする。
そんなときは嬉しいもので。

IMEを実装したい。その1

iPhoneでUITextViewにIMEを実装させたいのだが、
どのようにするのか、そもそも実装できるのか分からず模索中です。

MacだとInputMethodKitなるものがTigerから備わっており、
独自のIMEも作れる様子。(以下、勉強になったページ)
http://www.slideshare.net/kimuraw/inputmethodkit-3193813

しかし、iPhoneで一開発者のアプリがIMEを使えるのかまだ不明。
InputMethodKitはiPhoneでは使えるのだか、どうだか。。

ATOK Padでは独自IMEが動いていますが、独自でIME作るような力はないので(Social IMEも面白そうだが。)、もともと備わっているIMEが使いたい。

で、色々学習中です。
そもそも、iPhoneアプリ制作が初心者なので、いきなり敷居が高い気もするが、
一番まず実現したいことなので、かならず方法を見つけたい。

:::::::::::::::::::::::::

今のところ、UITextInput Protocolが近いものではないかと学習中。

しかし、ドキュメントを読みこなすのに、英語のおべんきょうが必要ですね。。


:::::::::::::::::::::::::

追記1:Erica Sadun女史のサイトにUIKeyboardImplについての記事がありました。
これも怪しい。。

:::::::::::::::::::::::::

追記2:このサイトの方が独自IMEについて言及しておられる。
http://d.hatena.ne.jp/chamekan/20100220
UIKeyboardImplに対してaddInputText: addInputString:@"watasi "などとスペース込みで送信してみると、ちゃんとIMEも働いてるようである。
とのこと。素晴らしい。
やっぱり非公開メソッドの様子ですが、なんとか実装まではこぎ着けられそうですね。

(わざわざ当エントリをご覧になって、修正および加筆までしてくださいました。大変ありがとうございました。)

:::::::::::::::::::::::::

追記3:
UIKeyboardImplに関しての追記。
http://www.hirano-dept.com/blog/2010/12/ipadmodal-uitextfield-resignfirstresponder.html
ここから、
http://stackoverflow.com/questions/2762251/how-to-hide-the-ipad-keyboard-from-a-modal-view-controller
ここへ飛び、
AppleがPrivate APIを使ったらリジェクトしないか、といったことを話しあっている。英語。
ちょっと参考になりそうだったので、メモを残します。

2011年1月8日土曜日

Retina対応画像ファイルのポイント メモ

IB上できれいに写っているのに、Retinaディスプレイでは画像がぼやけていたので、
「そういえば2倍にしなきゃいけないんだったっけな」と思い、検索。

http://design.kayac.com/topics/2010/09/post-30.php
ここによくまとめてくださっている記事がありました。

要するに
”icon@2x.png”
のように、@2xをつけると、Retina対応になる仕様でした。
例えば57x57pxのアイコンが3GSまでのものなら、114x114pxのものをつくり、@2xを名前に付ける、と。

IBを使わない場合は分かりませんが、各画像に@2xを挿入した解像度縦横二倍の画像をおなじresourcesフォルダに入れておいたら、自動的にRetina対応してくれました。

:::::::::::::::::::::::::

一つ失敗したのですが、
最初、
@x2と書いて、高解像度版がRetinaに反映されずしばし悩みました。
よく調べてみると、@2x正解でした。(2がxの前)
ちょっと間違えやすいですね。

それからは、「@2倍(2x)」と口で唱えながら、2倍画像ファイル名制作しています(笑)。

初めての方はお気をつけを。

2011年1月6日木曜日

iPhoneアプリ制作に関する金言集へのリンク

iPhoneアプリ制作の現場からつむぎとった金言集をEagleさんのブログがアップしておられ、大変勉強になりました。
アプリ制作者、制作準備者にはかなりためになる情報が詰まっています。

http://www.eagle-inc.jp/rainbows


感謝。

2011年1月4日火曜日

マルチタッチ設定

マルチタッチを許可するには、

multipleTouchEnabled = YES;

が必要。

普通のviewに設定するには
self.view.multipleTouchEnabled = YES;
のよう。

タップ数の取得法メモ

タップ数の取得は、touchesクラスでanyObjectに対して、tapCountで取得。

NSInteger tapCount = [[touches anyObject] tapCount];

2011年1月1日土曜日

最近、Xcodeの「ヘルプ」の立ち上がりが遅い。。

表題の通りですが、最近「ヘルプ」のメニューだけやたら立ち上がりが遅いです。
Xcode3.2.5にて。おかしいなあ。。

あと、ドキュメントのダウンロードしたものが表示されない。

おかしいなあ。。。

ネット上で、キーチェーンの値をチェックしよう、という記述を見かけますが、その記述も見つからず。

うーん。。
:::::::::::::::::::::::::

追記:
キーチェーンアクセス.appの中の、「ログイン」という項目の中に、xcode.connect1.com.apple
 という項目があり、そのアカウントが古いもののままだったのが原因でした。
以前、実験的にxcodeをダウンロードしたときのログイン情報が入っており。

アカウントを変更すると、無事表示されるようになりました。
情報を上げてくださっていた方々に感謝。