2012年7月29日日曜日

いざ、実装!

いよいよ、学校としてのアプリ「お散歩ペット(仮称)」の実装をはじめました。

とりあえず、作るための下調べからです。
歩数計を作っている人が他にいないか、考え方やサンプルをブログ等で公開してくれている人がいないか、何を使えばいいのか等、今までもちょっとずつ調べていたのをまとめる意味でメモ取ったりしながら頭の中で組み立てて行きます。

以前調べたときは、センサーを3次元でチェックとか書いてあるブログをみたりして、げんなり ちょっと大変だなと思ってたりしたので、他に方法が無いのかいろいろと調べます。
ピタゴラスの定理とか使って実装してる人もいたり、プログラムをまるごと公開してくれてる人もいて、なるほどなるほど、、、ふむふむ・・・(眠くなってきた・・・)

とりあえず、起動画面作ろ!

起動画面というのは、スプラッシュスクリーンとも言われていて、アプリケーションを起動するとアプリの名前とか会社名がしばらく出るやつです。

仕組みとしては簡単、しばらく画像を表示して主画面に切り替えるだけです。
とりあえずの画像を用意して、ちょこちょこと・・・



こんな画面が約1秒出るようになりました。(なんか上に線出てるけど実際は無いです)

メインの画面をこのまま作ってもいいのですが、だいたいどうすればいいのか想像つくし、どっちかっていうと歩数計の方が気がかりなので、続けていろいろ調べます。

最近のプログラミング言語は、一般的な処理(アルゴリズムといいます)は、ライブラリとして用意されていて、自分で書く必要はほぼありません。
例えば、並べ替えとかの処理はあるものを使えばいいのですが、歩数計のアルゴリズムなんてものは、用意されていません。

調べているとピタゴラスの定理を使って実装している人がいました、、、ほほぅ・・・

ピタゴラスの定理の定理ってなんだったっけ?

ググればすぐ分かるので便利な時代ですよねー
YouTubeで分かりやすく動画で説明があったりして、ふむふむ・・・あーこんなの習ったな、、、なんでこれが歩数計になるんだろ・・・?

見ていると関連動画にリーマン予想なんてのが出てます。
聞いたことあるけど、なんだっけこれ・・・?

へーすごい、、、あ、フェルマーの最終定理のビデオもある、、、
(実は、計算苦手だけど数学好き・・・)

気がついたら夕方でした、、、
(いやこの横道もきっといつか役に立つはず・・・)

そんな感じで土曜が終わり、何も進んでないような進んでいるような感じですが、頭の中はだんだん整理されてきます。

さて、今日になって、実際にどうしよう、公開されてるサンプル使うのもいいんだけど、それじゃ作ってる気しないし。

まずは、着手してみるかと・・・

Eclipseという開発環境を使うのですが、開発にはプロジェクトという管理単位で進めていきます。昨日作ったプロジェクトにそのまま付け足していってもいいのですが、歩数計の部分は、ちょっと肝だし悩みたいところだから別にプロジェクトを作ります。

いったん作ってみて検証するわけです。
こういうのプロトタイプとか呼んだりしますけどね。(アニメとかにたまに出てくるよね)
日本語訳だと、試作品です。

試作品なので、あんまり細かいこと気にせずに思ったとおりに作っていきます。
歩数計なので、加速度センサーというのを使わないといけません。
最近のスマホは、けっこういろいろなセンサーついてて、遊べるんですが、これはPC上で動くエミュレータというのでは再現できません。

なので、実機と呼びますが、実際の携帯電話にインストールして動作を確認するわけです。私も1台だけ開発用に中古で買ってきたAndroid端末があるので、これでテストします。

まずは、センサーが正しく取得できるか、値にはどういう意味があるのか、動かしてみるとどうなるのか、、、みながらふむふむ・・・・

取得できる値をそのままログ出力(確認用の出力です)すると結構、大量に出ます。

出力を少なくしたり感度を調整したり、、、いろいろいじってちょっとできたら修正、、、確認して修正、、、、地味な作業の繰り返しです。

ある程度出来た時点で、実機を持って部屋の中を歩きまわってみます。

いろいろと調整しているうちに・・・

なんかそれっぽくできちゃった(^_^;)

グラフ出したり、ローパスフィルターとか、いろいろロジック組んでる人いましたけど、普通にセンサーの値取得して、調整する値を2つほどごちゃごちゃいじってたら、割と数えられます。

世の中には複雑なロジックもいっぱいありますが、結局は、

シンプルイズベスト

全体的には、250行くらいありますが、肝の部分は、50行程度です。
それほどでも無かったですね。
あとは、これをメインの画面に入れていけばいいはず。

いや、慣れてるから簡単にできるんでしょと、、、まぁそれもあります。

ありますけど、正直、私はハードウェア系のプログラミングは、あんまりやったことありませんので、決して得意分野では無いです。

今回は、歩数計がメインの機能では無いのでざっくりとした実装でも構わないでしょう。
まだ、他にやることいっぱいあります。

作り始めで大切なのは、全体の進捗率を上げるということです。

やったとりあえず、できた、いける!

この感覚にいかに早くたどり着けるかが大切ですね。

今日は、ちょっと整理されてなくて読みにくい文章だとは思いますが、
続きを早く作りたくてしょうがないモードに入っているのです。

早く動く状態のものを作ってみんなに見せたい!
(そしてすごいって言われたい!)

なので、続けて頑張りますよっと

0 件のコメント:

コメントを投稿