So far, with RubySettlers, I've tried using 2 GUI libraries:
FxRuby was nice at first. But I really wanted something that looked like a native application; I wanted my app to look like a
real application. FxRuby made the menus and controls look worse than Java swing. And that's saying something!
Then, there was the bugs. The documentation was so so, and if I wrote some statements in the wrong order, my app would crash unexpectedly. It took a long time and a lot of re-arranging to get things right. Eventually, I just got frustrated and gave up. I didn't want to deal with broken code anymore. So, I looked into wxwidgets.
WxWidgets has been around for a long time, and I've heard some really great things about it. It's truly cross-platform. And all the controls are
native controls. That's what really attracted me to it. Like I said, I wanted my app to look like a
real app.
So, the only problem was...how good is the wxRuby interface to it?
Documentation was ok, not great, but most of what I did was intuitive enough.
I
really liked using the XML editor for building my forms. I'm a firm believer that you shouldn't have to actually write too much
code for the ui. All the properties should be kept in a data file somewhere and you should edit it with an external tool. And I hate to give them props, but Microsoft
actually did something write with visual studio in .NET. GUI apps in .NET are easy as hell. Ruby could really benefit from something like that. There
are some tools out there for drag and drop editing for wxwidgets out there. But nothing really wow-ed me. Every tool I used had something wrong with it.
So, I had my UI all built.
BUT...
2 things are now wrong.
- There's apparently a bug in wxRuby with drawing on a canvas. paint_buffered doesn't actually paint buffered. It still flickers! So, whenever I repaint my canvas, it looks like crap! That's a huge problem.
- I tried running my app on ubuntu. Started a fresh Ubuntu, installed ruby, rubygems, and wxruby. The app ran RIDICULOUSLY slow! The UI painting my have had something wrong with it. Maybe compiling wxruby from source will solve the trick. I don't know. Still, it sucks.
I'm still hoping that it's something I can work around. If it's a bug on my part, then, great! I'll try to fix it and then it's possible to get everything looking good on both systems. But I'll just have to keep looking into it...
1 comment:
I know it is heretical, but have ever you considered using Shoes as your Ruby GUI library?
http://shoooes.net/
Post a Comment