Ruby gui

1,056
-1

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,056
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Ruby gui

    1. 1. Не только Web Ruby GUIРазработка Desktop приложений на Ruby
    2. 2. Типы приложений‣ Bindings (RubyTk, RubyGTK2, QtRuby, more..)‣ HTML(5) based (Bowline, TideSDK)‣ Native applications (MacRuby/RubyCocoa)
    3. 3. Bindings«Нет ничего хуже четкого образа нечеткой идеи» Апсель Адамс
    4. 4. Разнообразие‣ RubyTk‣ RubyGTK2‣ RubyFox‣ QtRuby‣ wxRuby‣ Ваша привязка...
    5. 5. Hello Worldrequire Qt4app = Qt::Application.new(ARGV)hello = Qt::PushButton.new(Hello World!)hello.resize(100, 30)hello.show()app.exec()
    6. 6. Посложнее signals hit(), missed(), angleChanged(int), forceChanged(int),   canShoot(bool) slots setAngle(int), setForce(int), shoot(), moveShot(),   newTarget(), setGameOver(), restartGame() #... def restartGame()   if isShooting()     @autoShootTimer.stop()   end      @gameEnded = false   update()   emit canShoot( true ) end
    7. 7. Bindings Выводы‣ Активность практически на нуле.‣ Нет каких-либо полноценных фреймворков‣ Урезанные возможности
    8. 8. HTML(5)/CSS3 BasedBowline TideSDK
    9. 9. Bowline http://bowlineapp.com/ Все это - HTMLRuby + WebKit + Javascript и никакой магии!
    10. 10. Bowline http://bowlineapp.com/ Все это - HTMLRuby + WebKit + Javascript и никакой магии!
    11. 11. Bowline http://bowlineapp.com/‣ Имеет MVC архитектуру‣ Представления написаны на HTML/Javascript‣ Binding HTML <-> Ruby‣ Кроссплатформенный (OSX/Linux) (Windows... sorry...)‣ Приложение можно упаковать (Portable)
    12. 12. Bowline http://bowlineapp.com/ А где Ruby?‣ Генерируем связь >> bowline-gen binder users‣ Получится что-то вроде class UsersBinder < Bowline::Binders::Base end‣ И в представлении с помощью JS обращаемся $(#users).bowlineChain(UsersBinder); $(#users).invoke(admins); $(#users div:first).invoke(instance_meth, arg1);
    13. 13. Bowline http://bowlineapp.com/‣ Проект на GitHub https://github.com/maccman/bowline‣ Пример Twitter клиента https://github.com/maccman/bowline-twitter
    14. 14. TideSDKhttp://www.tidesdk.org/
    15. 15. TideSDK‣ Бывший Titanium Desktop‣ Возможность включения Ruby|Python|Php скриптов‣ Полный доступ к файловой системе‣ Кроме AJAX есть и низкоуровневый доступ к сети‣ API для доступа к многим функциям рабочего стола и окружения
    16. 16. TideSDK<html>" <title>I love Matz</title>" <script>" " function my_global_foo(a)" " {" " " return you +a;" " }" " var my_global_var = i love you;" </script><body>" <div id="a">A</div>" <script src="ruby.rb" type="text/ruby"></script>" <script type="text/ruby">" " def inline_document" " " document.getElementById a" " end" </script>" <script>" " window.inline_test_result = inline_document().innerHTML;" " window.external_test_result = external_document().innerHTML;" " window.require_file_module_result = require_file_module()" " window.require_file_sub_file_module_result = require_sub_file_module()" " window.test_gem_result = test_gem()" </script></body></html>
    17. 17. TideSDK
    18. 18. TideSDK http://www.wunderlist.com/
    19. 19. ‣ Реализация Ruby 1.9.x для Mac Os X‣ Интеграция Objective-C фреймворков и библиотек‣ Интеграция с Xcode 4.3‣ Just-in-time compilation (JIT, компиляция)‣ Включение MacRuby(и гемов) в само приложение (bundle)‣ Публикация приложений в AppStore‣ Тестирование (MiniTest, DTrace)
    20. 20. После установкипоявляется новый пункт меню
    21. 21. MANNING‣ Сайт проекта https://github.com/MacRuby/MacRuby‣ Много полезного... https://github.com/MacRuby/MacRuby/wiki IN ACTION‣ ... и примеров https://github.com/MacRuby/MacRubySamples Brendan G. Lim WITH Jerry Cheung AND Jeremy McAnally
    22. 22. MANNING‣ Сайт проекта https://github.com/MacRuby/MacRuby‣ Много полезного... https://github.com/MacRuby/MacRuby/wiki IN ACTION‣ ... и примеров https://github.com/MacRuby/MacRubySamples Brendan G. Lim WITH Jerry Cheung AND Jeremy McAnally
    23. 23. Спасибо за внимание! Презентацию подготовил Кириллов Александр
    1. A particular slide catching your eye?

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

    ×