LESSON 1

ITエンジニアは何を作る人?

ひとくちに「ITエンジニア」「プログラマー」と言っても、作っているものは人によって大きく違います。 このレッスンでは、そのソフトウェアが「どこで動くか」という視点で、作るものの種類を整理します。

1. 全体マップ:「どこで動くか」で4つに分ける

ソフトウェア(アプリ)は、動く場所によって大きく次の4種類に分けられます。 動く場所が違うと、使うプログラミング言語・開発ツール・届け方(配布方法)・気をつけることが変わります。

ポイント: 「スマホで使う=モバイルアプリ」とは限りません。スマホのブラウザで開くネットショップは Webアプリ です。 「何で見るか」ではなく、プログラムがどこにインストールされ、どこで動いているかで考えましょう。

2. Webアプリ

ブラウザでURLを開くと使えるアプリです。ユーザーはインストール不要で、パソコンでもスマホでも同じものを使えます。 作り手は大きく「画面側」と「裏側」に分かれます。

  • 身近な例:ネットショップ、ネットバンキング、Gmail、YouTube(ブラウザ版)、勤怠管理・経費精算などの社内システム

フロントエンド(画面側)

ユーザーが見て操作する画面を作ります。ボタン・入力フォーム・レイアウト・見やすさや使いやすさを担当。

  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • React
  • Vue.js

バックエンド(裏側・サーバー)

ログイン、データの保存・検索、計算、メール送信など、画面の裏で動く処理を作ります。

  • Java
  • PHP
  • Python
  • Ruby
  • Go
  • Node.js
  • C#
  • SQL

インフラ(土台)

アプリを動かすサーバー・ネットワーク・データベースを用意し、止まらないように運用します。最近はクラウドが主流です。

  • AWS
  • Azure
  • Google Cloud
  • Linux
  • MySQL
  • PostgreSQL

Webアプリの特徴

  • 更新が簡単:サーバー側を更新すれば、全ユーザーに即座に反映される(ユーザーのアップデート作業は不要)。
  • どの端末でも使える:ブラウザさえあれば OS を問わない。
  • 苦手なこと:ネットにつながっていないと基本的に使えない。カメラやセンサーなど端末の機能は使える範囲が限られる。

3. モバイルアプリ(iOS / Android)

スマートフォンやタブレットにインストールして使うアプリです。スマホの OS(基本ソフト)には iOS(Apple の iPhone / iPad)とAndroid(Google ほか各社のスマホ)の2つがあり、 原則としてそれぞれ別々に作る必要があります。

  • 身近な例:LINE、各種ゲームアプリ、銀行アプリ、交通系アプリ、フードデリバリーアプリ

iOSアプリ

iPhone / iPad 向け。

  • Swift
  • SwiftUI
  • Xcode
開発に必要なもの
Mac(Xcode は Mac でしか動かない)
配布方法
App Store(Apple の審査あり)

Androidアプリ

Android スマホ / タブレット向け。メーカー・機種が多いのが特徴。

  • Kotlin
  • Java
  • Android Studio
開発に必要なもの
Windows / Mac / Linux いずれでも可
配布方法
Google Play(審査あり)

クロスプラットフォーム

1つのコードから iOS と Android の両方を作る方法。開発コストを抑えられる。

  • Flutter(Dart)
  • React Native
注意点
OS 固有の細かい機能は個別対応が必要になることもある

モバイルアプリの特徴

  • 端末の機能をフル活用:カメラ・GPS・プッシュ通知・Bluetooth・生体認証などが使える。
  • オフラインでも動かせる:端末にプログラムが入っているため。
  • リリースに時間がかかる:ストアの審査があり、ユーザーにアップデートしてもらう必要がある。
  • 裏側は Web と同じ:データの保存やログインは、多くの場合 Web と同じようなサーバー(バックエンド)とやりとりしている。

4. 組み込みアプリ(組み込みソフトウェア)

家電・自動車・医療機器・工場の機械など、特定のハードウェアの中に組み込まれて動くソフトウェアです。 ユーザーからは見えにくいですが、世の中で最も数多く動いているソフトウェアの一つです。 機器そのものを動かす基本的なプログラムは「ファームウェア」とも呼ばれます。

  • 身近な例:炊飯器・エアコン・洗濯機の制御、カーナビやエンジン制御、デジカメ、自動販売機、ATM、工場のロボット、スマートメーター

