June 23, 2009

バージョン管理ツールをXcodeで使う

 バージョン管理ツールという物は、保険と同じで一度使うと手放せない道具である。ちょっとした実験とかは良いのだが、誰かに向けてリリースするようなソフトはこれがないと怖くてたまらない。1個前のバージョンに戻せないとか、最近の修正がわからないとか、時間を浪費するだけではなく修正していない項目が残っているかもしれないプレッシャーに常に晒される。

 最近はバージョン管理ツールとしてgitが流行しているみたいだが、リポジトリをあちら側に置きたいので、いくつかのサーバーでサービスとして提供されているsubversionを使うことにする。
 色々探してみたが、結局googleで提供されているProject Hostingがいたせりつくせりでいい感じだ。ありがとうgoogle先生。
 Macではリポジトリをローカルに置きたい人が多いらしくて、だれも解説を書いてくれないので自分で設定のポイントを書くことにする。

 リポジトリを作るのは、Kawa.netさんのページを参考にさせていただいた。ありがとう川崎さん。
[Subversion] Google Code でホスティング+TortoiseSVN の使い方 Kawa.netブログ(川崎有亮)/ウェブリブログ

リポジトリを作ったら、XcodeのSCMリポジトリを構成のところから登録してXcodeから使えるようにする。

Google CodeはSourceのタブを選択する。
名前: プロジェクト名
URL: https://プロジェクト名.googlecode.com/svn/trunk/
スキーム: https
ホスト: プロジェクト名.googlecode.com
ポート: 空欄
ユーザー: ユーザー名
パスワード: subversion用のパスワード

When prompted, enter your generated googlecode.com password.
ここで、気をつけないといけないのはパスワードで、ブラウザで表示されている上のリンクをクリックしてSubversion用のパスワードを別途取得しないといけない。gmailのものとは違う。
 一通り設定して、ランプが緑色になって接続できれば準備完了。

XcodeのSCMは酷いので、コマンドラインでsvnクライアントを使っていますという記事を見かけて不安になった。
 実際[SCM] [リポジトリ]を開いてダイアログを見ると、サーバーに納品しているのか、編集用に取得しているのかがよくわからない。まあ、慣れの問題だろう。
 でも、ブランチをどうやって作るのかよくわからない。

| | Comments (0) | TrackBack (0)

May 06, 2009

意味不明のエラー

 iphoneの開発をしていると、突然デバッグでiphoneシミュレーターが落ちることがある。存在しないオブジェクトやメッセージの引数が間違っているのが原因だ。元はといえばスペルミスだったりする。

 たかだかスペルミスでここまで派手に落ちることはないと思うが、動的なプログラムが組めるObjective-Cだからエラーの検出が難しいのだろう。

 プログラムをタイプしていて補完されないようなら、一旦消して打ち直す慎重さは必要なのかもしれない。めんどくさいなあ、まったく。

 

| | Comments (0) | TrackBack (0)

UIViewはどこまでマスターすればよいのだろうか

UIButtonなどの多くのGUIで部品はUIViewを継承していたりするわけだが、UIVew自体が巨大なクラスで全部の機能を調べ上げるのは無理かもしれない。なにせ、C++と違ってObjective-Cは本気で隠蔽されてしまうので、ヘッダーを覗いてあれこれというのもできないし。

 適当なタイミングでOpenGL Viewに移行しようかと考えてたら、以下のような記事があった。

無為空間 | OpenGL ESとUIViewの比較

すばらしい。もう少しUIViewを調べてみようと思う。

 

| | Comments (0) | TrackBack (0)

May 04, 2009

iphone開発関連のRSS

iphoneでの開発を実際に行われている方のブログや、開発グループのお知らせなどをまとめました。
opml形式でインポートすれば、そのまま見ることができると思います。

macユーザーの伝統なのか、みんなで集まって直接情報交換することが多いみたいですね。

「export.xml」をダウンロード

| | Comments (0) | TrackBack (0)

May 03, 2009

iphoneにまたも転送できなくなりました。

 iphone実機に転送してデバッグをしようとすると、エラーが出るようになりました。

No provisioned iPhone OS device is connected.

 プロジェクトのプロパティもplistも設定してあります。

エラーメッセージで検索してみたところ、Organizerで見たときにデバッグに使用するiphoneが緑になっていないと転送できないとこと。

よく見ると以下のようなエラーが出ていました。

Your mobile device has encountered an unexpected error (0xE8000001)
Try disconnecting and powering off the device; then power the device on and reconnect it.

