inflearn logo
inflearn logo

[Java実務プロジェクトUI編] Spring Core + JavaFXベースの映画情報アプリケーション制作

「Java実務プロジェクト UI編」では、JavaFXを活用し、純粋なJava技術のみで動作する映画情報提供アプリケーションを作成します。 この講義は、ウェブやスマートフォンアプリへ進む前に、UIイベント処理・非同期ロジック・ユーザーインタラクションの流れをJavaで直接実装しながら、「画面とロジックが繋がる構造」を深く理解できるように設計されています。 Spring Coreと連動してビジネスロジックとUIを分離する構造的思考を訓練し、 外部APIで映画情報を取得する過程で発生しうるUIパフォーマンス低下の問題を、非同期処理で解決する方法を学ぶことができます。 これを通じて、データフロー、イベントリスナー、スレッドベースの非同期処理の原理を明確に理解し、 Java言語そのものに対する理解を一段階引き上げることができます。 つまり、この講義は「ウェブへ進む前に、JavaでUIの本質と非同期処理の核心を経験する実践ステップ」です。 コードを書き写すだけの授業ではなく、UIとロジックの連結原理を自ら体得できる学習体験が得られるということを忘れないでください。

6名 が受講中です。

難易度 初級

受講期間 無制限

Java
Java
JavaFX
JavaFX
Web API
Web API
Movie
Movie
spring-framework
spring-framework
Java
Java
JavaFX
JavaFX
Web API
Web API
Movie
Movie
spring-framework
spring-framework

受講後に得られること

  • Javaのインターフェースと抽象クラスを複合的に利用して重複コードを排除する方法

  • HTTP通信クライアントとAdapter、そしてFactoryを組み合わせたHTTPサービスを抽象化する方法

  • 外部の映画情報APIを活用して、JavaFX UIとビジネスロジックを連携させる方法

  • UIイベント処理、画面更新、ユーザー入力フローを設計および実装する能力

  • 非同期呼び出し(Thread、CompletableFuture、Task、Platform.runLaterなど)を利用してUIパフォーマンスを向上させる方法

  • Spring Core環境でJavaFX UIレイヤーを連動させる方法

  • MVC(Model-View-Controller)パターンをJavaFX環境で適用する方法

  • FXMLベースのUI設計とControllerコードの役割分離

  • JavaFXアプリケーションアーキテクチャを通じてWeb UI開発へと拡張可能な思考トレーニング

  • Webへと繋がる核心概念(イベントループ、非同期フロー、状態管理)をJava UIで習得する

⭐ [Java実務プロジェクト UI編] Spring Core + JavaFXベースの映画情報アプリケーション制作

「Javaで直接UIアプリケーションを構築し、外部API連携や非同期プログラミングによるUI最適化まで一度に習得する実践プロジェクト!」


今回の講義は、JavaとSpring Core、そしてJavaFXを活用して映画情報提供のためのデスクトップアプリケーションを直接実装してみる実践型プロジェクト講義です。


ウェブやモバイルUIに移行する前に、JavaだけでUIの流れやイベント処理、非同期構造、APIベースの画面レンダリングを経験できるように設計されています。

JavaFXのスキルを深く習得することが目的ではなく、Java開発者としてUI技術へと拡張するための核心的な概念と実践的な実装能力を素早く引き上げることが、この講義の目標です。


第2部でドメイン中心のコンソール用注文システムを実装したなら、今回の第3部では外部API連携、画面遷移、画像読み込みの最適化、非同期処理といったUIアプリケーションの本質を直接体得することになります。

この講座では、Spring CoreとJavaFXを利用して自分だけの映画情報提供用デスクトップアプリケーションを実装してみることができます。

⭐ Javaミニプロジェクト第3部はなぜJavaFXを使用するのか?

JavaFXは実務で広く使われているわけではありません。
それにもかかわらず、今回の講義でJavaFXを選択した理由は明確です。


👉 「Java開発者として入門する段階で、ウェブやモバイルのUI技術まで一度に学ぶのは非効率的だ」


React、Vue.js、Next.jsのようなフロントエンドフレームワークは
学習曲線が急で、Java開発者がJavaを学習しながら同時に学ぶには負担が大きすぎます。

だからといって、Web UI側の流れに関する経験がなければ、半人前のJava開発者として成長してしまう可能性が高いです。

JavaFXは、Java開発者として入門する段階で、このようなUI側の流れを学習できる最高の技術だと思います。


✔ UI構造設計の核心をJavaで習得する

  • 画面遷移の構造

  • イベントハンドリング

  • 非同期処理

  • 状態管理

  • 画面描画(Rendering)の流れ

これらすべては、ウェブUIでも同様に使用されます。
技術が異なるだけで、「概念」はそのままであるためです。


外部APIベースのUI開発時に発生する問題を直接解決してみる

外部API通信を通じて受け取ったレスポンスデータを実際のUIに反映する実サービスシナリオを経験します。


✔ 不便な技術を最適化する過程で成長する

