みなさんこんにちは!
本記事は以下記事の続きです。

本日は「ぷよプロ」シリーズの第3回、アプリ開発編①をやっていきましょう!
目次
はじめに

アプリを開発するのはいいんですけど、今からやるのって1行1行コードを説明していく感じですか??全部で1,000行くらいあったはずだから、とても大変そう。。。

これから説明しようと思っているのは「アプリの全体感」についてだよ!プログラミング学習で陥りがちなのか「木を見て森を見ず」状態なんだ
たしかに1行1行が理解できないとしっかり理解する事はできないかもしれないけど、その逆は言えないんだ
つまり、1行1行の意味を追って行っても、結局意味がない、よくわからない状態になると言う事だよ
だから今回は細かいことは気にせず、アプリの全体感を見ていこうね
アプリのざっくりした作りの考え方
大規模なアプリを作るときに一番大事なのが実は、アプリの思想です。どのようなアプリなのか、どのように使われるのか、そう言った「思想」をしっかりと定義して、意識しながらアプリ開発ができるかによってアプリの品質が大きく変わってきます。
アプリは1ファイルで良い?
基本的にプログラミングのコードは上から下に順に処理されます。つまり、1ファイルに上からコードを書いていけばアプリが作れることになります。
ただ、アプリ開発で利用するコードは分割されることがほとんどです。さらに分割は意味のある単位で行われます。理由は次の通りです。
- 人間が理解しやすいから
- ソースコードの保守性を保つことができるから
- 大人数での開発で分割しやすいから
例に漏れず、ぷよぷよのコードについてもファイル分割がされています。コードの構成についてまずは見ていきましょう。
ぷよぷよプログラミングのコード構成
projectフォルダの直下には以下のファイル・フォルダが配置されています。
- .monaca(フォルダ)
- resフォルダ(フォルダ)
- ★www(フォルダ)
- .gitignore(ファイル)
- .monacaignore(ファイル)
- config.xml(ファイル)
- LICENCE(ファイル)
- package-lock.json(ファイル)
- ★package.json(ファイル)
色々配置されていますが、重要なのは★のついているファイル/フォルダです。(それ以外はMonaca IDEを利用する際に必要なファイルで、気にしなくてよいです。)
package.json
★package.json(ファイル)は前回軽く説明しましたが、ざっくりいうとこのぷよぷよプログラミングアプリを定義したファイルのことです。
{
"name": "monaca-template-minimum",
"version": "2.0.7",
"displayName": "Monaca Template Minimum",
~~~~~~~~
"scripts": {
"monaca:preview": "npm run dev",
"dev": "browser-sync start -s www/ --watch --port 8080 --ui-port 8081"
},
~~~~~~~~
}
package.jsonはアプリの名前(name)・バージョン(version)、表示名(displayName)などの基本情報を定義しています。また、”scripts”には、前回の記事でインストールしたnpm(node package manager)で利用可能なコマンドが記載されています。
wwwフォルダ
アプリで重要なファイルはすべてここに配置されています。wwwフォルダの構成は次のようになっています。
- components
- css
- ★style.css
- img
- src
- ★config.js
- ★game.js
- ★player.js
- ★puyoimage.js
- ★score.js
- ★stage.js
- ★index.html
- manifest.json
- SEGA_Licence.txt
★がついているファイルが今回重要なファイルです。(今回、プログラミングしていくファイルです。)実際に開いてみるとすべてのファイルが空になっていることがわかると思います。(style.cssだけ記載が少しされています。)
今回のアプリもそうですが、皆さんが利用するブラウザ(ChromeやSafariなどのインターネットを使うときに利用するアプリのこと)で読み込むことができるのは、HTML、CSS、JavaScriptのみなんです。
そして、CSSとJavaScriptは直接読み込まれるわけではなく、HTMLから読み込まれます。

そのため、今回開発するアプリでは、次の流れで動いていきます。
- ブラウザから
index.html
を読み込む。 index.html
からstyle.css
を読み込む。index.html
からconfig.js
などのjavascriptファイルを読み込む。
どうでしょう?ざっくりイメージはついてきたでしょうか?
srcフォルダ
最後に今回メインのJavaScriptファイルの細かい関係性や役割を見ていきましょう。
ファイル名 | 説明 |
---|---|
config.js | 設定を記載しているファイル |
game.js | ほかのJavaScriptファイルを呼び出すファイル。最初にこのファイルから起動します。 |
player.js | プレイヤーからの操作(キーボード入力など)を定義するファイル。 |
puyoimage.js | ぷよの表示を調整するファイル。 |
score.js | ゲームのスコアを計算するファイル。 |
stage.js | ゲームのステージ全体を管理するファイル。 |
関係性は大まかには次のようになっています。

おわりに
いかがでしたでしょうか?アプリの全体感はつかめましたでしょうか???
次回から実際のアプリ開発を見ていこうと思いますが、「木を見て森を見ず」状態にならないように、今回の内容は常に意識できると、「今書いている処理は~だから、~ファイルに書いているんだな」と役割を意識しながら、一歩引いて開発できるようになります。
このように全体感をつかむスキルは、アプリを開発のみならず、現場で働く際に一番重要なスキルです。実際のコードを見ていくとさらにこの役割がわかるようになるので、頑張っていきましょう!