頭と尻尾はくれてやる!

iOSアプリなどの開発日記です


iPod touch化したiPhoneのバッテリーを長持ちさせたい

iPhone 3GSの設定で3Gをオンにしといた方がバッテリーが長持ちしたってお話だよ。

頭と尻尾はくれてやる! iPhone 3GSのバッテリーが膨らんできたので交換してみた
↑ここにあるように契約が終了しているiPhone 3GSのバッテリーを交換したんだけどさ、どうやったらバッテリーが長持ちするのかなって思ってね。
気になったのが「設定」のところにある「3Gをオンにする」ってところ。

設定の3Gをオンにする

↑ほら設定アプリ内にあるでしょ。
ソフトバンクとはもはや契約してないWi-Fi専用デバイスなんだからここをオフにした方がバッテリーが長持ちしそうじゃない?

通常のステータスバー
↑ちなみに普通に使っているiPhoneだと画面左上はこんな風にアンテナが立っててSoftBankとか書いてるよね。

圏外を示すステータスバー
↑これが3Gをオンにしてるとこのようにずーっと圏外になるんだ。

検索中のステータスバー
↑3Gをオフにすると、検索中と圏外を繰り返すんだよ。
仕組みはよくわからないけど、繰り返すところをみると何か内部で頑張って処理してるのかな、、、?ってことでバッテリーの減りを調べてみたんだよ。

バッテリー残量変化のグラフ

↑4回やってるけど、種類は3Gをオン/オフの2種類だけだよ。
バッテリーが100%の状態にして、アプリはバックグラウンドのを全て消してから、適当な時間に残量をチェックしてみたんだ。
その結果、明らかに3Gをオンにしてる方がバッテリーが長持ちしてる。そうなんだってことでとりあえず3Gはオンにしとくよ。

あと、20%あたりでiPhoneが起動しなくなるんだ。この辺りが本当はバッテリー残量ゼロなのかもしれない。まあ純正バッテリーじゃないからそんなもんかもしれないけどね。
スポンサーサイト






Pixelmatorでもベジェ曲線が使える!

実はPixelmatorでもShape Toolを使うとベジェ曲線が使えるってお話だよ。

Pixelmatorのチュートリアルを少しずつ見ているんだけど、今までで市場驚いたのがPixelmatorでもベジェ曲線が使えるってことなんだ。

Pixelmator Tutorials – Shape Tools
↑その動画。

やってみたんだけど確かに使える。

アンカーポイントの追加
↑線の上でcontrolキーを押しながらタップするとアンカーポイントを追加できるし、

方向線を一つだけ変更
↑commandキーを押しながら方向線を変えると片方だけ動かすこともできる。

方向線の有無の切り替え
↑アンカーポイント上で右クリック(かな?トラックパッドだと二本指でタップ)すると表示される「シャープ/スムースさ」というのを切り替えると方向線の有無を切り替えられる。
やるじゃないっ!
ベジェ曲線を使うのならイラストレーターとかiDrawなどでないとダメなものかと思っていたから驚いたよ。

これで簡単なボタンを作るのならPixelmatorだけでも大丈夫、、、かどうかは知らないけどね。


iOSでPOCに挑戦(2) フーリエ変換その前に

iOSでPOCに挑戦(1) 位相限定相関法をやってみる
の続きだよ。

位相限定相関法をやるなら避けて通れないのがフーリエ変換なんだ。
あー、やだね、なんだか気が滅入るよね、フーリエ変換って聞くだけで。離散だの高速だのいろいろあってさ。俺も未だにあまり理解できていないんだよね。
まあ位相限定相関法というのは置いといて、まずはフーリエ変換をiOSでやってみようか。もちろん画像を扱うので二次元のフーリエ変換だよ。

なにか適当な画像が欲しいよね、、、

lena

どういうわけか知らないんだけどさ、ネットで文献とか漁ると画像処理関連でよく出てくるサンプル画像がこの女性。誰なんだろうね?
二次元離散フーリエ変換 – AS3.0 « Rest Term
まあ誰でもいいんだけど、↑このページにフーリエ変換した結果も乗っているからこれを使うことにするね。

