42
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

9割のエンジニア未経験者がつまずく『最初の壁』 。それでもアプリを作りたい #3

42
Last updated at Posted at 2026-06-15

はじめまして。株式会社PRUMでエンジニアをしている人見です。

日々、プログラミング学習や実務の中で、つまずきやすいポイントや、
仕事で起きやすい“ズレ”について整理して発信しています。
誰かの助けになれば幸いです。

9割のエンジニア未経験者がつまずく『最初の壁』 それでもアプリを作りたい -ボタンの裏側で起きていること-

image.png

はじめに

前回は、Google Apps Script(GAS)を使って出欠確認アプリを作りました。

名前を入力する → 「参加」・「不参加」を押す → 結果が保存される → 一覧が表示される

ここで少し考えてみてください。私たちは、入力してボタンを押したら、
結果が保存されたように見えます。でも実は、アプリとのやり取りは
ボタンを押す前から始まっています。

今回は、前回作ったアプリを題材に、

アプリの裏側では何が起きているのか

を少しだけのぞいてみましょう。コードをたくさん書く回ではありません。
「ボタンを押したら保存される」の裏側で、画面とアプリがどんなやり取りを
しているのかを見ていきます。

実は、URLを開いた瞬間から会話している

前回作ったアプリって、最初に何をしましたか?

参加ボタンを押した?

実は違います。その前に、アプリのURLを開いています。
当たり前すぎて意識しませんが、ここで最初のやり取りが発生しています。

利用者は、アプリに対して、

画面を表示してください

とお願いしています。するとGASは、

はい、どうぞ

と画面を返しています。
イメージとしてはこんな感じです。
image.png

私たちは何気なくURLを開いていますが、実はこの時点で、
アプリとの会話が始まっているんです。

Webアプリは「お願い」と「お返事」でできている

Webの世界では、この「お願い」と「お返事」に名前があります。

お願い → Request(リクエスト)
お返事 → Response(レスポンス)

なんだか難しそうな言葉ですが、やっていることは会話です。
例えばレストランなら、

ハンバーグください
↓
承知しました
↓
お待たせしました

ですよね。アプリも同じです。
URLを開いたときは、

画面をください
↓
画面を返します

という会話をしています。そして、ボタンを押したときは、
また別のお願いをしています。

参加ボタンを押したときも会話している

前回の出欠確認アプリでは、参加ボタンを押した瞬間にも、
もう一度会話が発生しています。今度のお願いは、
画面を表示してほしいというお願いではありません。

「ひとみん」さんが「参加します」をクリックしました。
この内容で保存してください。

というお願いです。それに対してGASは、

保存しました。
一覧を更新します。

とお返事します。

でも実際に裏側では以下の図のような動きをしています。
これが、Webアプリの基本的な動きです。

image.png

ボタンが保存しているわけではない

ここで少し視点を変えてみます。保存しているのは、参加ボタンでしょうか。
もちろん違います。ボタンは、あくまできっかけです。

ボタンがやっているのは、

この内容で保存してください

とお願いすることです。実際に保存しているのは、GAS側のプログラムです。

画面
↓
Request
↓
GAS
↓
保存処理
↓
Response
↓
画面

つまり、

ボタンを押したから保存された

というより、

ボタンを押したことで、GASに保存のお願いが送られた

という方が近いです。

ここが分かると、アプリの見え方が少し変わります。
画面は利用者が操作する場所。GASは裏側で処理する場所。
スプレッドシートはデータを保存する場所。それぞれに役割があります。

リクエストには、データが入っている

では、参加ボタンを押したとき、GASには何が送られているのでしょうか。

例えば、画面で次のように入力したとします。

名前:ひとみん
回答:参加

この状態で参加ボタンを押すと、GASにはざっくり言うと、
こんな内容が届きます。

名前は「ひとみん」です。
回答は「参加」です。
この内容を保存してください。

つまりリクエストは、ただの合図ではありません。
必要なデータを持って、裏側の処理へ渡しに行っています。

そのデータを受け取ったGASが、スプレッドシートに書き込みます。
だから、あとから一覧で確認できるようになります。

今回はスプレッドシートに保存している

