おみくじ占いアプリ - Monaca Docs https://docs.monaca.io/ja/sampleapp/samples/omikuji/
このアプリを作るのがゴールです。
上記のようにMonacaにはすでにおみくじアプリのテンプレートがありますが、今回は、これを空のプロジェクトから順に作っていきます。 プロジェクトの新規作成から「No Framework」→「最小限のテンプレート」を選んでプロジェクトを作成してください。
プロジェクトを開くと、下記のように、最小限のコードが書かれたプロジェクトとなっています。ここにアプリケーションのためのコードを書いていきます。
まず、アプリで使う画像を用意しましょう。
下記にアプリ内で使う7ファイルをアップしてあるので、ダウンロードしておいてください。zipファイルを展開すると7つの画像があります。
https://s3-ap-northeast-1.amazonaws.com/tohokutechdojo-koriyama/monaca-omikuji/omikuji-images.zip
画像はwww
フォルダの下のimages
フォルダの中に置きたいので、まずimages
フォルダを作ります。
下記の画像のようにwww
フォルダのところで右クリックして、「新規フォルダー」を選び、「images」というフォルダを作ってください。
フォルダができたら、そのimages
フォルダの上で右クリックして、アップロードを選択して、画像をアップロードします。
下記のようになれば画像のアップロードは完了です。
bodyタグ内に下記のコードを入力していきます。
headタグ内のscriptタグ内に下記のコードを入力していきます。
ここまででアプリは最低限動作します。画面上部の「保存」を押して、「プレビュー」を押し、右のプレビューウィンドウからアプリの動作確認をしてみてください。スマホの実機がある人は、実機デバッグもしてみてください。
最後にCSSを書いて、見た目の整頓を行います。さきほど書いたscriptのすぐ下に、下記のように入力していきます。
以上でアプリのコーディングはいったん完成し、冒頭で見たサンプルアプリとほぼ同じ状態になっています。 ただし、このサンプルアプリには、index.htmlというHTMLファイルの中に、JavaScriptもCSSも記述してしまっているという、ややまずい点があるので、 改善しましょう。
まず、cssの外部ファイルはstyle.cssというものがあるので、それを使います。styleタグ内に記載した内容を、style.css内にカット&ペーストしてください。
画像のパス(そのコードが記述されたファイルから見たときの画像ファイルの位置が変わっているので、2行目の
background-image: url("images/omikuji-bg.png");
を
background-image: url("../images/omikuji-bg.png");
に修正します。
下記のようになればOKです。
次にJavaScriptも外部ファイルに移しましょう。
wwwフォルダの下に、jsフォルダを作り、その中で新規ファイルを作成して、omikuji.jsと名前をつけます。
scriptタグ内の中身をカット&ペーストします。
このアプリでは、「はじめる」を押したときにおみくじを発動する、というJavaScriptイベントを登録していますが、現時点ではその指定はonClick='omikuji'
というようにHTMLファイルに記述されてしまっています。
このアプリではこのクリックイベント1つしかないので問題になりませんが、たくさんボタンがあってそれを1つ1つのボタンに記述していると、コードが込み入ってきてよくわからなくなってしまいます。
HTMLファイルは構造だけを記述するべきなので、このコードもさきほど作ったomikuji.js
のほうに移動してみましょう。
まずHTMLファイルのほうから、onClickイベント部分の記述は削除します。
そして、omikuji.js
のほうに以下の4行を追加します。
これでもう一度動作確認を行ってみましょう。さきほどと同じようにおみくじアプリが動作しました。
なお、この4行部分は、下記のように書いてもほぼ同じように動作します。
window.onload = function() {
var button = document.getElementById("button");
button.addEventListener("click", omikuji, false);
}
どちらを記述してもOKですが、document.addEventListener('DOMContentLoaded'
を使うほうが、どちらかというと望ましいようです。
このように、ソースコードの移動や整理を行って、よりよいコードに直す作業をリファクタリングといいます。
- 「吉」「凶」の画像を用意しました。「平」を消して、「大吉」「中吉」「吉」「凶」の4つからどれかが出るようにアプリを修正してみてください。
https://s3-ap-northeast-1.amazonaws.com/tohokutechdojo-koriyama/monaca-omikuji/omikuji-kichi.png
https://s3-ap-northeast-1.amazonaws.com/tohokutechdojo-koriyama/monaca-omikuji/omikuji-kyou.png