今回アプリの制作が想像以上に時間がかかってしまったことに対しての自己反省をして記事を書いています。
アプリが動かない時に、参考にして頂けましたら幸いです。
基本的な確認
まず、一番有り得るのが、『;』セミコロンのつけ忘れ。
それから、変なところにスペースが入っている。
全角と半角の間違い。
ディスプレイが小さいなどソースコードが読みづらい時は、IDEやテキストエディタの検索機能を使うと良いです。
;をキーワードに検索して色が変わらない;がある時は、それは全角の;(セミコロン)です。
ダブルコーテーションが全角で誤って入力してしまうこともあると思います。
ソースコードを見るときのポイント
ただ単に、ソースを眺めていても、時間の無駄です。
ソースを見るときは、見本になる比較対象のソースを用意すると良いです。
今回私は、Cordovaを使ってアプリを作っていました。
煮詰まったので、Monacaにログインして、テンプレートを比較して見てました。
また、センサーの使い方も、サンプルのコードを見て再確認していました。
ネットが思うように使えないので、ちゃんと普通の速度があるネットに接続できる場所に行ってMonacaのIDEに接続したかったので、都合をつけるまでに時間がかかってしまいました。
MonacaのIDEのログの表示は、とても見やすかったです。
デバッグも、Monacaで行ってみました。
Monacaは、サードパーティー製のプラグインを利用する時は、有料プランでないと利用できないです。
そのため、今回は、動くところまでデバッグしました。
そして、最後にVisualstudioで、実機を接続してデバッグしました。
思い込みが墓穴を掘る
ソースを見直す時に、思い込みがあるとミスを見逃します。
今回も、発見が遅れてしまい時間を無駄にしてしまいました。
JavaScriptのイベントに注意
デバイスの準備ができたり、onsenUIの準備ができたりした時に発火するイベントが有ります。
でも、イベント発生をなんで「発火」と表現するのでしょうね。
トリガーとか、発生ではダメなのですかね。
今回、デバイスのセンサーが準備できたイベントを利用するイベントを利用していなかったことが、最大の失敗です。
先に書いた記事の通り、このコードを付け加えたら、音声合成のTTSのプラグインも問題なく動きました。
イベントを理解していなかったために、無駄に時間を費やしてしまいました。
JavaScriptで変数などの初期設定のコード以外は、イベントで動くように関数を使った方が間違い無いです。
そして、自分が使いたい前に起きるイベントを拾うように関数を使うと良いと思います。
イベントを拾う関数の中身は、空でも良いようです。
イベントを使うか、使わないかでアプリの動作が変わってしまいます。
まとめ
まだアプリが完成したわけでは無いですが、意図した通りにアプリが動くようになったので、反省の思いが他のアプリ開発を志す人の役に立てばと思い記事を書きました。
ネットには、プログラミングの相談や質問ができるサイトが複数あります。
私も複数参加していて、今回も利用しました。
でも、思うように回答を頂けない場合もあり、自分で解決策を見つけ出すということになりました。
今回の時間が無駄にかかってしまったことは、JavaScriptのコードを書き慣れている人にとっては基本だと思います。
あまりに基本的な質問だったから、回答を得られなかったかもしれないです。
私は、限られた環境でプログラミングしているので、余計な手間をかけたり思わぬ失敗をしたりすることもあります。
こうした経験を、私が参加しているサイトで質問している人に対して回答ができるように活かして行きたいと思っています。