JavaFXは、ウェブで使用される最新のUIフレームワークほど便利ではなく、パフォーマンスも優れているわけではありません。
だからこそ、むしろ
「なぜUIは非同期が重要なのか?」
「なぜ画像読み込みをスレッドで分離しなければならないのか?」


などの、こうした本質的な部分を深く理解できるようになります。

これこそが、Javaミニプロジェクト第3部を制作することになった核心的な理由です。

🎁 最終的にどのような能力が身につくのでしょうか?

  • ⭐ Javaのインターフェースと抽象クラスを複合的に利用して、重複したコードを除去する共通化技法を習得することになります。

  • ⭐ CompletableFutureなどを利用して、UIで非同期処理が必要な理由と方法を理解することになります。

  • Web UI技術を学ぶ前に、「UIとは何か?」をJavaでまず理解することになります。

  • JavaFXでUIを完成させれば、React、Android UI、HTML/CSS/JSなど他のUI技術へと拡張することがはるかに容易になります。 such as React, Android UI, and HTML/CSS/JS.

  • Spring Core + UIを組み合わせた全体的な応用フローを経験し、実践的な開発者として次のレベルへとステップアップできます。


🧱 講義の特徴

  • プロジェクトベースの実践中心:
    単なる模倣ではなく、与えられた要件に従って受講生がまず自ら考え、実装してみる実践中心の構成です。

  • 事前学習 → 直接実装 → 実装解説の方式で進行:
    講義に必要な技術があれば、別途レッスンで概念をまず押さえ、
    受講生が先に実装した後に、講師バージョンのコードと解説で比較学習します。

  • 実務志向の設計:
    要件分析から構造化、実装、テストまでの全過程を、実務の流れに合わせて経験できるように構成しました。

🧰 使用技術スタック

  • Java 17+

  • Spring Framework Core

  • JavaFX 21


  • JUnit テストフレームワーク


  • レイヤードアーキテクチャ構造

👨‍🏫 こんな方におすすめです

✔ Javaの文法とSpring Coreを学習したけれど

UIがあるアプリケーションを直接作った経験がない方


✔ フロントエンド技術に移行する前に

UIの構造とイベントの流れをまずJavaで体得したい方


✔ UIアプリケーションにおいて非同期処理がなぜ重要なのかを知りたい方


✔ APIベースの実際のUIアプリケーションを作りながら

プロジェクトの実装力を引き上げたいJava開発者


✔ Javaミニプロジェクト2まで学習し、

もっと「ユーザーフレンドリーな」アプリケーションを作ってみたい方

❤️ 講師の真心

この講義は、単に「コードを書き写す」ことから脱却し、アプリケーションを自ら設計・実装しながら自分だけのアプリケーションを完成させる経験を提供するために準備しました。

どんなに優れた技術であっても、自分自身で悩みながら活用できなければ、「華やかな花火大会をただ呆然と眺めるだけで、その感動を外に表現できないこと」と同じだと思います。


コードを眺めているだけではなく、実務で皆さん自身が「コードを書ける人」になるための第一歩を踏み出せるよう、最後までサポートします。

Java開発者になるという夢を諦めずに、最後まで最善を尽くして、必ず開発者としてデビューできることを心から応援しています!

✅ ご不明な点はありますか?

Q. 1部、2部の講義を受講していませんが、この講義だけ受講しても大丈夫でしょうか?

可能です。

ただ、第1部・第2部のコンソール環境とは異なり、UI/UX技術が含まれているほか、Javaの並行性に関する内容が多数含まれているため、JavaのThread(スレッド)を事前に学習しておくことをお勧めします。

Q. 今回の講義のプロジェクトを遂行するには、JavaFXをどの程度知っておく必要がありますか?

今回の講義では、JavaFXを利用して非常に複雑なUIを実装するわけではありません。

したがって、JavaFXの基本的な使い方さえ学習すれば、UI部分は十分に付いてこられると思います。

Q. JavaFXは実際の開発現場では使われないとおっしゃっていましたが、なぜUI技術としてJavaFXを使用するのですか?
あくまでJavaという言語の基礎に集中し、Javaの能力を向上させることにフォーカスを当てたからです。

この講座を初めて制作した時の目標も「Javaという最も重要な言語の基礎力をしっかりと身につけられるようサポートすること」でしたが、開発パラダイムが急激に変化している現在においても(AIツールを使用する開発パラダイムへと…)、オブジェクト指向の元祖とも言えるJavaの基礎がより強固であるべきだと考え、UI側の他の技術や言語は排除しました。

JavaFXを使用してみることでUIの開発パターンを経験でき、同時にJavaのみを使用するため、Javaの基礎能力をより強固にできると考えています。^^

Q. このプロジェクトを遂行する際、AIを利用してもいいですか?
AIを活用してアプリケーションを制作する方式は、企業でも今や自然に受け入れられている方式であるため、ChatGPTやGeminiのようなAIを利用しないことの方が、むしろ不自然ではないかと思います。

ただし、講義にある要件定義書をもとにAIへ「このように作って」と要求することは、依然として望ましい方向ではないと考えています。

