AudioServicesPlaySystemSoundで音を鳴らす

ここでは"se.caf"というファイルをプロジェクトに追加しておいて、そのファイルを決め打ちでならすことを想定しています。

PlaySound.h

#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioServices.h>


@interface PlaySound : NSObject {
	NSURL *url;
	SystemSoundID soundID;
}

- (void)play;
@end

PlaySound.m

SoundIDの定義域がわからなかったのでkSystemSoundID_Errorの定義の仕方がいまいち。

#import "PlaySound.h"
#define kSystemSoundID_Error kSystemSoundID_Vibrate

@implementation PlaySound

- (void)createSound
{
	if(kAudioServicesNoError != AudioServicesCreateSystemSoundID((CFURLRef)url, &soundID)){
		soundID = kSystemSoundID_Error;
	}
}

- (void)createURL:(NSString*)path
{
	url = [NSURL fileURLWithPath:path isDirectory:NO];
}

- (id)init
{
	[super init];    

    NSBundle *mainBundle = [NSBundle mainBundle];
	[self createURL:[mainBundle pathForResource:@"se" ofType:@"caf"]];

	[self createSound];
	return self;
}

-(void)dealloc
{
    AudioServicesDisposeSystemSoundID(soundID);
    [super dealloc];
}

-(void)play
{
	if(soundID == kSystemSoundID_Error){
		return;
	}
    AudioServicesPlaySystemSound(soundID);
}

@end

iPhoneアプリでステータスバーを隠す

iPhoneで全画面表示のアプリとかで、電波3本とかキャリアとか電池残量とかが表示されているステータスバーを隠したい場合。

以下のリンク参照
http://iphonesdkdev.blogspot.com/2008/06/hide-status-bar.html

こういう情報ってどこまで公開していいのだろうか。

iPhoneでなにか作る

7月8月はずっと海外出張だったので、帰ってきてやっとiPhoneを購入。
暇ができたのでぼちぼちアプリを作りました。

Program Portalでの証明書発行やProvisioning Profileの作成あたりに普通に手間どったが、とりあえず一つ完成。iTunes Connectに登録しました。

Review通るといいな。

単語間文字列検索法

例えば、テキストエディタなどでdeleteAll()というメソッド名を検索するときには普通にdeleteAllとメソッド名の先頭から検索文字列を入れていくだろう。しかし、こうやって検索すると入力する文字数が多くなり面倒である。特にC言語などでは関数名にクラス名やドメイン名も含んだりするのでなおさらである。

そのときに複数の単語にまたがる部分の文字列に注目して検索をかけると、少ない文字列の入力で正しい検索結果が得られることが多い。
例えばdeleteAllと入力するのでなくeAlもしくはteAと入力するのである。あるいはeAだけでも行けるかもしれない。

なれないうちは、単語間の組み合わせの文字がなにかを考えるのに時間がかかってしまったりするが、慣れれば普通に検索するより圧倒的に早く検索ができる。

なにか、応用できないですかね?

ADTのインストールでorg.eclipse.wst.sse.uiが必要ですと言われた

Androidでアプリでもつくってみるかと、思い立ってSDKとかeclipseをダウンロードして、インストールしてみました。

http://www.javadrive.jp/android/index.html
とかを参考にしながら環境のセットアップ

eclipseにADT(Android Development Tools)プラグインをインストールしようとしたところで、
「ADT Installation Error: "requires plug-in org.eclipse.wst.sse.ui".」
とおこられてしまった。。。

いろいろ探していたところでgoogleのサイトのFAQにトラブルシューティングが乗っているのを発見
http://code.google.com/android/kb/troubleshooting.html#installeclipsecomponents

そして、以下の手順でインストールできました

  • 更新アクセス先サイト選択ダイアログにて新規に追加したAndroid Pluginのサイトと「Europa ディスカバリー・サイト」を選択->[終了]をクリックし検索開始
  • 検索結果ダイアログでAndroid Pluginを選択した後[必須項目を選択]をクリック
  • 「Europa ディスカバリー・サイト」の中から必要な項目が選択される。
  • [次へ]をクリックしインストール続行