水曜日 10 16, 2013

DIY(Do-It-Yourself)タブレットのDukePad

9月にサンフランシスコで行われたJavaOne2013では一際大きな話題を呼びました DukePad についてご紹介します。

DukePad-Front-Home-Screen-W

Raspberry PiとJava SE Embedded 8をベースとした自作可能なタブレットで、作り方なんかはこちらから見ることができます。ひととおり揃えたとしても $370 で作ることができるそうです。

現状はデモ品質だと書いてありますが、OSGiベースのJavaFXデスクトップ環境で、アイコンをクリックすればJavaFXで作られたアプリが起動することができ、これからが本当に楽しみですね。

参考URL:https://wiki.openjdk.java.net/display/OpenJFX/DukePad

土曜日 12 22, 2012

Raspberry Pi で JavaFX - かんたん3ステップ

原文: http://javafx.steveonjava.com/javafx-on-raspberry-pi-3-easy-steps/

待望のRasberry Pi用JavaFX開発者プレビューがついに公開されました! Rasberry Piは、小規模の組み込み開発用に、また教育用の低コストコンピュータとして、そしてホビイストのおもちゃとしても素晴らしいプラットフォームです。 モデルBはたったの$35で、512MB RAM、700MHz ARMプロセッサ、HDMI、コンポジット、オーディオ、Ethernet、そして2つのUSBポートが付いています。

Rasberry Piでどんなことができるでしょうか?私たちがDevoxx用に制作した、宇宙船が飛び去るアニメーションでカンファレンスのスケジュールを表示する デジタルサイネージが良い例です:


アップデート:もしPi上でのJavaの性能に不安があるなら、fxexperience.comでのRich Bairのポストを読んでみてください:

http://fxexperience.com/2012/12/javafx-on-raspberry-pi/

よしやってみよう、と思ったなら、次の簡単な3ステップでPi上でJavaFXを動かすことができます:

この記事では読者がPiを持っていると想定しています。どこでPiを買えるのか、電源はどうするのか、といった疑問については Raspberry Piの公式サイトをチェックすることをお勧めします。

Step 1 – Raspberry PiにLinuxをインストールする

最新のJava 8リリースはhard floatです。 性能にも優れ、Raspberry Piの推奨Linuxビルドもhard floatなので、これは望ましいことです。softやsoftfpとつくビルドはhard floatのJVMとは非互換ですので避けてください。

ノート:なぜ浮動小数点にそんなにこだわるかって?ローエンドの組み込みシステム(例えばARM Cortex M0-M3)では、コスト節約のため浮動小数点演算ハードウェアが省略されるからです。 幸運にも、Raspberry Piで使われているARMv6チップは真の浮動小数点演算サポートを備えています。

SDカード上にLinuxをセットアップするには、Windows、Mac、LinuxいずれかのデスクトップとSDカードリーダーが必要です。使用すべきディストリビューションは最新のRaspbian Wheezyのhard floatビルドです。 これはRaspberry Piダウンロードサイトでの推奨インストールでもあります:

http://www.raspberrypi.org/downloads

イメージを焼き付ける方法はいくつかありますが(詳しくはこちら)、基本的には以下に集約されます:

SDカードができあがったら、Raspberry Piを箱から出してSDカードを差し込み、そのへんのモニタかTVに接続してからUSB電源(5V 700mA以上)をつなぎましょう。

注意:順序は重要です!Piの電源を入れる前にHDMIモニタをつながないとコンポジット出力と認識されます。つまり、LEDが点灯しているのに画面がでない場合、Piを再起動(電源を抜き差しする)してみるべきです。

この時点で、Piがブートして設定画面が表示されます。 以下のいくつかの項目については設定の変更を検討すべきでしょう:

  • CPU/GPUメモリ配分 – グラフィックスが重要なアプリをスムースに走らせるために、GPUに少なくとも128MBを与えましょう(JavaFXには重要!)
  • ロケール/キーボード/タイムゾーンの変更 – デフォルト設定はイギリスです。それ以外の国の方はこの設定を変えないとキーバイドが狂ってイライラすることになるでしょう
  • オーバースキャン – もしディスプレイの端に黒い帯があるなら、これをオフにすればフル解像度を使うことができます
  • ルートファイルシステムの拡張 – 全スペースを使うようにオンラインでリサイズできます(デフォルトイメージでのルートパーティションはたった2GB)。 実施を強く推奨しますが、大容量カードではかなり時間がかかります
  • SSH – ネットワーク経由でPiにアクセスする場合はこれをオンにしてください (これは、行儀の悪いJavaFXプロセスをリブートなしで止める唯一の手段です)