前回の出欠確認アプリでは、保存先としてスプレッドシートを使いました。

ブラウザ
↓
GAS
↓
スプレッドシート

利用者が画面から入力する。GASがその内容を受け取る。
スプレッドシートに保存する。保存した結果を画面に返す。

流れだけを見ると、とてもシンプルです。でも実は、
かなりWebアプリらしい動きをしています。

本格的なWebアプリでは、データベースに保存する

一般的なWebアプリでは、保存先にスプレッドシートではなく、
データベースを使うことが多いです。

例えば、

  • LINEのメッセージ
  • Amazonの注文履歴
  • Instagramの投稿

こういった情報は、データベースへ保存されています。
イメージとしては、こんな構成です。
image.png

並べてみると、役割はかなり似ています。

役割 本格的なWebアプリ 今回のGASアプリ
画面を表示する ブラウザ ブラウザ
処理する アプリ側のプログラム GAS
保存する データベース スプレッドシート

もちろん、本格的なWebアプリはもっと複雑です。セキュリティ、
権限、データ設計、サーバー構成など、考えることはたくさんあります。

ただ、最初に理解したい大きな流れは同じです。

入力する
↓
リクエストを送る
↓
裏側で処理する
↓
保存する
↓
レスポンスを返す
↓
画面に表示する

今回のアプリは、本来データベースが担当する保存先を、
スプレッドシートで代用しています。だから環境構築をしなくても、
Webアプリの基本的な流れを体験できます。

じゃあ、スプレッドシートを直接編集すればよくない?

ここで、こう思う人もいるかもしれません。

だったら、最初からスプレッドシートをみんなで編集すればよくない?

確かに、それで足りる場面もあります。でも実際に運用してみると、
意外と小さな困りごとが出てきます。

  • どこに入力すればいいか分からない
  • 入力形式が人によってバラバラになる
  • 間違えて他の人の行を消してしまう
  • スマホだと操作しづらい
  • 欲しい情報がぱっと見つからない

スプレッドシートは便利です。でも、利用者全員に直接編集してもらうには、
少し扱いづらい場面もあります。

そこで、入力する人には必要な画面だけを見せます。

名前を入力する

[参加]
[不参加]

利用者はこれだけ見ればいい。裏側では、GASがスプレッドシートに
整理して保存してくれる。管理する人は、一覧で確認できる。

これだけでも、かなり便利になります。

小さくても、ちゃんとアプリになっている

今回作った出欠確認アプリは、大きなサービスではありません。
でも、次のような流れがあります。

URLを開く
↓
画面が表示される
↓
入力する
↓
ボタンを押す
↓
裏側で処理する
↓
保存する
↓
結果を返す

これは、Webアプリの基本的な考え方です。

もちろん、しっかりしたサービスを作るなら、もっと丁寧な設計が必要です。
でも最初から全部を理解しようとすると、なかなか手が動きません。

まずは、

画面と裏側が会話している
入力したデータが裏側に渡る
裏側の処理が保存している

この感覚を持てるだけでも、アプリ開発はかなり身近になります。

おわりに

最初は、

ボタンを押したら保存される

と思っていました。でも実際には、その前から会話は始まっています。

URLを開く。画面を表示する。ボタンを押す。データを送る。
GASが処理する。スプレッドシートへ保存する。結果を返す。

普段は見えないだけで、アプリの裏側では、
こうしたやり取りが繰り返されています。

今回の出欠確認アプリは、とても小さなアプリです。
でも、誰かの入力を受け取り、裏側で処理し、保存して、
結果を返しています。

それだけでも、立派に「誰かの作業を楽にする仕組み」になっています。
いきなり大きなアプリを作る必要はありません。

まずは、身近な人のちょっとした困りごとを、
少しだけ楽にするところからで十分です。無料で、環境構築も少なく、
ここまで体験できるのはGASの良いところだと思います。

次回は、この出欠確認アプリをもう少し実用的にするために、
「使えるアプリ」に近づけるには何が必要かを考えていきます。


PRUMのエンジニアの95%以上は未経験からの採用です。
もし弊社にご興味あれば覗いてみてくださいね。

コーポレートサイト

42
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?