ラベル iOS の投稿を表示しています。 すべての投稿を表示
ラベル iOS の投稿を表示しています。 すべての投稿を表示

2013年3月19日火曜日

iOSアプリを実機で動かすまでの手順メモ

このエントリーをはてなブックマークに追加
試作したiOSアプリをiPod touch等の実機で動かすための手順をメモしました。cerファイルやプロビジョニングファイル等の作成/インストールやXCodeの設定等をメインにまとめています。「iOS Developer Program」への登録はiOSアプリの実機開発環境を整える 〜iOS Developer Programへの登録〜にまとめています。


参考書籍:
iPhone/iPad/iPod touch プログラミングバイブル iOS 6/Xcode 4対応 (smart phone programming bible)



2013年3月18日月曜日

「iOS Developer Program」への登録 〜iOSアプリを実機で動かすための準備〜

このエントリーをはてなブックマークに追加
試作したiOSアプリをiPhoneやiPad等の端末で動作させるためにはまず「iOS Developer Program」に登録する必要があります。登録のために実際にやったことを以下に記述します。


2013年3月1日金曜日

重くなってきたiPhoneの動作を軽くする『もっさり解消』

このエントリーをはてなブックマークに追加

iPhoneやiPadなどのiOS製品を長時間使用していると、アプリの起動やタップしてからの反応が遅くなる(もっさりする)ことがあります。そんなもっさりした状態をワンタップで解消するアプリが『もっさり解消』です。

 

AppStore:もっさり解消 for iPhone


2013年2月1日金曜日

手書きの数式から自動で答えが導かれる『MyScript Calculator』

このエントリーをはてなブックマークに追加

『MyScript Calculator』は、手で書いた数式を認識して、その数式の解答を自動で表示するスマホアプリです。分数やルートといった数式だけでなく、対数、sinやcosといった三角関数なども利用できます。


例えば、こんな感じでルート2分の1を入力すると、



数式を自動で変換して解を表示してくれます。



これは本当すごい!ちょっとした複雑な計算を行いたいときにすごく便利なアプリだと思います。


Google Play:MyScript Calculator
App Store : MyScript Calculator


2012年12月15日土曜日

PhoneGapとjQuery Mobileを使ったネイティブアプリ開発

このエントリーをはてなブックマークに追加
iOSやAndroidのネイティブアプリをjQuery Mobileで作りたい。PhoneGapというフレームワークを使えばそれが可能なようなので、さっそくPhoneGapとjQuery MobileでHello World!の表示まで試してみました。




2012年12月9日日曜日

PhoneGapによるiOSアプリ開発環境を構築する(Xcode編)

このエントリーをはてなブックマークに追加
PhoneGapはiOSやAndroidなどをサポートするオープンソースのモバイルアプリケーション開発フレームワークです。このフレームワークを使うことで、HTMLやJavaScriptでアプリが作れるようです。そこで、まずはPhoneGapをXcodeから利用できる開発環境を構築しました。


2012年9月9日日曜日

大切な予定までの日数をカウントする『あとマル』

このエントリーをはてなブックマークに追加
あとマルは直近の特定日までの日数を表示してくれるアプリです。日時と予定を入力するだけで、その日までの残り日数をバッジに表示してくれます。バッジとはアイコンの右上に表示される赤い円のことです。


App Store:あとマル - 残り日付をバッジでカウントダウン


2012年9月7日金曜日

iOSのツールバーをUIToolBarで作成する

このエントリーをはてなブックマークに追加
iOSアプリでよく見るツールバーはUIToolBarを用いて簡単に作成できるようです。UIToolBarでツールバーを作成し、そこにiOS標準のボタンを設置して表示するプログラムを作成しました。


2012年9月5日水曜日

NSUserDefaultsを利用してアプリの起動回数をカウントする

このエントリーをはてなブックマークに追加
NSUserDefaultsクラスを利用すると、軽めの情報をiOSアプリ内へ簡単に保存したり読み出したりすることができます。このクラスを利用して、アプリの起動した回数をカウントするコードを書きました。


2012年8月26日日曜日

気になる色を調べたい『色彩ヘルパー』

このエントリーをはてなブックマークに追加

目の前の素敵な色や、写真に含まれている色を調べたいとき、『色彩ヘルパー(Coler Helper)』が便利です。『色彩ヘルパー』は、iPhoneやiPadで利用できるアプリで、カメラで映した映像や、端末内に保存されている画像に含まれている色を識別してくれます。


