The Linux GUI Development Nightmare

For about 2 weeks I’ve been having some fun with Linux development, mainly using Ruby to build command-line applications. My decisions, to create command-line applications using Ruby instead of GUI applications, were made because of a simple factor: GUI development for Linux is a nightmare, since there isn’t at least one good GUI prototyping tool available to help you design your UI without having to do everything manually.

First I tried Glade which is just a nightmare. It’s extremely complicated to deal with and you have no clue about which control you should use or how to arrange things, and most importantly there’s not a lot of tutorials and documentation for new users to learn how to use it, and how to integrate with other languages.

Then I was told that Qt Creator was an awesome thing, so I decided to give it a try. I’ve created a new test project and selected the Qt Quick option so I could use QML, which is a lot better for a developer with Javascript background like me. One of the things that made me like this was the amount of good documentation and tutorials.

When I started playing with the Designer one of the first things that I noticed was the lack of simple controls like Buttons, this was pretty strange and I thought I haven’t installed all the things needed, but when I searched for it I got this tutorial from Qt itself, which explains how to create a button in QML (from scratch!!). QML is one of the most awesome things I ever seen to build the GUI logic, it’s simple and flexible, the problem is that there isn’t any kind of controls to create real world desktop applications with it.

After that I took a look at wxWidgets, which lacks good documentation and a decent GUI designer. Then after all this horrible nightmare I thought about creating all my UIs using HTML5 and wrapping everything around a GTK WebKit window, but I don’t think this is a good approach since my apps would look like an alien to the system.

Where are the Delphis of modern computing? I remember how easy it was to design UIs using Delphi and with a right-click on the control you could easily attach an event to it’s logic. It’s this kind of IDE that I’m expecting, one that focus on the fact that you don’t need to struggle to create a UI, but instead that you should be able to create the UI fast and easily enough, so you can focus on the most important thing that is your application logic.

Linux is a awesome OS, I’ve been using it since 2007, and it needs/deserves better tools to create awesome GUI applications, this is one of the reasons that developers aren’t porting their apps to Linux. On Mac OS X we have the awesome Xcode that includes a incredibly awesome GUI designer, and on the Windows side we have Visual Studio with a designer that is the best one in my opinion, since it’s easy, flexible, and powerful. Isn’t this the perfect time for a great Linux GUI designer?

Microsoft Finally Saw Where The Developers are Going

Today I revived my hope on Microsoft as I received the news that they released their brand new “product” for their fellow developers. The release I am talking about is the official Metro theme for jQuery Mobile. The awesome mobile framework finally got some Microsoft love.

In December of last year I got a new device to develop for, a HTC Titan, running the latest Windows Phone 7.5 Mango build. I loved the OS UI and how the applications were information-centric and not just eye-candy, but there was one problem, the same way C# is a incredible language for a lot of things, it’s parsing functions, for JSON specifically, are very difficult to learn and the articles about it were made for senior C# developers, which makes it difficult for beginners like me to understand them, at least I now can develop using the technology I love most for mobile development: Cordova (aka PhoneGap).

I always wanted to use Cordova for my WP7 projects but the Metro interface was way too complex to build from scratch and since the WP7 build of Cordova was on it’s early stages there were some features still to be implemented, for example there was no way to prevent the app from scrolling and some other things. Now there are plenty of plugins to make the app as native as possible and with the latest help from Microsoft, the Cordova development community has another great platform with almost full support of the native web app framework.

It’s great to see that Microsoft finally realized that the future of development has Javascript, HTML and CSS as the main languages. That’s why I have hopes that Boot to Gecko gets some market attraction and becomes a popular platform.

Follow my blog with Bloglovin

OAuth Broke The Internet

If you don’t know what OAuth is, it’s a auth process for cross-domain login, like Twitter or Facebook when you want to login/register on client apps, like HootSuite, Carbon or Tweetbot, or when you’re just logging into a 3rd-party site like Empire Avenue or Geeklist.

It’s a very secure system, the problem is that you break the user experience in the worst way possible. You take the user out of the web site or app just to login, the developer has to create a very bad system by embedding a WebView to the app or redirecting to the browser just to log the user in.

xAuth is good, but not perfect, at least you don’t need to take the user out of the app, the problem is that Twitter, for example, the developer must request the xAuth keys and wait if it gets approved, also it has limitations like no access to Direct Messages.

Users and developers should make some pressure on Twitter, Facebook, Google etc. to open the xAuth access without limitations or ask for a new and better authentication system.