iPhone&Androidプログラミング記
英語─上達しないのは努力不足が原因ではなかった!
英語が話せない…を解決する博士開発の噂の英語教材!返品保証付!

2009年04月16日

コード署名IDが?になってしまう

昨日にXcodeが日本語環境のままでも平気のようだ書きましたが、実機転送をする場合には日本語環境ではダメだということがわかりました。

beta 2をインストールした時にコード署名IDのところが?になっていたのは分かっていたのですが、シミュレータでは起動できていたし、実機に転送できないのは実機のOSバージョンが2.2.1だからなんだろうと思っていたためだった。
まぁエラーメッセージでコード署名IDが?になってるからダメだよ的に書いてあったのでコード署名IDが?なのはダメなのかなぁと思いつつシミュレータで起動できるからいいやと放置してました。

その後ネットサーフィンをしていたらコード署名IDが?になっているのですが〜・・・という書き込みに対して英語環境にしないとだめですよんという回答を見つけ、試してみたら全くその通りでした。

英語環境にしたらちゃんと表示され、エラーメッセージも転送しようとしてるアプリは3.0で、実機のOSバージョンより高いので転送してやれないなぁ〜というメッセージに変わりました。

Xcodeの言語環境を英語環境にするには
1.Xcodeのアイコンを右クリックして情報を見るを選択。
2.下の方に言語という項目があるので三角アイコンを押して表示。
3.英語にだけチェックを付けて日本語のチェックを外す。
4.Xcodeを再起動する。

これで大丈夫です。

だんだんと実機のOSも3.0にして試したくなってきました。


Apple MacBook 2.0GHz Core 2 Duo/13.3
アップル
発売日:2008-10-15
発送時期:在庫あり。
ランキング:14100
おすすめ度:5.0
おすすめ度5 持つ喜び
おすすめ度5 買いの1台。
おすすめ度5 驚異のコストパフォーマンスと美しさ



posted by ラキシス at 16:35 | Comment(0) | TrackBack(0) | iPhoneプログラミング | このブログの読者になる | 更新情報をチェックする

2009年04月15日

iPhone OS/SDK 3.0 beta 3 が配布開始

今日AppleからのメールでiPhone SDK 3.0 beta 3の配布を開始したよ〜というメッセージが来ました。

iPhone SDK 3.0 beta 3 Build: 9M2728
iPhone OS 3.0 beta 3 Build: 7A280f

2、3日ほど前に、別アカウントを作ってSDKをインストールするフォルダを別にすれば問題なんじゃないかと思ってiPhone SDK 3.0 beta 2をインストールしてみました。
特に何の問題も無く、日本語環境のままでもXcodeが普通に起動しました。

