RSS
0

iPhoneアプリ:ロトしようよ


iPhoneアプリをリリースしました.ロト6を対象としたi.i.d.(独立同分布)の統計的解析,ぶっちゃけると,欲に目がくらんだロト6の予想ソフト.同じ欲に負けた人はどうぞ.当たり前ですが,損害は補償しませんから.

->AppStoreに行く
->詳細ページに行く
Read more
0

iPhone Reachability ネットワーク接続を確認する

iPhoneアプリ内でネットワーク(3Gネットワーク,Wi-Fi)を確認する方法を検索したら,古いものしか見つからなかった(接続確認に利用するAppleのサンプルプログラムがバージョンアップした)ので,現バージョンに対応したメモのまとめ.公開プログラムを眺めれば,使い方は分かりますが,自分用に必要なものだけをピックアップ.

AppleのサンプルプログラムReachability(Version: 2.0)をダウンロード(Apple IDでログインする)して,自分のプロジェクトにReachability.hとReachability.mを追加する.忘れずにフレームワークにSystemConfigurationを追加する.

まず,自分のヘッダーファイル内で宣言する
#import <uikit/uikit.h>

@class Reachability;

@interface HowToUseReachabilityViewController : UIViewController
{
Reachability* hostReach; // ホスト接続
Reachability* internetReach; // 3Gネットワーク
Reachability* wifiReach; // Wi-Fi
}

@end

メソッドファイル内でReachabilityの設定と処理用メソッドを書く.設定は,viewDidLoad,viewWillAppearやネットワークを行う直前などで,書く.
#import "Reachability.h"

// Reachabilityの状態により,確認処理を行う
- (void) updateInterfaceWithReachability: (Reachability*) curReach
{

// 接続の状態を取得する.戻り値は,以下の3つ
// NotReachable
// ReachableViaWiFi
// ReachableViaWWAN
NetworkStatus status = [curReach currentReachabilityStatus];

// ホスト接続の場合
if(curReach == hostReach)
{
if( status == NotReachable ) NSLog(@"host failed");
}

// 3Gネットワーク接続の場合
if(curReach == internetReach)
{
if( status == NotReachable ) NSLog(@"3G failed");
}

// Wi-Fi接続の場合
if(curReach == wifiReach)
{
if( status == NotReachable ) NSLog(@"Wi-Fi failed");
}

- (void)viewDidLoad
{
[super viewDidLoad];

// ホスト(例えば,www.google.com)接続を調べる
hostReach = [[Reachability reachabilityWithHostName:@"www.google.com"] retain];
[self updateInterfaceWithReachability: hostReach];

// 3Gネットワーク接続を調べる
internetReach = [[Reachability reachabilityForInternetConnection] retain];
[self updateInterfaceWithReachability: internetReach];

// Wi-Fi接続を調べる
wifiReach = [[Reachability reachabilityForLocalWiFi] retain];
[self updateInterfaceWithReachability: wifiReach];

}

ここで,ネットワーク接続の状態が変わった場合でも検知したい場合は,状態変化を検出するように設定して,その変化時に処理を行うメソッドを定義する.
// ネットワーク接続の状態が変化したときに,呼ばれるメソッド
- (void) reachabilityChanged: (NSNotification* )note
{
Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
[self updateInterfaceWithReachability: curReach];
}

- (void)viewDidLoad
{
[super viewDidLoad];

// ネットワーク接続を観測して変化したときに,呼ばれるメソッドを設定する
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:)
name: kReachabilityChangedNotification
object: nil];

// ホスト(例えば,www.google.com)接続を調べる
hostReach = [[Reachability reachabilityWithHostName:@"www.google.com"] retain];
[hostReach startNotifer];
}

これのサンプルソースです.プログでは見にくいので,興味ある人は直接プロジェクトを確認してください.使用条件は自己責任です.このサンプルをアプリに参考・組込する/した方は,得した分だけ隣人にジュースを奢ってあげてください.3G専用やWi-Fi専用アプリを作らない限り,hostReachだけを使えばネットワークを確認できまる.

追記
iOS5.0からのARCに対応させるにはReachability.m/hの一部を書き換える必要があります.ARCの知識を持っているか,プログラマの力量を確かめられる良い機会です.
Read more
0

iPhoneのマイク(AudioQueueに挫折)

以前のエントリーのマイクを使ったiPhoneアプリは色々と試したけど,欲しいものができないので一時凍結.コールバック関数の中でバッファ(buffer)のデータを直接いじろうとしたけど,数値が乱雑?に並んでいたので挫折.AudioQueue.hで定義してある関数を色々探ったけど,よく分かんないわ.だいたいこういう風になってるんだろうと推測はできたけど,無理だ.AudioQueue.mってどこにあるんだよ!!っていってもライブラリになってるから無いか.Game Kitのヴォイスチャットを無理くりに使おうかと思ったけど,やっぱり無理っぽい.うわわわわ

===追記===
なんか粘ってたら分かってきた.んで,これをリリースしました.公式リファレンスがかなり役に立つわ.
Read more
0

21歳を子供と間違え

衆院選:21歳を子供と間違え用紙渡さず 神奈川・平塚
30日の総選挙で、神奈川県平塚市選挙管理委員会が母親とともに投票所に来た女性(21)を親に同伴した子供と思いこみ、一部の投票用紙を渡さないミスがあったことが分かった。女性は怒って帰宅し、市選管は棄権として処理した。
思うんだけど,ハガキだけで選挙って,大丈夫なんの??.性別を確認ぐらいだし,替え玉されても分からんと思うけど.なんか身分書の提示も必要だと思うよ.
Read more
0

MacBook(Late 2008)は64ビット非対応!?

さらーっと,ニュースを見てたら,どうやら愛用のMacBook(Late 2008)はカーネルが64ビットで起動しないらしい.ハード的には対応してるらしいが,制約が掛かっているみたいとか.アクティビティモニタ見てたら,搭載した4GBのメモリがフルに使われてないから何で?と思ったけど,そういうカラクリだったとは.むむむ.でも,外人がいつもの用に裁判起こして,マイナーアップデートかファームウェアアップデートで対応しような気がする.
Read more
0

マイクを使ったiPhoneアプリ

失敗したけどな.作りたい物とは別物の派生物ができてしまった.これはマイクから音を拾って,その音量を数値とグラフ化しています(シミュレーターで動かしたのでマイク入力はOSの音量調整ボタンで代用してます).コレはコレで遊べそうだけど,欲しいのはコレじゃないんだよな〜.

ちなみに,Mac OS X 10.6 Snow LeopardのQuickTime Xでデスクトップをキャプチャ.Snow Leopardは,ええわ.んんん,YouTubeに上げたら,音声が切れてる!?,なんで??.
Read more
0

Mac OS X 10.6とXcodeとiPhone

MacBook (Late 2008)にMac OS X 10.6 Snow Leopardをインストールしました.宇宙みないな壁紙が若干変わった気がしますが,いたるところで64ビットになったので無事インストールに成功したようです.開発関係もXcodeが3.2と上がったので,追加?でいれました.まだいじっていないので何が変わったのかは分かりませんが.あと,iPhone SDKもSnow Leopard用が配布されたので,これもインストール.OSのインストールは今までのソフトが無事に動くかが心配でしたが,無事に動きました.明日から仕事しますよ.今日は新機能で遊ぶ!!
Read more