Desktop Application usingJRuby + SWT呂旺燊
專家講座 C :Desktop Application using JRuby + SWT
個人簡介                  呂旺燊          Twitter: @tkalu          RoR programmer                  任職於和多 handlino.com
Fire.app           http://fireapp.handlino.com/
HTML prototyping tool網頁原型設計工具      HTML + CSS + JavaScript
HTML支援多種 Template language●   ERB●   HAML●   Slim●   Markdown
CSS http://sass-lang.com/   http://compass-style.org/
JavaScript             http://coffeescript.org/
ServerSimple Web Server可以在瀏覽器裏面透過 http://127.0.0.1:24681的網址瀏覽專案內容Support LiveReload protocol當檔案修改之後 , 瀏覽器會自動更新Ref.● http:/...
跨平台支援 Linux   OS X   Windows
簡潔的介面 - 1
簡潔的介面 - 2
為什麼打造 Fire.app  故事要從遇見 Compass 說起了 ......
Compass Awesome!!!        from http://sonspring.com/journal/sass-for-designers
痛恨 command line....
需要跨平台
需要 GUI - 1Ruby GUI Library ● Tk ● wxRuby ● qtRuby                   Cross-Platform ● Ruby/GTK ● Shoes ● FXRuby ● MacRuby
需要 GUI - 2         Eclipse        Java + SWT       JRuby + SWT
成果     2010.12 推出 Compass.app     2012.04 推出 Fire.app
誰需要 JRuby + SWT ?       或是為什麼選擇 JRuby+SWT?
誰需要 JRuby + SWT ? 1. 熟悉 Ruby 想寫 GUIa 2. 想使用的 Library 只有 Ruby 的版本 3. 很熟 SWT 想改用 Ruby 的語法寫程式
回到正題 如何用 JRuby 搭配 SWT 開發程式
JRuby 中使用 Java 程式 # 使用 Java 的環境 require java # 載入指定的 jar 檔 require path/to/mycode.jar # 取得目前的 Java 版號 java.lang.System.get...
載入 SWT 前往 SWT 官網下載檔案後解壓縮後可以取 得 swt.jar 後 , 透過下列兩行程式碼即可 載入 SWT require "java" require "download/path/swt"
Hellow Word!  display = org.eclipse.swt.widgets.Display.new  shell    = org.eclipse.swt.widgets.Shell.new(display) row_lay...
更加的 Ruby 風格module Swt  import org.eclipse.swt.SWT  import org.eclipse.swt.program.Program  module Widgets    import org.ec...
Hello World! 加強版display = Swt::Widgets::Display.get_currentshell    = Swt::Widgets::Shell.new(display)shell.layout =Swt::L...
其他開發心得 ●   SWT 跨平台問題 ●   調整啟動速度 ●   打包程式 ●   Mac 上隱藏 Dock 的圖示
SWT 跨平台問題SWT_LIB_PATH ="#{LIB_PATH}/swt"if org.jruby.platform.Platform::IS_MAC  os="osx"elsif org.jruby.platform.Platform:...
調整啟動速度   1. 不要使用 rubygem 管理 library     require "rubygems" 會花上約 0.7 秒     建議自己將需要的 library 的路徑加到 $LOAD_PATH     中   2. 需要使...
打包程式使用 Rawr http://github.com/rawr/rawr Rawr 包裝了launch4j提供 JRuby 程式更加方便的打包方式安裝 rawr 到系統 : gem install rawr建立專案 : rawr inst...
Mac 上隱藏 Dock 的圖示 在 OSX 中使用 SWT 的程式會預設在 Dock 中顯示 圖示 , 如果想要做出 只顯示在 system tray 上面 的效果 , 需會要修改 Info.plist, 必須在 <dict> 中 添加下列內...
範例程式            請前往下方 Github 網址下載https://github.com/tka/jruby-rawr-swt-helloworld
Live Demo     如果有時間的話 .....
Thank You
如果還有時間 ....     JRuby on Android    http://ruboto.org/
Thank You
Upcoming SlideShare
Loading in...5
×

2012 java two-desktop-appliction-using-j-ruby-with-swt