Rasberry Pi用JavaFXの公式ドキュメントでは、設定ファイル (/boot/config.txt) の中の以下の行のコメントを外して、フレームバッファを720pに設定することが推奨されています:

framebuffer_width=1280
framebuffer_height=720

これは厳密には必須ではありませんが、Piが送り出すピクセル数を減らすので、よりよい性能を得ることができます。これを行うなら、ピクセルがアップスケールされないように、Piが必ず720の解像度で動作するようにも設定すべきです。自分がしていることが理解できないなら(そしてディスプレイを無効にしてしまったときのために、リモートログインしたsshターミナルを用意せずに)ディスプレイ設定をいじってはいけません。 HDMIディスプレイモードについてのより詳しい情報はこちらのドキュメントを参照してください。

Step 2 – Java/JavaFX 8をダウンロードしてPiにコピーする

Pi互換のJava/JavaFX 8ビルドはこちらからダウンロードできます:

http://jdk8.java.net/fxarmpreview

Piがイーサネット経由でネットワークにつながっているなら、直接デバイスにダウンロードできます。そうでなければ、sftp(ssh経由)またはUSBメモリなどを使ってコピーしてください。

ダウンロードできたら、好きな場所で解凍します:

sudo tar -zxvf file_name -C /opt

そして次のようなコマンドをたたいてjavaを実行してみましょう:

sudo /opt/jdk1.8.0/bin/java -version

Step 3 – PiにJavaFXアプリをデプロイして実行する

JavaFXデスクトップアプリケーションの大半は、単にjarファイルをコピーしてローカルに実行するだけでPi上でも動きます(ただし、WebView や MediaView に依存するアプリケーションは例外です。これらは現在の開発者プレビュー版では未実装です)。

Pi用のJavaFXアプリ開発の第一歩にぴったりなのは、Scene Builderを使って視覚的に手早くユーザインタフェースを組み立て、Piにデプロイする方法です。実際、私は昨晩 Linux Users’ Group of Davis (LUGOD) でこれを実演し、非常に鋭い聴衆のみなさんの助けを借りて、サンプルアプリを素早く組み上げました(途中、聴衆のみなさんからいくつかlinuxコマンドの技を学ぶこともできました)。

この私たちが15分で作ったアプリは、お試し用のサンプルとしてGitHubにポストしておきました:

Piで動かすには、このソースをお気に入りのIDEで(またはコマンドラインから)ビルドしてjarファイルを作ります。このjarファイルをPiにコピーして、次のようなコマンドで実行するだけです:
sudo /opt/jdk1.8.0/bin/java -Djavafx.platform=eglfb \
-cp /opt/jdk1.8.0/jre/lib/jfxrt.jar:LUGODTest.jar lugodtest.LUGODTest
以下はScene Builderプロジェクトの写真と、実際にLUGODミーティング中にRasberry Piで実行した出力結果です:

でも、一番印象に残るデモはやはり自分で作ったものです。ぜひ自作のJavaFXアプリを試してみて、それらのアプリへのポインタを下のコメント欄に残してください!

水曜日 10 24, 2012

JavaFX EnsembleがMac App Storeに

原文:JavaFX Ensemble in the Mac App Store // JavaFX News, Demos and Insight // FX Experience

JavaFXチームのScott Kovatchが、山のような法務手続きをくぐり抜け、ついに最初のJavaFXアプリケーション(みなさんよくご存知のものです)をMac App Storeに並べることに成功しました!James Goslingに熱烈な支持をいただけたのは特に最高でした。多くのみなさんがご存知のように、Ensembleはすべてのjavadocをはじめ、アニメーションから3Dバインディングのコントロールまで、100以上の実例を含むサンプル集アプリです。また、このアプリは今後のJavaFXの進展にあわせて増強され続けていきます。最初のリリースはJavaFX 2.0でしたが、チームはその後もずっとコンテンツを追加し続けて来ました(Debbie、そしてプラハやチームのみんなに感謝!)。