ありがたいことにフーリエ変換するためのライブラリがすでにあってね。それを使えば一撃なんだよ。Accelerateってフレームワークが必要だよ。
void vDSP_fft2d_zip (
   FFTSetup __vDSP_setup,
   DSPSplitComplex *__vDSP_ioData,
   vDSP_Stride __vDSP_strideInRow,
   vDSP_Stride __vDSP_strideInCol,
   vDSP_Length __vDSP_log2nInCol,
   vDSP_Length __vDSP_log2nInRow,
   FFTDirection __vDSP_direction
);
↑FFTするのにこれを使っているよ。リファレンスにこんな風に書いてるけどなにがなんだかって感じだよね。ここは落ち着いて順番に必要な引数を確認していこうか。

再確認するけど、画像は256x256pxで、データが256x256個あるってことだよ。正方形じゃなくてもいいけど、ここはたまたま正方形というだけだからね。
ただ、画像データの一辺は2^nでないとだめだってのはFFT(高速フーリエ変換)をやろうとすればどこかで聞いたことがあると思う。だから自分のアプリで256は大きいなってことならその一つ下は128ってことになるし、もっと大きいのが欲しいとその上は512ってことになる。
ここでは 256 = 2^8 という数字を覚えておいてね。

最初の引数'FFTSetup __vDSP_setup'はFFTSetupという型の構造体を予め作っておく必要があるんだ。
作り方はこんな感じで:
{
    FFTSetup fftSetup = vDSP_create_fftsetup(8 , FFT_RADIX2);
}
ここで8というのは256が2の8乗だからその8を入れてる。radix(基数)は2なのでそれを意味する定数FFT_RADIX2が二つ目に入れてる。
これはFFTに必要な数値を予め計算しておくものだから、最初に一度やっておけばいいよ。というかFFTのたびにこのセットアップをするなんて時間とバッテーリーの無駄使いになっちゃうので注意しようね(と言ってる俺は最初そうしててデバイスがとても熱くなったもんだよ)。
あと、この構造体は上の例では256(=2^8)でセットアップしてるけど、それ以下のなら使い回しができるからわざわざ作り直す必要ないよ。

そうそう、コード内に数字の8をそのまま入れてるけど、これは説明しやすいからそうしてるんだ。自分でコードを書く時には、潰しが効くように変数なんかを使うことをオススメするよ。

次の'DSPSplitComplex *__vDSP_ioData'って二つ目の引数には画像データを入れるんだけど、長くなったから今回はこの辺りで。





行動に点数を付けるmyAction Point

myAction Pointってアプリを使ってみたというお話だよ。

自分が作りたいなと思っているアプリに少し似てるところがあるということもあって、 myAction Pointってアプリをダウンロードしてみたんだ。
myAction Pointアイコン
↑そのアイコンね。
自分の行動に対してポイントを与えることができて達成感を得る、ってアプリなんだ。生活の細々とした面倒なことも得点化して楽しむ、いわゆるゲーミフィケーションって言うの?そういうのを狙ってるみたい。
シンプルでいいんだけど、できれば曜日ごとや月ごとのポイントが計算できたり、それがグラフで一覧できるともっと楽しいんだろうな、なんて考えたよ。
自分で作るか、、、?

※これを書いた時のバージョンは1.0



エアコンのフィルター掃除で節電

エアコンのフィルターを掃除したってお話だよ。

そういえば幾久しくエアコンのフィルター掃除してなかったなって気が付いてさ。
フィルター掃除してみたら室温が今までにないくらい上がるんだ!

今までは設定温度程度だったのが設定温度プラス2℃くらいになるんだよ(ホントならフィルター清掃後も設定温度くらいになって欲しいところだけどね)。
最初は外気温が高いせいかな、とも思って数日みてたんだけどやはり明らかに違う!

エアコンのフィルターは掃除しましょう!ってよく聞くけど、ホントしないとだめだね!




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.