先日beta 2を入れたばかりでもうbeta 3かぁと思いながらbeta 3をダウンロードしてみました。
beta 2をインストールしたフォルダに上書きでインストールしようとした所、エラーが出てインストールに失敗しました。
原因がよく分からないし調べるのも面倒だしbeta開発だしって事で新しくフォルダを作ってインストールしました。(;´▽`A``

今回は不具合修正やパフォーマンスアップなどに注力したバージョンアップのようです。

とりあえず3.0でやってみたい事がPush Notificationです。
ドキュメントを読んでみたりVideoを見たりしてみましたが、英語が分からない自分にはよく分からないです。
ソースコードが載っていれば何となくは分かるのでDeveloperForumに行ってみPush Notificationカテゴリの書き込みを見てみました。

するとPHPでのコードやPythonやPerlなどのコードが書いてありました。
そんな中、サーバーを立てなくてもソケット通信でAPNSへ送信するMacアプリを配布している人が居ました。
こういうのを作ってしまえる人ってすごいなぁといつも思います。

ただまぁ、SDKは3.0にしても以前の2.2.1も同居できるのでいいのですが、端末のOSは3.0にすると2.2.1に戻せなくなるので結局の所テストが出来ないんですよね。

とはいえやれる事はまだあるのでPush Notificationを利用するための証明書の発行などをやってみました。
これがまた今までは問題なかったやり方がPush Notificationを使う時にこうしなければならないとか気を付けないといけない点がいくつかありました。
翻訳サイトにコピペしながらやったので、所々文章の意味を取違っているかもしれないけど一応作れたからいいか〜って感じです(≧ω≦)b

シミュレータでのPush Notificationテストの方法ってないのかなぁ。

そういえばiPhone SDK 3.0 にしたら、シミュレータのハードウェアの項目の中にシェイクジェスチャーという項目が増えていました(笑)


タグ:iPhone OS SDK Beta 3
posted by ラキシス at 17:29 | Comment(0) | TrackBack(0) | iPhoneプログラミング | このブログの読者になる | 更新情報をチェックする

2009年04月14日

iPhoneで単純なインジケータの表示

単純にインジケータを表示する方法を紹介したいと思います。

ここで使用するのはUIProgressHUDです。
これを使うと、インジケータと文字をセットしたRoundRectな黒半透明のダイアログのような感じに表示出来ます。


まずはinterfaceの用意

@interface UIProgressHUD : UIView
{
}

- (void)setText:(id)fp8;
- (void)showInView:(id)fp8;
- (void)hide;

@end


ViewControllerのヘッダなどにUIProgressHUD *progressHUDを追加してください。

とりあえず分かりやすいようにViewDidLoadに書いてしまいます。

- (void)viewDidLoad
{
[super viewDidLoad];

CGFloat w = self.view.frame.size.width - 200.0f;
CGFloat h = self.view.frame.size.height - 120.0f;
progressHUD = [[UIProgressHUD alloc] initWithFrame:CGRectMake(w / 2, h / 2, 200, 120)];
[progressHUD setText:@"お待ち下さい"];
[progressHUD showInView:self.view];
}


処理が完了したら消します。

if(progressHUD) {
[progressHUD hide];
[progressHUD release];
progressHUD = nil;
}


これで単純なインジケータの表示が可能です。

ピクチャ 24.png

ただし、このUIProgessHUDという物が公式のドキュメントには記載されていない物らしく、アプリ申請の際にリジェクトされる可能性があるかもしれません。
使っても申請が通ったというようなご連絡をいただけるとうれしいです。
posted by ラキシス at 19:29 | Comment(0) | TrackBack(0) | iPhoneプログラミング | このブログの読者になる | 更新情報をチェックする

2009年04月10日

iPhoneの加速度センサーを使って本体を振った事を検知する

一般的には傾きセンサーと呼ばれる事もありますが、公式では加速度センサーと言います。

この加速度センサーを利用して本体を振った事を検知してみます。

プロジェクトは「Window-Based Application」で作成しています。
お試しで何かやる時はお手軽かなぁと勝手に思ってる。
とりあえず「ShakeTest」と入力して作成。

プロジェクトが作成されたら新規ファイルの追加で「UIViewController subClass」でファイルを追加する。
「MyViewController」と入力して作成。


ShakeTestAppDelegate.hに以下の赤文字の部分を追記します。

#import <UIKit/UIKit.h>

@interface ShakeTestAppDelegate : NSObject
{
IBOutlet UIWindow *window;
IBOutlet UIViewController *m_view_controller;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end



MyViewController.hに以下の赤文字の部分を追記。
加速度センサーを使うためのプロトコルとラベルの表示を戻すボタンとラベルの宣言です。

#import <UIKit/UIKit.h>

@interface MyViewController : UIViewController <UIAccelerometerDelegate>
{
IBOutlet UIButton *btn_Reset;
IBOutlet UILabel *lbl_Shake;

}

- (IBAction) btn_Reset_DOWN:(id) sender;

@end


ここまで出来たら一旦ビルドなどしてファイルを保存します。

次にInterfaceBuilderでNIBファイルを開きます。
開いたらUIViewControllerを追加。
そのUIViewControllerにViewを追加し、さらにそのViewにボタンとラベルを追加します。
ピクチャ 18.png

上のメニューのToolsからMyViewControllerのInspectorを開きます。
開いたら右端のタブを選択し、Classの所をMyViewControllerに変更します。
ピクチャ 20.png


次に、宣言したIBOutletとIBActionをInterfaveBuilderで接続します。
MainWindowにあるShakeTestAppDelegateの行で右クリックすると以下のメニューが出ます。
ピクチャ 19.png
さっきShakeTestAppDelegate.hに追加したm_view_controllerがあります。
右の方にある○をMyViewControllerのウィンドウにドラッグします。
そうするとヘッダに宣言したm_view_controllerと接続されます。
ピクチャ 21.png


同様にMyViewControllerで宣言したボタンとラベルのIBOutletとボタンのIBActionも繋ぎます。
ピクチャ 22.png


アクションはボタンへドラッグするとどのアクションに接続するかのメニューが表示されます。
Touch Up Insideで良いと思います。
ピクチャ 23.png

接続が終わったら保存します。


Xcodeに戻ります。
「ShakeTestAppDelegate.m」に以下の赤文字の部分を追記します。
ビューをウィンドウに足す事と、ビューのリリースです。

#import "ShakeTestAppDelegate.h"

@implementation ShakeTestAppDelegate

@synthesize window;

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
// Override point for customization after application launch
[window addSubview:m_view_controller.view];
[window makeKeyAndVisible];
}

- (void)dealloc {
[m_view_controller release];
[window release];
[super dealloc];
}

@end



MyViewController.mに以下を記述します。
加速度センサーを有効にする事と加速度センサーの状態を受け取るメソッドの記述。
それと振った事を検知する処理です。

- (void)viewDidLoad
{
[super viewDidLoad];

// 加速度センサーを有効にする
[[UIAccelerometer sharedAccelerometer] setUpdateInterval:(1.0 / 15)];
[[UIAccelerometer sharedAccelerometer] setDelegate:self];
}

- (void)accelerometer:(UIAccelerometer *)accelerometer
didAccelerate:(UIAcceleration *)acceleration
{
const float violence = 1.5;
static BOOL beenhere;
BOOL shake = FALSE;

if (beenhere) return;

beenhere = TRUE;

if (acceleration.x > violence || acceleration.x < -1*violence)
shake = TRUE;
if (acceleration.y > violence || acceleration.y < -1*violence)
shake = TRUE;
if (acceleration.z > violence || acceleration.z < -1*violence)
shake = TRUE;

if (shake) {
// 振った時の処理
[lbl_Shake setText:@"振ったな!"];
}
beenhere = FALSE;
}

- (IBAction) btn_Reset_DOWN:(id) sender
{
// ラベルの表示を元に戻す
[lbl_Shake setText:@"振ってみて〜"];
}

@end


これでiPhoneを振った時の処理をする事が出来ます。
振り幅などの値を色々いじって反応を見てみると面白いと思います。

ピクチャ 24.png
posted by ラキシス at 18:46 | Comment(0) | TrackBack(0) | iPhoneプログラミング | このブログの読者になる | 更新情報をチェックする

2009年04月09日

iPhoneでのゲーム開発について解説した本

まだ発売は少し先で、さらに洋書なので手を出しづらいかもしれないけれど、iPhoneでのゲーム開発について綴られた書籍が発売します。

解説の項目としては以下のような内容になっています。

・Add multi–touch controls to your game.
 (マルチタッチでゲームをコントロールする)
・Detect motion for spatial game interaction.
 (モーションセンサーをゲームに取り入れる)
・Build multiplayer/multidevice games with wi–fi or cellular connections.
 (WiFiや3Gでの通信対戦、複数iPhoneの利用)
・Draw text and display Open GL ES content.
 (テキスト描画とOpenGL ESの描画)
・Use the built–in microphone and play sounds and alerts.
 (マイクとサウンド再生とアラートの使い方)
・Optimize your use of limited screen real estate.
 (限られたスクリーン領域の利用を最適化)

Iphone Games Projects (Projects)
Iphone Games Projects (Projects)P. J. Cabrera

出版社 Apress
発売日 2009-06-15
価格 ¥ 4,114
[ 定価 ¥ 4,121 ]
近日発売 予約可

Amazonで詳しく見る
by G-Tools


出版社Apressのサイトはこちら

洋書での発行は6月以降いろいろとあります。
iPhoneアプリ開発の人達は英語が読める人が多いかと思いますのでこの洋書を購入して技術を習得していけるのでしょうけど、英語が苦手な自分は早く翻訳して欲しい!と指をくわえて待つようなタイプです。
翻訳版が出るとしても半年〜1年後とかになるのでしょうね。
そんなにも遅れを取ってしまっては世界についていけませんから、英語の勉強もしないといけないと思う日々です。

洋書が出てから和書に翻訳という流れではどんどん日本は置いていかれてしまう様な気がするので翻訳という流れではなく洋書の勢いと同じく和書も出てくれるとうれしいな。
まぁ英語が出来ない自分のようなプログラマは黙ってろって感じなんでしょうけどねふらふら
posted by ラキシス at 14:07 | Comment(0) | TrackBack(0) | iPhoneプログラミング | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。