Mac App Storeへの登録はなかなかの大仕事でした。まず今年になって、ネイティブアプリバンドル生成のサポートを追加しました。これは、JavaFXアプリにJREを同梱し、MacOS Xなら.appと.dmg、Windowsなら.exeと.msi、Linuxなら.debや.rpmといった、プラットフォーム固有のアプリバンドルを生成するものです。こういったアプリバンドルは、AppletやWebStartのようなリモートコード実行に依存していないので本質的に安全です。また、エンドユーザにとっては完全に「普通の」アプリになります。これはApp Storeにアプリを登録するためにも必要なことでした。そして、これらのアプリバンドルにはJavaが同梱されているため、事前にJavaをインストールしておく必要がありません。どのバージョンのJavaがインストールされているかとか、特定のバージョンをインストールさせるとかいったことに頭を悩ませる必要はもうありません。単にそのまま実行できるのです。

さあ、みなさんもぜひやってみてください。JavaFXでデスクトップアプリケーションを作り、Mac App Storeで配布してみましょう。きっと楽しいですよ! ;-)

金曜日 10 12, 2012

JavaFX Developer Preview for ARM

ARM版Linux用のJavaFX (JDK 7) Developer Previewが公開されました。デモやサンプル、自作したJavaFXアプリを実行し、フィードバックをお寄せ下さい。

対応しているデバイスは、BeagleBoard xM (Rev. C)です。タッチスクリーンでのタッチ操作もサポートし、3M M2256PWやChalkboard Electronicsの1024x600 LCDなどでの動作が確認されています。その他のシステム要件とセットアップ方法はドキュメントをご覧下さい。

XサーバーやX11ライブラリを使用せず、EGL/OpenGL ES 2.0を使用してフレームバッファにレンダリングできるため、対応したLinuxディストリビューションが必要ですが、ドキュメントではAngstrom 2011.03ディストリビューションの入手方法も紹介されています。提供されているサンプルでは、Stopwatch(ストップウォッチ)、BouncingBalls(ボールのバウンド)、Calculator(計算機)、BrickBreaker(ブロック崩し)などが動作確認されています。

JavaOneでの下記セッションや展示会場では、Raspberry PiやPanda Boardを使ったデモもありました。

月曜日 8 27, 2012

JavaFX 2.2の新機能

今週、OracleはJavaFXの重要なアップデートであるJavaFX 2.2をリリースしました:
  • 2.2ではついにWindows (32-bitおよび64-bit)、Mac OS X (64-bit)、Linux (32-bitおよび64-bit)のすべてでJavaFXが利用可能になりました。これで大半の開発者はお気に入りの開発環境でJavaFXアプリケーションを作ったりテストしたりすることができます。より詳しくはJavaFX認定システムコンフィギュレーションをご覧ください。
  • JavaFX 2.2のランタイムはOracleのJava SE 7u6実装に含まれるようになりました。2011年12月以降、この2つの製品はある程度統合が進められてきましたが、今回1つに統合されたインストーラが導入され、JDKとJREの両方でJava SEライブラリと一緒にJavaFXライブラリもインストールされます。これにより使い勝手がさらに改善され、アプリケーション開発者にとっては、JavaFXアプリケーションを実行できるコンピュータの数がJava SEとすぐに同程度になることが確信できるでしょう。
  • Java SE 6ユーザのためにJavaFX 2のスタンドアローン実装も依然利用可能ですが、これはWindows版のみになります。またこのスタンドアローン版は、Java SE 6がEnd of Life (EOL)になる2013年2月以後はサポートされません。以前にもご説明したように、EOL以降は商用のJava SEサポートにサインアップしない限りJava SE 6ユーザにはバグフィックスやセキュリティフィックスは提供されません。その場合はただちにJava SE 7への移行を計画してください。
