java fx勉強会lt 第8回

Post on 13-Jul-2015

1.241 Views

Category:

Documents

9 Downloads

Preview:

Click to see full reader

TRANSCRIPT

第 8 回 JavaFX 勉強会 LT

Taiji.Miyabe

Twitter : @taiz77

2

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

大学院生 (2年生)

プログラマ

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

3

http://aiit.ac.jp/

社会人向け大学院

ほとんどが社会人

情報アーキテクチャ先攻

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

研究

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

4

1. FXMLでの開発の実際

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

6

1データベース

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

2 画面遷移

3部分的なビューの切替

・Login画面⇒Dashboard画面

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

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

Webに近くなってくる

7

データベース(Model)

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

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

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

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

8

画面遷移

Login画面⇒Dashboard画面

9

画面遷移

部分的なビューの切替

1.プロジェクト選択

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

10

実際の開発

データベース

ORマッパを使用

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

画面の設計/実装

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

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

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

11

実際の開発

画面遷移

自作

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

部分的なビューの切替

自作

パーツ化したFXMLをロード

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

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

13

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

1データベース

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

2 画面遷移

3部分的なビューの切替

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

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

14

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

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

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

15

研究活動で開発中

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

コード生成・

Scaffold

MVC

アーキテクチャ

データ

ベースCRUD統合

View

システム

Creamy

16

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

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

top related