TXTどうなってるんだろ。文字化け解読ツール「もじばけらった」は文字化けがどの様な変換で起きているかを試すツールを利用できるwebページです。使い方は上画像のまま。入力してばけらったすると下画像の様にタブと文字列が出ます。内タブの文字コードで書かれた文字列が外タブの文字コードでエンコードされると入力された文字列になると示してくれます。いろいろな文字コードの組み合わせで逆変換を試してくれるわけですね。下画像ならSJISっぽい文字コードで書かれたdummy0日本�がUTF-8として見られた結果、dummy0譌・譛ャ隱が出力されたと予想できるわけです。変換なりなんなりが原因となることもあります。単純に解決することは稀ですが、大体大きなヒントになってくれます。このサービスは基本的に入力された文字列をphpのmb_convert_encoding($入力文字列,$外タブの文字コード,$内タブの文字コード);で変換してvar_dump()して出力しています。文字化けは誤った変換によるものでその変換は可逆的です。そのため文字化け問題は問題の再現がそのまま解決につながりやすいです。文字化け問題の解決に詰まった時は、もじばけらったの手法を参考にして問題を再現するのも一つの手です。versionの別の対策について書きます。(トップが象なのはgradle関係なので)前回、上のエラーに遭遇した時は、「以下のようにbuild.gradle(android側)で、リポジトリを追加するコードを書き加えてあげましょう。}それでもまだエラーがでてくるよという方のためにもう一つの対策法も載せておきます。前回と同じandroid側のgradleファイルを開いて、dependencies内のclasspathに着目します。そこに書いてあるbuild.gradle〇.〇.〇という数字がありますが、これはgradleのバージョンを意味しています。何もいじらない段階でエラーが起きているということは、今使っているgradleのバージョンが古い若しくは存在しないバージョンを使っているために引き起こしていると考えられます。正常にする方法ですがbuild.gradle〇.〇.〇の上にカーソルを合わせると豆電球アイコンがでます。スクショを取り忘れてしまったので詳細を載せることはできませんが、豆電球の説明に従って適切なバージョンにアップグレードしてください。ちなみにCordovaLib側のバージョンはandroid側と合わせなくてもいいみたいです。gradleのエラーは一回解決しても次々新しいエラーが出て訳の分からないことになるのであまり触りたくはないのですが、今回のようにバージョンが古かったりプラグインの設定を見直したいという方は慎重にいじってください。今回はCordovaで開発しているアプリに、QRコードリーダーの機能を実装する方法について。コードがかなり分かりやすかったのでおすすめのプラグインです。使用したプラグインは「phonegap-plugin-barcodescanner」。いう名前が付いていますが、Cordovaでも問題なく使えます。GitHubはこちらから。PhoneGaphttps://github.com/phonegap/phonegap-plugin-barcodescanner早速実装方法ですが、まず下記のコマンドでプラグインを追加します。下記の1行が追加されていなかったら追加してください。Description」の項目を追加しないと、アプリからカメラが起動できないので、こちらも追加します。設定はこのくらいです。あとは、下記のコードを記述するだけです。});上記のコードが実行されると、自動的にカメラを使用するかを尋ねるダイアログが表示され、許可を選択すると、画面内に四角形が表示されているQRコードリーダーが起動します。カメラを適当に作成したQRコードにかざしたところ、無事コード内の情報を取得できました。ちなみに、試しに作ったQRコードは、本記事のアイキャッチ画像でも使用しています。https://cpoint-lab.co.jp/です。適当なコードが見つからない場合は、是非ご利用ください。以上、CordovaアプリでQRコードリーダー機能を実装する方法でした。最初はカメラを扱うということで、難しいのでは...と思っていましたが、実装が楽なプラグインのおかげでかなり簡単でした!もし似たようなことを行いたいとお考えでしたら、是非ご参考にしてください。.done();変更点は、49行目の下記の記述を追加した点です。.done();様々なサンプルコードを見比べたところ、ここの記述が不足していました。コードを追加したところ、問題なくビーコンの信号を取得できました!というわけで、ただの私のポカミスだったわけです。...凡ミスで恥ずかしい限りです。今後は気を付けなければいけませんね。いうことで、以上、iBeaconを扱うための「cordova-plugin-ibeacon」が動作しない時の対処法でした。可能であれば、きちんと動作するサンプルコードを改変してアプリ開発を行った方が安全かもしれません。構造化プログラミングのさわり構造化プログラミングはエドガー・ダイクストラらによって唱えられたプログラミング手法です。デザインパターン、オブジェクト指向のような近年も使われるプログラミング手法のひとつかふたつ前ぐらいの少し昔の手法です。昔といえど構造化プログラミングの発展として近年のプログラミング手法があります。構造化プログラミングは基礎的でわかりやすいです。構造化プログラミングは大きなプログラムを書いた時点でプログラムの正しさを証明することを目的としています。ここでいう大きな、とは達成するべき課題や目的が複雑であるということです。複雑すぎるプログラムの挙動を把握することは困難です。構造化プログラミングにおいて、プログラムは部品の集合と例えられます。今のプログラミング言語における関数なりクラスなりがこの部品の扱いです。構造化プログラミングでは人間が正しいと確信できる範囲の部品を積み上げていくことによって正しいプログラムを作成します。下はwikipediaから引用した箇条書きです。ここから部品のことをブロックと呼称します。数え上げ推論と数学的帰納法によって正しいとされたプログラムのブロックに名前を付け抽象化する。抽象化されたブロックを用いてまたプログラミングを行い、できあがったプログラムのブロックを数え上げ推論と数学的帰納法によって正しいと証明して、その正しいとされたブロックを抽象化して、...と繰り返して最後に大きなプログラムを完成させます。この手法は一つ一つのプログラムのブロックが正しいとわかるぐらい、理解しやすくなければ実現できません。この辺りが今も読みやすいコードの書き方が大事にされる理由の一つではないでしょうか。Playerに頻繁にクラッシュする不具合が発生。現在修正済みで公開待ち状態。