上記の重要な変更点に加え、JavaFX 2.2ではいくつかの新機能も導入されました:
  • JavaFXアプリケーションは自己完結型アプリケーションパッケージとして再配布できるようになりました。このプラットフォーム固有のパッケージには、アプリケーションの全リソースとJavaおよびJavaFXランタイムが含まれます。そしてネイティブインストーラパッケージとして配布されることで、各OSのネイティブアプリケーションと同じインストール/起動体験を提供します。大きなメリットは、既存の古いJava SE実装のデプロイに一切影響を与えることなく、Java SE 7をバンドルしたJavaFX 2.2アプリケーションをデプロイできることです。
  • タッチ操作可能な機器のためのマルチタッチサポート。これは現段階では主にデスクトップクラスのタッチスクリーンやタッチパッド向けですが、将来的にはARMベースのチップ上にJava SE Embeddedが搭載されているさまざまな組み込み機器に洗練されたUIを導入することを可能にします。例えばキオスク端末、テレメトリシステム、ヘルスケア機器、多機能プリンタ、監視システムなどです。これらは、多くのアプリケーション開発者にはまだあまり注目されていないJavaアプリケーションの市場セグメントですが、近年活況を呈しつつあります。
  • JavaFX Canvas APIは、HTML5のCanvas風の操作を提供する2D描画キャンバスです。HTML5に慣れた開発者は間違いなくこのJavaFX Canvas APIを気に入るでしょう。しかし、これはHTML5のCanvas APIの複製ではないことには注意してください。このAPIは、AWTやSVGのような背景を持つ開発者にも歓迎されるでしょう。Ensembleサンプルアプリケーションの"NEW!"セクションでは、"Fireworks"というCanvasのデモを実行することができます。また、こちらのビデオで別のCanvasの使用例の開発の様子を見ることもできます。
  • JavaFX 2.2では、JavaFXのイメージオブジェクトへのピクセルの読み出しや書き込みの機能が導入されました。Ensembleの"NEW!"セクションの中に"Image Operator"というサンプルがあります。
  • ColorPickerPaginationという2つの新しいUIコントロールが追加されました。これらもEnsembleの"NEW!"セクションで試すことができます。また、WebViewコントロールは閲覧履歴を管理することができるようになりました。FXMLの拡張を利用したカスタムコントロールの作り方も文書化しました。
  • HTTPライブストリーミングのサポートはJavaFXのメディアサポートを強化する機能です。ダウンロード可能なプレイリストファイルでの指定とネットワークの状態に応じて、メディアプレーヤが動画/音声を代替ストリームに切り替えることができるようになりました。
  • SwingアプリケーションをJavaFXで実装し直すSwing開発者や、SWTアプリケーションにJavaFXコンテンツを統合するSWT開発者の役に立つ追加情報も用意されています。また、JavaFXアプリケーション開発のベストプラクティスもいくつか文書化しました。
  • 最後に重要な点として、JavaFXの開発者は、アプリケーションのUIを視覚的にレイアウトし、アプリケーションのロジックとUIをきれいに分離するFXMLを生成できる、新しいJavaFX Scene Builder 1.0を活用できるようになりました。このScene BuilderはJavaFXで書かれた本格的なアプリケーションのすばらしい実例でもあります。現在、Windows版とMax OS X版が用意されており、NetBeans 7.2以降とシームレスに連携できます(その他のJava IDEと一緒に使うことも可能です)。
要約すると、JavaFX 2.2は単なるLinuxサポートの追加だけにとどまらない大きなリリースと言えます。JavaFXをJava SEに緊密に統合していくというOracleのビジョンを実現するとともに、クロスプラットフォームサポートへの取り組みと、計画通りの進捗を証明するものなのです。

金曜日 12 16, 2011

JavaFX 2.0.2リリース

JavaFX 2.0.2がJava SE 7u2と同時にリリースされました!
ロードマップ通り、2.0.2からJavaFX SDKはJavaSEへ同梱されています。もちろんJavaFX SDK 2.0.2単体でも提供されています。

その他の主な変更としては、SWTとの相互連携、再配布権の整備JavaFX API用のDocletツールなどのアップデートが含まれています。ドキュメントもアップデートされているので公式ブログをチェックしてみて下さい。

Download
Release Note


【参考リンク】

