2011年12月13日火曜日

Storyboardで画面遷移を作る (iOS)

Xcode4.2からStoryboadというものが使えるようになりました。いままで画面ごとにnibファイルを作ってプログラムで画面遷移することができましたが、Storyboardを使えば各画面の関係を1画面で見渡すことができます。また、単純な画面遷移ならプログラムを一切書かずに作ることができます。

最も簡単な画面遷移

ボタンを押したら次の画面に移動するだけの簡単な画面遷移を作ってみます。

まずはプロジェクトの作成から。

File –> New –> New Project でSingle View Applicationを選択します。
新規プロジェクトのプロジェクト名などを入力する画面で「Use Storyboard」のチェックを入れて、プロジェクトを作成します。

2011年9月26日月曜日

Wi-Fiでゲートウェイにpingする (Android)

AndroidのWi-Fiを使ってpingする方法です。

まずはゲートウェイのアドレスを調べます。DhcpInfoのgatewayフィールドに入っています。

WiFiManager wifi = (WifiManager)getSystemService(WIFI_SERVICE);
DhcpInfo dhcpInfo = wifi.getDhcpInfp();
int gateway = dhcpInfo.gateway;

ここにはリトルエンディアンで入っています。これをビッグエンディアンの配列にします。

byte[] gatewayAddr = new byte[] {
        (byte)(gateway&255),
        (byte)((gateway>>8)&255),
        (byte)((gateway>>16)&255),
        (byte)((gateway>>24)&255)
};

あとは普通のJavaプログラムと同様にpingします。

InetAddress addr = InetAddress.getByAddress(gatewayAddr);
if ( addr.isReachable(3000) ) {
    …
}

2011年7月7日木曜日

GalaxySを2.3.3にアップデートしたらバッテリー消費が激しくなった

GalaxyS Android2.3.3のバッテリー問題。突然バッテリーの消費が激しくなり、8時間くらいでバッテリーを完全消費してしまう。

この問題、どうやら日本だけで起こっているわけではないらしい。
http://www.google.mk/support/forum/p/Google+Mobile/thread?tid=1ea61a8c2fffdb2e&hl=en

システムモニタのアプリで調べてみたら、原因はシステムプロセスのsuspend。アプリではない。

下のスクリーンショットを見ると、端末がスリープに入るとsuspendプロセスがCPUを使い始めていることがわかる。

バッテリー履歴1日CPU消費量システムプロセスのCPU使用量suspendプロセスのグラフ

いまのところ、バッテリー消費が激しくなったら再起動するしかないようだ。