この講義を受講しようとされている方は、入門または初級に近い方が大部分だと思いますが、プログラミングを通じた自分の思考や実装能力にまだ自信がない状態でAIに頼りすぎてしまうと、むしろ自分の能力を削ってしまう状況に直面する可能性もあると考えています。

💡受講前のご注意事項

実習環境

  • オペレーティングシステムおよびバージョン(OS)

    • PC環境のOSであれば、どのようなOSでも問題ありません。

    • ただし、JDK 17以上がインストール可能である必要があり、IntelliJ IDEで実習を進めるのに支障がない程度のコンピューティングパワー(CPU、メモリなど)を備えていることが望ましいです。

  • 使用ツール

    • JDK 17(最小仕様)

    • JavaFX 2.1 以上

    • IntelliJ IDE

      • 講義で使用するIntelliJ IDEはUltimate版ですが、無料版のCommunity版を使用しても全く問題ありません。

      • IntelliJ IDEでなくても、使い慣れたコード編集ツール(Visual Studio Codeなど)があれば、それを使用しても差し支えありません。

    • Spring Boot 3.x 以上

      • 講義ではSpring Boot 3.5.7バージョンを使用しており、Spring 3.xバージョンであれば講義を受講するのに問題ありません。


    • Gradle 7.3(最小仕様)以上

      • JDK 17に互換性のあるGradleのバージョンが7.3であるため、両者のバージョンを合わせてあります。

      • バージョンの互換性によって問題が発生した場合は、Java Compatibilityを参考にして、できるだけバージョンを合わせていただければと思います。

    • JUnit 5(最小仕様)以上

🎓 学習資料

注意事項

  • 講義で使用される学習資料およびコードをブログなどの個人スペースで使用される場合は、講義タイトルおよび講師名を記載し、講義リンクを追加していただく必要があります。それ以外の無断配布は許可されておりませんので、あらかじめご了承ください。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Javaの文法と基本構文は習得しているが、UIイベントの流れや非同期処理の経験が不足している方

  • Javaの文法とSpring Coreを学習したものの、UIのあるアプリケーションを直接作成した経験がない方

  • Web開発に先立ち、UIの動作原理とユーザーインタラクションの構造をJavaで理解したい方

  • JavaFXを通じてデスクトップUI開発を経験し、フロントエンドの感覚を身につけたい方

  • Spring Coreを学習したが、UI層とビジネスロジックの連携構造を練習してみたい方

  • 第2部(フードトラック・キオスク)の講義を受講し、UI環境へと拡張された実践プロジェクトを作ってみたい方

  • 非同期プログラミングをJavaコードで直接体験してみたい方

  • 今後、WebフロントエンドやJava開発者として進む前に、UI・UXフローの本質を理解したい方

  • APIベースの実際のUIアプリケーションを構築しながら、プロジェクト実装能力を向上させたいJava開発者

前提知識、
必要でしょうか?

  • Javaの文法とオブジェクト指向プログラミング(OOP)の基本概念

  • Spring Coreの基本使用経験(Bean登録、DI、設定クラスなど)

  • REST APIの呼び出しおよびJSONデータ処理に関する基礎的な理解

  • スレッド(Thread)または非同期(Async)処理の流れに関する基礎概念

  • GUIプログラミングへの関心

  • 第2部(フードトラック・キオスク)講義の受講、または類似のコンソールプロジェクトの実装経験

こんにちは
Kevinです。

6,489

受講生

256

受講レビュー

109

回答

4.8

講座評価

8

講座

- 主力言語または技術:Java, Spring Framework, RxJava, Reactor, Spring WebFlux

- 株式会社コードステイツ(https://www.codestates.com)にて Senior Educational Software Engineer(Backend)として活動
(From 2022.03 To 2024.01.31)

- フリーランスの開発者および講師として活動(From 2024.02)

- 著書

こんにちは。Kevinと申します。^^

Inflearnでこうして講師として皆様にお会いできて、とても嬉しく思います。

どの分野も同様だと思いますが、特にソフトウェア開発者は、絶えず変化するトレンドに遅れないよう常に自分自身を磨き続けることが、開発者として生き残る唯一の方法だと考えており、常に学ぶ姿勢で楽しくソフトウェア開発を行っている開発者の一人です。

自分の持っている知識と経験が、他の方々に少しでもお役に立てればという思いで、Inflearn(インフラン)で講座を始めました。

これからも受講生の皆様に、実務で役立つ様々な講座を通して定期的にお会いできるよう努めてまいります。ありがとうございました。

 

質問や意見はいつでも歓迎ですので、メール(it.village.host@gmail.com)でお気軽にご連絡ください。

様々な講座で、これからも定期的にお会いできるよう努めてまいります。ありがとうございます。ご質問やご意見はいつでも歓迎ですので、メール(it.village.host@gmail.com)でお気軽にご連絡ください。

もっと見る

カリキュラム

全体

36件 ∙ (6時間 29分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

Kevinの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!

期間限定セール、あと5日日で終了

¥23,100

30%

¥4,279