カメラで撮影中の映像に含まれるカラーをリアルタイムで表示します。iOS端末内に保存されている写真のカラーも、読み込んで表示します。



色見本では、色のサンプルが一覧になっていて、色を参照するのにとても便利です。配色に悩んだ時、このアプリがあればとても心強いと思います。 

App Store:色彩ヘルパー

2012年8月18日土曜日

CGRectContainsPointで特定の範囲がタッチされたかどうかを判別する

このエントリーをはてなブックマークに追加
CGRectContainsPointは、指定した領域に指定した位置が含まれるかどうかを判別するメソッドです。これを利用して、指定した範囲がタッチされたかどうかを判別するサンプルを書きました。


プログラム
タッチした時に呼ばれるtouchesBeganメソッドで、CGRectContainsPointを利用した分岐処理を記述しました。CGRectContainsPointの第一引数は領域、第二引数は位置を指定します。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    CGRect targetRect = CGRectMake(0, 0, 44, 44);
    CGPoint location = [[touches anyObject] locationInView:self];
    if (CGRectContainsPoint(targetRect, location)) {
        NSLog(@"touched in targetRect");
    }
}


xやyといった位置や、widthやheightといった幅や高さで判別するような記述を行わなくて済むので、これで記述量が少なくなりそうです。

関連:iPhoneでのタッチやタップをtouchesBeganで検知する

2012年8月5日日曜日

UIButtonクラスを利用してボタンを作成する

このエントリーをはてなブックマークに追加
iOS端末画面の中央に標準のボタンを表示するサンプルプログラムを作成しました。ボタンをタッチすると、ボタンの表示がHelloからWorldに変わります。


2012年8月4日土曜日

UIViewを4つ並べて配置する

このエントリーをはてなブックマークに追加
UIWindowの中にUIViewを4つ並べて配置するサンプルプログラムを作成しました。端末画面のサイズとステータスバーの高さを考慮して、UIViewのwidthとheightが均等となるようにしました。


2012年8月2日木曜日

iOS端末画面のwidthとheightを取得する

このエントリーをはてなブックマークに追加
iOS端末の画面サイズは、iPhoneならば320×480、iPadなら768×1024などです。その幅と高さは、UIScreenクラスのmainScreenメソッドで得られた画面情報から取得できました。

ステータスバーを含んだ画面サイズ
[[UIScreen mainScreen] bounds].size.width  //幅
[[UIScreen mainScreen] bounds].size.height //高さ

ステータスバーを除いた画面サイズ
[[UIScreen mainScreen] applicationFrame].size.width  //幅
[[UIScreen mainScreen] applicationFrame].size.height //高さ


確認プログラム
コメントアウトの(A)はステータスバーを隠す処理、(B)はステータスバーをランドスケープ(横向き)にする処理です。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //(A)ステータスバーを隠す
    //[UIApplication sharedApplication].statusBarHidden = YES;
    
    //(B)ステータスバーをランドスケープにする
    //[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
    
    //ステータスバーを含んだ画面サイズ
    CGRect bounds = [[UIScreen mainScreen] bounds];
    NSLog(@"bounds  width:%.f height:%.f", bounds.size.width, bounds.size.height);
    
    //ステータスバーを覗いた画面サイズ
    CGRect aFrame = [[UIScreen mainScreen] applicationFrame];
    NSLog(@"aFrame  width:%.f height:%.f", aFrame.size.width, aFrame.size.height);   
    
    return YES;
}


実行結果
iPhoneシミュレータでコメントアウトの条件を変えて実行しました。ステータスバーの高さは20ポイントなので、applicationFrameではそれが差し引かれた値となりました。

そのまま実行
bounds  width:320 height:480
aFrame  width:320 height:460

(A)の処理をコメントアウト
bounds  width:320 height:480
aFrame  width:320 height:480

(B)の処理をコメントアウト
bounds  width:320 height:480
aFrame  width:300 height:480

(A)と(B)の処理をコメントアウト
bounds  width:320 height:480
aFrame  width:320 height:480

2012年8月1日水曜日

iOS端末上で、タッチした位置に赤い丸を表示する

このエントリーをはてなブックマークに追加
iPhoneやiPad上でのタッチ位置を検出し、その位置に赤丸を表示するプログラムを作成しました。UIWindowを継承したサブクラスに描画メソッドのdrawRectを定義し、タッチ検出時にそのメソッドを呼び出すメッセージを送ります。