New Docs with JavaFX 2.0.2 (The Java Tutorials' Weblog)
JavaFX 2.0.2 Released (FX Experience)

火曜日 7 05, 2011

JavaFX Script v.s. JavaFX 2.0

先日、JavaFX 2.0 β版がリリースされましたが、オラクルのエンジニアJim CornerがJavaFX ScriptからJavaFX 2.0へマニュアルでプログラムを変換しておもしろい比較をしています。

対象プログラムにはJavaFX: Developing Rich Internet Applicationsの中から、JavaFX 1.1 Scriptで作った数独プログラムのUI部分を選んで採用してます。Java FX 2.0への変換は、単純に各fxファイルを対応するjavaファイルへの手動での書き換えを行いました。各プログラム毎の行数や文字数の比較結果は次表になります。

JavaFX Script source file

Number of Lines

Number of Character

JavaFX 2.0 Java source file

Number of Lines

Number of Characters




ArrowKey.java

6

72

Board.fx

221

6831

Board.java

205

6508

BoardNode.fx

446

16054

BoardNode.java

723

29356

ChooseNumberNode.fx

168

5267

ChooseNumberNode.java

302

10235

CloseButtonNode.fx

115

3408

CloseButton.java

99

2883




ParentWithKeyTraversal.java

111

3276




FunctionPtr.java

6

80




Globals.java

20

554

Grouping.fx

8

140




HowToPlayNode.fx

121

3632

HowToPlayNode.java

136

4849

IconButtonNode.fx

196

5748

IconButtonNode.java

183

5865

Main.fx

98

3466

Main.java

64

2118

SliderNode.fx

288

10349

SliderNode.java

350

13048

Space.fx

78

1696

Space.java

106

2095

SpaceNode.fx

227

6703

SpaceNode.java

220

6861

TraversalHelper.fx

111

3095



Total

2,077

79,127


2531

87,800



予想通り、JavaFX 2.0の方が行数が長くなり、22%程度増えた結果となっています。一方、文字数に関しては行数ほどの差がありません。つまり、一行あたりの文字数という意味では、JavaFX 2.0は少ないという事が言えます。また、JavaFX Scriptの方は宣言的定義、所謂オブジェクトリテラルがどうしても多くなるため、空白スペースが多くなるという性質も起因しているようです。

次にメモリ消費量の比較です。Windows Vista上のタスクマネージャで目視でRAMサイズを計測したところ、JavaFX Scriptは起動直後から90MB、JavaFX 2.0では55MBで推移したとのことです。JavaFX Scriptの場合、ランタイムシステムに加えてスクリプトパーサが必要になるためフットプリントが大きかったのかもしれません。

最後に、bindingの数の比較を行っています。驚くことに、JavaFX Scriptでは58個もあったbindが、JavaFX APIでは2個に激減してしまいました。分析によると Java FX Scriptでは、気軽にbindを利用して変数束縛を多用しがちです。しかし、実際のところ本当にbind機能を必要とするケースは一部であり、数独プログラムについてはメソッド呼び出しの順番を整理するだけで十分な部分がほとんどであったようです。

JavaFX ScriptからJavaFX 2.0へ変換するMigration Toolの開発も予定されていますが、不要なbindがどれくらいあるかなんて事は、手で変換して初めて分かる面白い検証ですね!

火曜日 6 07, 2011

JavaFX 2.0 のチャート


[Read More]

木曜日 6 02, 2011

JavaFX in JIRAがパブリックに

JavaFXの開発状況が、Kenaiプロジェクトのバグ管理システムで、
Bronzeパートナー、つまり開発者なら誰でも閲覧できるようになりました!
http://javafx-jira.kenai.com/

金曜日 5 27, 2011

JavaFX 2.0 β版リリース!

JavaFX 2.0のPublic Beta版が予定通りリリースされました!スタンドアロンで利用するためのSDKと、プラグインを使ってNetBeans IDE 7.0上での開発が可能になっています。
 ドキュメントも整備が進んでいて、これまでよりは詳細な内部アーキテクチャが分かってきました。また、JRubyを使ったプログラムの作り方や、Swingコンポーネント上でJavaFXアプリケーションを動かす方法が示されています。


【参考リンク】 
JavaFX.com
JavaFX Beta Documentation
OTN
JavaFX Forum
「Java FX 2.0 による次世代アプリケーション開発」OTNセミナーオンデマンド (日本語)
「NetBeans 7.0のJavaFX 2.0 Betaプラグインが公開されました」

月曜日 5 09, 2011

生まれ変わったJavaFX 2.0


[Read More]
About

日本オラクルのエンベデッドJavaチームから、最新情報をお送りしていきます。

Search

Archives
« 4月 2014
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today