🔰はじめに
「Javaの文法はだいたい分かった。クラスも、継承も、多少は分かってきた。さて、そろそろアプリでも作ってみるかァ😎」
そんなアナタが次にぶつかる壁、それが──
「で、どうやってアプリ作るの?🫠」問題。
Paizaの問題は解けるのに、いざアプリ開発となると何から手を付けたらいいか分からない。「初心者向け」と銘打ったブログなどを調べても「嘘つき!全然分からないじゃないか!」となる。共感の嵐。
かく言う私も先日友人と簡単なアプリの共同開発を始めることになり、AIにすがり付きながら色々と調べてみました。その時の備忘録としてアプリの基本構造と必要なツール・技術を整理したガイドをここに残します。
アプリ開発への最初の一歩を踏み出せない方の背中を押せると幸いです。
※本記事は初心者向けの内容を中心に構成しています。一部、厳密さを欠く表現があるかもしれませんが、誤りなどがあればご指摘いただけますと幸いです。
※一部、Microsoft Copilotを用いて構成・整理しました
😵💫なぜアプリを作れないのか?
その原因は恐らくネクストアクションが分からないことだと思います。
- 「検索しても必要な情報がバラバラで分からない!」
- 「初期設定のやり方が人によって違う!」
- 「手順書みたいに説明されている記事が見つからない!」
でも、この記事にたどり着いた方の本質的な望みは何でしょうか?そう、きっと
"何でもいいからJavaでアプリを作ってみたい!"
に尽きると思います。だからこそ本記事は、ざっくりと構造を理解したうえで「手順通りにやれば、開発の環境が整っている」ことをゴールとしています。
📚この記事を読んだらどうなるの?
- 【前編】
- ざっくりとアプリの構造を把握できるようなる
- 必要な言語やツールについての理解を深める
- 【後編】
- 実際に必要なツールを一緒にダウンロード、設定してみる
- “開発スタート地点”=「あとは自分で思うようにコードを書くだけ」状態になる
後編は記事を読んでマネをするだけでそのまま実践に進める内容になります💪
前編の内容も参照して、「今は何の設定をしているのか?」等を意識しながら後編のハンズオンに取り組めるとより効率的かもしれません。
🖥️アプリってそもそもどういう構造なの?
アプリ開発では、「3層構造」が一般的な設計パターンとして広く使われています。これは、アプリの機能を3つの役割に分けて整理することで、保守性・拡張性・チーム開発のしやすさを高めるための考え方です。
3層構造の概要
以下の表は、3層構造の各層を整理したものです。
層の名前 | 通称名 | 役割 | 使用言語 | 使用ライブラリ | 使用フレームワーク |
---|---|---|---|---|---|
プレゼンテーション層 | フロント | ユーザーとのやり取り(UI表示・入力受付) | HTML, CSS, JavaScript | Axios, jQuery | React, Vue.js, Angular |
アプリケーション層 | バック | 処理・ロジック・APIの制御 | JavaScript, Python, Java | Express, SQLAlchemy | Node.js, Django, Spring Boot |
データ層 | DB | データの保存・取得・検索 | SQL | – | MySQL, PostgreSQL, MongoDB |
役割の図解
- ユーザーが操作(ボタンを押す、入力する)
↓ -
フロント(UI)がAPIを呼び出す
↓ -
バックエンドが処理を行う(認証・保存など)
↓ -
DBにアクセスしてデータを保存・取得
↓ - 結果をフロントに返して画面に表示
🧰アプリ開発に必要なアイテムって何?
Webアプリケーションを開発するには、3層構造に対応したさまざまなツールが必要です。
ここでは、IDE・JDK・ビルドツール・DBMS・インフラ・バージョン管理など、主要な開発ツールの役割と代表例を整理します。
(今分からなくても、後編のハンズオンで少しずつ分かると思います。)
🖥️ IDE(統合開発環境)
役割: コードの記述・補完・デバッグ・ビルドなどを一括で行える開発者向けの作業環境
代表例 | 特徴 |
---|---|
IntelliJ IDEA | Javaに強く、Spring Bootなどの支援が豊富 |
VSCode | 軽量で多言語対応、フロント開発に人気 |
Eclipse | Java開発の定番、プラグインが豊富 |
☕ JDK(Java開発キット)
役割: Javaで開発するために必要なコンパイラ・ランタイム・ツール群のセット
代表例 | 特徴 |
---|---|
Eclipse Temurin | オープンソースで信頼性が高い |
Oracle JDK | 商用利用にはライセンスが必要 |
Amazon Corretto | AWSが提供する無料のJDK |
🛠️ ビルドツール
役割: ソースコードのコンパイル、依存関係の管理、テスト・デプロイの自動化などを行う
代表例 | 対応言語 | 特徴 |
---|---|---|
Gradle | Java他 | 柔軟で高速、Kotlin DSLにも対応 |
Maven | Java | XMLベースで安定性が高い |
npm / yarn | JavaScript | フロントエンドの依存管理に使われる |
🗄️ DBMS(データベース管理システム)
役割: データの保存・検索・更新・削除などを効率的に行うためのシステム
代表例 | 特徴 |
---|---|
PostgreSQL | 高機能で信頼性が高く、OSSとして人気 |
MySQL | 軽量で高速、Web系で広く使われる |
MongoDB | NoSQL型で柔軟なデータ構造に対応 |
☁️ インフラ(クラウド・サーバー)
役割: アプリを公開・運用するためのサーバーやネットワーク環境の提供
代表例 | 特徴 |
---|---|
AWS | 機能が豊富でスケーラブル、業界標準 |
GCP | Google製、データ分析系に強い |
Vercel | フロントエンド(Next.js)に最適化 |
Heroku | 初心者向けで簡単にデプロイ可能 |
🔄 バージョン管理
役割: ソースコードの変更履歴を管理し、複数人での開発やロールバックを可能にする
代表例 | 特徴 |
---|---|
Git | 分散型で柔軟、業界標準 |
GitHub | Gitのホスティング+コラボ機能が豊富 |
GitLab | 自社運用も可能なGitプラットフォーム |
🧭次回予告(後編)
次回は、これらのツールの中から実際に導入した構成を紹介し、
具体的なアプリケーション開発に向けた環境構築のステップをまとめていきます。
書いてある通りに進めていけば「とりあえず下準備はできたぞ、あとは自分なりにコードを書いてみるだけ」という状態にできる内容にするので、後編投稿までお待ちください。