エラーメッセージにしたがって、iphoneを再起動したところつながるようになりました。

原因は不明。

| | Comments (1) | TrackBack (0)

May 02, 2009

iphone SDKの教科書は、とりあえずやっておく

 新しい開発環境で、デバイスも言語もワークフローも何もかも未知であるときには、やる気がなくなります。今やっていることが将来無駄になるかもとか考えると、気になって集中できません。

 大規模な製品だとハンズオンといって、みんなで最初にサンプルを手順に従って作ったりします。なんでそんな幼稚園みたいなことをやるのかと思いつつ、これがいいんですよ。全体を最初に見渡せるから。
 ハンズオンの欠点は、会場を借りて講師を呼んだりするとお金がかかることです。個人ではちょっと出すのをためらう金額になります。

「iphone SDKの教科書」は与えられたテーマを一通り作るという意味では、ハンズオンのテキストみたいです。もちろん、これで全てわかったことにはならないのですが、アイデアからリリースまでの道のりが見えれば、あとは工程を改良すればいいことになります。

開発していて何をしたら良いのかわからない人にはおすすめ。
iPhone SDKの教科書―Cocoa Touchプログラミング、最初の一歩

| | Comments (0) | TrackBack (0)

April 26, 2009

iphoneらしい回転をサポート

土日をつぶしてさんざん調べたが、実はviewcontrollerの基本クラスが回転をサポートしているので、単純に以下のコードを.mに加えるだけみたい。
// Subclasses override this method to define how the view they control will respond to device rotation
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}

ただし、回転後に現在の方向を検出するのがうまくいかない。以下のようなコードを書いてみた
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)FromInterfaceOrientation{

switch (FromInterfaceOrientation) {
case UIDeviceOrientationPortrait:
NSLog(@"tate OK");
break;
case UIDeviceOrientationPortraitUpsideDown:
NSLog(@"tate gyaku");
break;
case UIDeviceOrientationLandscapeLeft:
NSLog(@"yoko left");
break;
case UIDeviceOrientationLandscapeRight:
NSLog(@"yoko right");
break;
case UIDeviceOrientationFaceUp:
NSLog(@"top");
break;
case UIDeviceOrientationFaceDown:
NSLog(@"bottom");
break;

default:
break;
}
}
全然正しい方向にならないのは何故だ?

| | Comments (0) | TrackBack (0)

April 23, 2009

今日もまた転送ができなくなりました

久しぶりに実機でのデバッグを行おうとしたら、以下のエラーが出て転送ができない。
Code Signing Identify 'iPhone Developer: Ore' does not match any valid,non-expired,code-signing certificate in your keychain.
以前、実機に転送していたプロジェクトも転送できなくなってしまった。
認証をはじめからやり直したが駄目。
なんだかもう、うんざりしてきた。

| | Comments (1) | TrackBack (0)

April 15, 2009

iphone のドキュメントは何から読めばいい

 最近になって、iphone開発に関する本がいろいろと出版されてきた。
iphone SDKプログラミング大全とiphoneSDKの教科書を読んでみたが、自分の作りたいアプリが作れない。サンプルに機能を追加しようとしても見当がつかないのだ。

 原点に立ち返ってiPhone Dev Centerにある日本語ドキュメントを読む。
iPhone Dev Center

次に読むべきは「iPhone アプリケーションプログラミングガイド」だ。読んであることがすらすら頭に入る。というか、本を2冊読んでチュートリアルをやったせいかもね。


| | Comments (0) | TrackBack (0)

April 13, 2009

なぜ、あの人はiPhoneのプログラムをすらすら書けるのか?

 あの人というのは、木下誠氏だったりするわけですが、もともとMacで基礎があったのではないかと思います。HMDT

ということで、いまさらmacの開発ノウハウを読んでたりするわけです。
Apple Developer Documentation 日本語のビデオチュートリアルはいい感じです。やっぱり木下氏なんですけど。

Cocoaはやっぱり!はよく使うクラスについて掘り下げてあるのがいいです。
OOMORIさんのCocoaリファレンスは、広く網羅してあって安心します。

でも、赤松さんのakalogue » Blog Archive » Programming for non-programmers - Masayuki Akamatsuを読むと、Cocoaなんか数年前に忘れちゃったとか書いてあるので、頭のいい人には関係ないんだろうな。


| | Comments (0) | TrackBack (0)

«インスタンスメソッドとクラスメソッドの違い