赤い丸の描画

2012年7月31日火曜日

iOS端末でマルチタッチを検知して処理する

このエントリーをはてなブックマークに追加
iPhoneやiPadなどのiOS端末でタッチイベントをキャッチするときはtouchesBegan等のメソッドを利用します。マルチタッチされたかどうかはこのメソッドの引数を利用して知ることができます。ここではマルチタッチを検知して処理する方法を書いています。


処理方針
まず、マルチタップを行える状態にします。UIViewが持っているプロパティのmultipleTouchEnabledをYESにすることでマルチタップが行えるようになります。このプロパティはデフォルトではNOとなっています。 

次に、touchesBeganのメソッド引数であるtouchesから複数のタッチを検出します。Objective-Cでは列挙子と呼ばれる仕組みが使えるようなので、それを利用してタッチ情報を順番に取得します。


プログラム
iPhoneでのタッチやタップをtouchesBeganで検知するで作成したBaseWindowクラスにinitWithFrameメソッドを追加し、UIWindow(UIViewのサブクラス)のインスタンスが作成されるタイミングでYESにするようにしました。また、touchesBeganを修正し、タッチされた数とタッチされた全ての位置をログに出力するようにしました。

BaseWindow.m
- (id)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self != nil) {
        self.multipleTouchEnabled = YES;
    }
    
    return self;
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    NSInteger touchCount = [touches count];
    NSLog(@"touchesBegan: count = %d", touchCount);
    
    NSEnumerator *enumulator = [touches objectEnumerator];
    UITouch *touchObject;
    while (touchObject = [enumulator nextObject]) {
        CGPoint tmpLocation = [touchObject locationInView:self];
        NSLog(@"touchesBegan: (x, y) = (%.0f, %.0f)", tmpLocation.x, tmpLocation.y);
    }
}


実行結果
 iPhoneシミュレータでのマルチタッチは、シミュレータ画面上で[option]キーを押したままにすることでできます。カーソルが2つ現れるので、動かすことでピンチイン、ピンチアウト等ができます。マルチタッチの実行結果は次のとおりでした。
2012-07-30 00:39:44.320 HelloWorld[13321:f803] touchesBegan: count = 2
2012-07-30 00:39:44.324 HelloWorld[13321:f803] touchesBegan: (x, y) = (145, 155)
2012-07-30 00:39:44.325 HelloWorld[13321:f803] touchesBegan: (x, y) = (175, 325)

2012年7月30日月曜日

iPhoneでのタッチやタップをtouchesBeganで検知する

このエントリーをはてなブックマークに追加
iPhoneやiPad等のiOSでタッチやタップといったイベントを検知して処理する方法をまとめました。UIWindowクラスを継承し、そのクラスのタッチイベント関連のメソッドを実装することで実現できるようです。タッチイベントに関する4つのメソッドと、それらが呼ばれるタイミングを次にまとめました。

  • touchesBegan:画面に指が触れた時
  • touchesMoved:画面に指が触れた状態で指を移動させた時
  • touchesEnded:画面から指が離れた時
  • touchesCancelled:タッチイベントがキャンセルされた時

touchesCancelledは、例えば画面に指が触れている状態でHOMEボタンを押した時などに呼ばれます。また、各イベントは引数にタッチされた位置(touches)と、イベントの呼び出し元情報(event)などを持ちます。

2012年7月9日月曜日

iPhoneやiPadを電灯替わりに『LED 懐中電灯 HD』

このエントリーをはてなブックマークに追加
寝る前に本を読みたい。暗がりの中で何かを探したい。そんな時にiPadやiPhoneを蛍光灯替わりに使えたら便利です。そんな機能を持つ無料の電灯アプリで、使用してみてとても良かったのが『LED 懐中電灯 HD』です。

LED 懐中電灯 HD(iPad)

点灯したい時は好きな蛍光灯の色を選んでボタンをタップするだけです。他の電灯アプリと比較して良いと思ったところは、蛍光色の選択幅が広い所です。寝る前はオレンジ色、何か探したい時は白色など、用途に応じて好みのカラーが細かに設定できて良いです。

 画面の明るさは画面の右側を上下にスライドすることで簡単に調整できたりします。また、ボタンをタップしたときには切替音が鳴ったりして、演出も素敵です。