java fx勉強会lt 第8回

16
8 JavaFX 勉強会 LT Taiji.Miyabe Twitter : @taiz77

Upload: taiji-miyabe

Post on 13-Jul-2015

1.241 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Java fx勉強会lt 第8回

第 8 回 JavaFX 勉強会 LT

Taiji.Miyabe

Twitter : @taiz77

Page 2: Java fx勉強会lt 第8回

2

宮部 泰治 (みやべ たいじ)

大学院生 (2年生)

プログラマ

好きな言語:Java, Ruby, 最近Scalaが非常に気になってます

Page 3: Java fx勉強会lt 第8回

3

http://aiit.ac.jp/

社会人向け大学院

ほとんどが社会人

情報アーキテクチャ先攻

ComputerScience, プログラミング、PM…

研究

基盤ソフトウェアの開発(Project)

Page 4: Java fx勉強会lt 第8回

4

1. FXMLでの開発の実際

2. フレームワークの必要性

Page 5: Java fx勉強会lt 第8回
Page 6: Java fx勉強会lt 第8回

6

1データベース

・ユーザ認証・プロジェクトデータの表示/登録

2 画面遷移

3部分的なビューの切替

・Login画面⇒Dashboard画面

・プロジェクトの選択・タスクの追加/更新/削除

これらをFXMLで実装しようとすると

Webに近くなってくる

Page 7: Java fx勉強会lt 第8回

7

データベース(Model)

デモアプリでは以下3つのテーブル、Modelクラスを用意

1. Projectテーブル ・・・ Projectクラス

2. Taskテーブル ・・・ Taskクラス

3. Userテーブル ・・・ Userクラス

Page 8: Java fx勉強会lt 第8回

8

画面遷移

Login画面⇒Dashboard画面

Page 9: Java fx勉強会lt 第8回

9

画面遷移

部分的なビューの切替

1.プロジェクト選択

2.タスク追加/タスク削除

Page 10: Java fx勉強会lt 第8回

10

実際の開発

データベース

ORマッパを使用

各ModelクラスでORマッパをラップ

画面の設計/実装

SceneBuilderでデザイン(レイアウティング、CSS)、実装。ほぼFXMLのみで

SceneBuilderは視覚化されるため、デザインで非常に有用

個々のパーツごとにFXMLを作成

Page 11: Java fx勉強会lt 第8回

11

実際の開発

画面遷移

自作

Windowオブジェクトを生成し、FXMLをロードし、次画面を呼出し

部分的なビューの切替

自作

パーツ化したFXMLをロード

その後、親コントローラから子にデータを受渡し(FXMLには直接データを渡せない)

Page 12: Java fx勉強会lt 第8回

12

ソースコード(https://github.com/a1153tm/zentasks)zentasks/├── Common.css ・・・ 共通CSS ├── Context.java ・・・ グローバルオブジェクト管理├── Controller.java ・・・ Controllerの基底クラス├── Dashboard.css ・・・ Dahsboard画面のCSS├── Dashboard.fxml ・・・ Dahsboard画面のFXML├── Dashboard.java ・・・ Dahsboard画面のController├── FXMLLoadException.java ・・・ FXMLロードの例外クラス├── Login.css ・・・ Login画面のCSS├── Login.fxml ・・・ Login画面のFXML├── Login.java ・・・ Login画面のController├── ParentController.java ・・・ 子Viewを持つContorllerの基底クラス├── ProjectBoard.fxml ・・・ Project一覧のFXML(パーツ)├── ProjectBoard.java ・・・ Project一覧のController├── TaskBoard.fxml ・・・ Taskを表示するためのFXML(パーツ)├── TaskBoard.java├── TaskItem.fxml ・・・ Taskを表示するためのFXML(パーツ)├── TaskItem.java├── TaskPane.fxml├── TaskPane.java├── Util.java ・・・ ユーティリティ├── Zentasks.java ・・・ エントリポイント└── models ・・・ Modelクラスパッケージ

├── Project.java├── Task.java└── User.java

Javaソースコード:1,144loc

Page 13: Java fx勉強会lt 第8回

13

改善ポイントとフレームワーク

1データベース

・ORマッパの標準化・ラッパクラスの導入・Validation機構

2 画面遷移

3部分的なビューの切替

・標準ブラウザ・レイアウトテンプレート・FXMLレンダリング機構

・テンプレートエンジン・部分レンダリング・Controllerのツリー化・FXML-Controller間データインターフェイス

Page 14: Java fx勉強会lt 第8回

14

改善ポイントとフレームワーク

前記の改善ポイントは定型化、仕組化することが可能

前記の改善ポイントは定型化、仕組化することが可能

Page 15: Java fx勉強会lt 第8回

15

研究活動で開発中

Ruby on Railsライクなフレームワーク

コード生成・

Scaffold

MVC

アーキテクチャ

データ

ベースCRUD統合

View

システム

Creamy

Page 16: Java fx勉強会lt 第8回

16

Creamyフレームワークは2013年02月公開予定

完成後に、また、ご覧に入れます