335

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
335
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2012 java two-desktop-appliction-using-j-ruby-with-swt

  1. 1. Desktop Application usingJRuby + SWT呂旺燊
  2. 2. 專家講座 C :Desktop Application using JRuby + SWT
  3. 3. 個人簡介  呂旺燊  Twitter: @tkalu  RoR programmer  任職於和多 handlino.com
  4. 4. Fire.app http://fireapp.handlino.com/
  5. 5. HTML prototyping tool網頁原型設計工具 HTML + CSS + JavaScript
  6. 6. HTML支援多種 Template language● ERB● HAML● Slim● Markdown
  7. 7. CSS http://sass-lang.com/ http://compass-style.org/
  8. 8. JavaScript http://coffeescript.org/
  9. 9. ServerSimple Web Server可以在瀏覽器裏面透過 http://127.0.0.1:24681的網址瀏覽專案內容Support LiveReload protocol當檔案修改之後 , 瀏覽器會自動更新Ref.● http://livereload.com/● LiveReload Protocol
  10. 10. 跨平台支援 Linux OS X Windows
  11. 11. 簡潔的介面 - 1
  12. 12. 簡潔的介面 - 2
  13. 13. 為什麼打造 Fire.app 故事要從遇見 Compass 說起了 ......
  14. 14. Compass Awesome!!! from http://sonspring.com/journal/sass-for-designers
  15. 15. 痛恨 command line....
  16. 16. 需要跨平台
  17. 17. 需要 GUI - 1Ruby GUI Library ● Tk ● wxRuby ● qtRuby Cross-Platform ● Ruby/GTK ● Shoes ● FXRuby ● MacRuby
  18. 18. 需要 GUI - 2 Eclipse Java + SWT JRuby + SWT
  19. 19. 成果 2010.12 推出 Compass.app 2012.04 推出 Fire.app
  20. 20. 誰需要 JRuby + SWT ? 或是為什麼選擇 JRuby+SWT?
  21. 21. 誰需要 JRuby + SWT ? 1. 熟悉 Ruby 想寫 GUIa 2. 想使用的 Library 只有 Ruby 的版本 3. 很熟 SWT 想改用 Ruby 的語法寫程式
  22. 22. 回到正題 如何用 JRuby 搭配 SWT 開發程式
  23. 23. JRuby 中使用 Java 程式 # 使用 Java 的環境 require java # 載入指定的 jar 檔 require path/to/mycode.jar # 取得目前的 Java 版號 java.lang.System.getProperties["java.runtime. version"] 更多資料請參考 https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby
  24. 24. 載入 SWT 前往 SWT 官網下載檔案後解壓縮後可以取 得 swt.jar 後 , 透過下列兩行程式碼即可 載入 SWT require "java" require "download/path/swt"
  25. 25. Hellow Word! display = org.eclipse.swt.widgets.Display.new shell = org.eclipse.swt.widgets.Shell.new(display) row_layout=org.eclipse.swt.layout.RowLayout.new(org.eclipse.swt.SWT::HORIZONTAL) shell.setLayout( row_layout) label = org.eclipse.swt.widgets.Label.new(shell,org.eclipse.swt.SWT::HORIZONTAL ) label.setText( Hello World! ) shell.open while(!shell.is_disposed) do display.sleep if(!display.read_and_dispatch) end display.dispose
  26. 26. 更加的 Ruby 風格module Swt import org.eclipse.swt.SWT import org.eclipse.swt.program.Program module Widgets import org.eclipse.swt.widgets.Display import org.eclipse.swt.widgets.Label import org.eclipse.swt.widgets.Shell end module Layout import org.eclipse.swt.layout.RowLayout endend
  27. 27. Hello World! 加強版display = Swt::Widgets::Display.get_currentshell = Swt::Widgets::Shell.new(display)shell.layout =Swt::Layout::RowLayout.new(Swt::SWT::HORIZONTAL)label = Swt::Widgets::Label.new(shell,Swt::SWT::HORIZONTAL )label.text = Hello World!shell.openwhile(!shell.is_disposed) do display.sleep if(!display.read_and_dispatch)enddisplay.dispose
  28. 28. 其他開發心得 ● SWT 跨平台問題 ● 調整啟動速度 ● 打包程式 ● Mac 上隱藏 Dock 的圖示
  29. 29. SWT 跨平台問題SWT_LIB_PATH ="#{LIB_PATH}/swt"if org.jruby.platform.Platform::IS_MAC os="osx"elsif org.jruby.platform.Platform::IS_LINUX os="linux"elsif org.jruby.platform.Platform::IS_WINDOWS os="win"endif org.jruby.platform.Platform::ARCH =~ /64/ arch="64"else arch="32"endrequire "#{SWT_LIB_PATH}/swt_#{os}#{arch}"
  30. 30. 調整啟動速度 1. 不要使用 rubygem 管理 library require "rubygems" 會花上約 0.7 秒 建議自己將需要的 library 的路徑加到 $LOAD_PATH 中 2. 需要使用時才 require library JRuby require 的成本十分龐大 , 建議要用到的時候才進 行 require 的動作 , 而不是程式一啟動就將需要 library 全部載入其他技巧還可參考http://headius.blogspot.com/2010/03/jruby-startup-time-tips.html
  31. 31. 打包程式使用 Rawr http://github.com/rawr/rawr Rawr 包裝了launch4j提供 JRuby 程式更加方便的打包方式安裝 rawr 到系統 : gem install rawr建立專案 : rawr install {project_path}打包 Mac 程式: rake rawr:bundle:app打包 Windows 程式: rake rawr:bundle:exe
  32. 32. Mac 上隱藏 Dock 的圖示 在 OSX 中使用 SWT 的程式會預設在 Dock 中顯示 圖示 , 如果想要做出 只顯示在 system tray 上面 的效果 , 需會要修改 Info.plist, 必須在 <dict> 中 添加下列內容 : <key>NSUIElement</key> <string>1</string>
  33. 33. 範例程式 請前往下方 Github 網址下載https://github.com/tka/jruby-rawr-swt-helloworld
  34. 34. Live Demo 如果有時間的話 .....
  35. 35. Thank You
  36. 36. 如果還有時間 .... JRuby on Android http://ruboto.org/
  37. 37. Thank You
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×