コピペでうまく行かないところ
作りかけ
http://wantech.ikuto.com/software/CameraDS.apk
アプリ名を変えようとしてるんだが、やり方がわからずエラーで八方ふさがり。
今のところ本を買って勉強する気はなくて、わからないことはネットで調べるつもりでいるが、
なんせJavaは昔からあるし、Androidも成熟してるので、ググればサンプルコードがいっぱい出てきて、
それをコピペしてるだけでも望み通りのアプリが出来ちゃうわけだ。
格好いいインターフェイスを作ろうとすると画像とかを用意しなきゃいけないので面倒だが、
機能のみを追求するなら、やりたい事は全てコピペで実現できそうな感じだ。
つーわけで、コピペでカメラアプリを作り、コピペで加速度センサーを搭載し、
組み合わせて手ぶれ防止カメラを作ってるところだが、サンプルコードだけではうまく行ってない事もある。
それがStreakだからなのか、カスタムROMだからなのか、はたまたサンプルが古すぎて仕様変更されたか、
一つ一つの原因はわからないが、うまく行かない所を直しつつやっている。
最初に詰まったのは、プレビュー画面に関する数値を変更すると落ちるって所。
いろんなサイトのサンプルで、サーフィスに変更があったらプレビューに反映させるってコードがあるが、
うちではこれをやると落ちる。
写真の解像度やJpeg品質の変更は出来るのに、プレビューのサイズとフォーマットをいじると落ちる。
そこをいじらないと動作しないのかと言えば、別にいじらなくても動いてるわけで、
いじると何が変わるのか、いじることが出来ないから想像出来ない。
おそらく多くの機種に対応しようとすると必要になるんだろうが、
手元の機械で動かすってだけなら、ここはただコメントアウトするだけで無視できそう。
あと一番困るのは、システムのカメラ機能ごとフリーズしちゃうこと。
これが発生すると自作アプリのみならず、他のアプリからもカメラが使えなくなってしまう。
そしたら本体を再起動させなきゃ復活しないのでうっとうしい。
アプリが単体でフリーズするなら、単に不安定なだけで済まされるが、
他のアプリの動作に迷惑をかけるってのは、あたしに言わせたら行儀が悪いって事になる。
行儀が悪いからアップルを嫌ってるあたしとしては、こう言う状態は許せない。
どうも調子に乗って連射してるときほど固まりやすいので、連射できないようにしてみたり、
オートフォーカスのサンプルコードに納得出来ない一行があるので削除してみたり、
いろいろやってるが解決されたかどうかは未だ不明。
なんせ、ダウンロードしたサンプルのカメラアプリでも固まるので、何が悪いのかわからない。
あとは性格上というか、オブジェクト指向の経験が長いと、いろいろ機能ごとに切り分けたくなる。
たとえば加速度センサーは、ネットのサンプルではアプリが起動したら同時に動くようになってるが、
カメラアプリでは手ぶれ認識中だけ動けば良いんだから、そこだけ切り分けてスッキリさせたいのだが、
試しに切り分けて必要なときだけインスタンスを作ろうとしたらうまく行かなかった。
やり方はあるんだろうが、アプリのメインのクラス以外にセンサーを実装する方法がまだわからない。
これはセンサーに限った事ではなく、ネットで見つけられるサンプルというのは、
目的のことをやらせるための最小コードになってるので、後に肥大化することを考慮した作りになってない。
あたしはアプリがある程度肥大化することを想定し、早い段階で各機能を切り分けるのが好みで、
ソースコードがなるべく縦長にならず、いっぱいファイルを持ってるような作りにしたい。
それが出来るほど、まだJavaにもAndroidにも詳しくなく、
C♯と似てるからって同じやり方をしてるとうまく行かないんだな。
続々と機能追加したいところだが、それより既に実装した部分をより安定させ、
ソースコードをより見やすい状態にしたい。