マイコン制御

小さなコンピュータ(マイコン)で、センサーの値を読んだりモーターを動かしたりします。メモリや処理能力がとても限られた環境です。

  • C言語
  • C++
  • RTOS

組み込み Linux

カーナビ・ネットワーク機器・高機能な家電など、画面や通信を持つ比較的大きな機器で使われます。

  • C / C++
  • Linux
  • Python

IoT / M2M

機器をネットワークにつなぎ、データをクラウドへ送ったり遠隔で操作したりします。機器同士が人を介さず通信することを M2M(Machine to Machine)と呼びます。

  • C / C++
  • 通信プロトコル
  • クラウド連携

組み込みアプリの特徴

  • ハードウェアの知識が必要:電子回路・センサー・通信の仕組みを理解して作る。
  • リソースが限られる:少ないメモリ・低い処理能力・省電力の中で動かす工夫が必要。
  • リアルタイム性:「ブレーキを踏んだら○ミリ秒以内に反応」のように、決められた時間内に確実に動くことが求められる。
  • 品質への要求が高い:出荷後の修正が難しく、不具合は製品回収や事故につながることもあるため、テストが特に重要。

5. デスクトップアプリ

パソコン(Windows / Mac)にインストールして使うアプリです。最近は Web アプリに置き換わるものも増えていますが、 高い処理性能が必要なソフトや、社内の業務端末で使うソフトでは今も多く使われています。

  • 身近な例:Excel・Word、Teams・Zoom(PC版)、Photoshop、会計ソフト、工場や店舗の専用端末のソフト
  • C#(.NET)
  • C++
  • Swift(Mac)
  • Electron(JavaScript)

6. 比較表

種類 動く場所 主な言語・技術 ユーザーへの届け方 更新のしやすさ 身近な例
Webアプリ ブラウザ + サーバー HTML / CSS / JavaScript、Java、PHP、Python など URLを開くだけ ◎ サーバー更新で即反映 ネットショップ、社内システム
モバイルアプリ スマホ・タブレット(iOS / Android) Swift(iOS)、Kotlin(Android)、Flutter App Store / Google Play ○ ストア審査 + ユーザーのアップデート LINE、銀行アプリ、ゲーム
組み込みアプリ 家電・機械などのハードウェア C、C++、組み込み Linux 製品に搭載して出荷 △ ファームウェア更新が必要(できない機器も) 炊飯器、自動車、IoT機器
デスクトップアプリ パソコン(Windows / Mac) C#、C++、Electron インストーラー・ストア ○ ユーザーのアップデート Excel、Zoom、会計ソフト

7. 実際のサービスは「組み合わせ」でできている

世の中のサービスの多くは、ここまでの種類を組み合わせて作られています。 例として、フードデリバリーサービスを分解してみましょう。

モバイルアプリ注文する人のアプリ
(iOS / Android)
モバイルアプリ配達員のアプリ
⇄
Web(バックエンド)注文・決済・配達員の割り当てを処理するサーバー
⇄
Webアプリお店向けの管理画面
運営会社の社内管理画面
組み込みお店の注文受付端末・レシートプリンター
1つのサービスでも、モバイル・Web・組み込みのエンジニアがそれぞれ担当して協力しています。
弊社の場合: 弊社のプロジェクトも、機器とつながる M2M(組み込み・IoT 側)、AWS 上のバックエンド、 ブラウザで操作する Web フロントエンドといった複数の種類を組み合わせて作られています。

8. 確認クイズ

次のソフトウェアはどの種類でしょう? 選択肢をクリックしてください。

Q1. スマホの Safari で開いて使うネットショップ

Q2. 炊飯器の「炊き上がりまであと○分」の計算と火加減の制御

Q3. App Store からダウンロードした家計簿アプリ

Q4. 工場の機械に取り付けて、温度データを自動でクラウドへ送る装置のソフト

Q5. パソコンにインストールして使う Excel

まとめ