A challenge that must never be overlooked: User Interface

Only 2-3 weeks away to finish this college trimester. I’m really excited to know it’s “almost over” as this year has been full of challenges in real life, bumping into personal struggles and family issues can really suck your drive to develop.

My disgust with Ubuntu has been slowly dissipating, as I wrote in Disappointed I ran into issues with it, issues that permanently crippled my computer. As a former linux user, and as someone that loves the linux environment in general you know you will always have those little urges to come back and use linux as it’s pretty much “your home”.

Sadly–no, actually fortunately I’ve been investing a good amount of time learning Windows. Its set of APIs and technology it provides. Let’s sit down and be realistic for a moment that it’s hard and has always been hard to monetize open source projects, any developer will always choose their family over ideals.

So this brings me to today’s subject: Interfaces.

I’ll admit, I suck at designing. I’m good in coming up with interfaces ideas, but putting things together in a very concise manner to provide a decent user interface is incredibly hard. To maintain a balance of usability, functionality, and “modern appearance” of an application these days is hard.

I consider myself to be more of a backend type of person. I like working in the internals parts of the application. I love learning to improves ways of providing metadata so that the user interface can function without the UI being the become the dictator of how the backend should be designed (don’t mix business logic and view, etc) and thus allow me to target multiple platforms and gush out more views to different screens.

As I’ve been designing the application I’ve gone through three or four drafts. Each draft being 20-30% different from each other. Drafting also means that you are dedicating your time to solve possible corner cases, it’s not much about throwing pretty colors, gradients, and call it a day. (I wish.)

During the time I’ve spent drafting/sketching the interfaces I’ve found myself sinking a lot of time in the user interface planning stage. Whether that’s good or bad I don’t know myself. Time will tell, I guess.

So the easiest way is becoming a hardcore fan of your app

I feel like placing myself in the users shoes is MUCH, MUCH easier than sitting as a developer and concluding that I should throw everything in TableViews and TreeViews, with lots of checkboxes and call it a day.

So I began to give each view specific purpose, a mission that a view and its partials needs to complement each other to satisfy the user’s needs. User clicked on new section -> show loading animation -> a new view appears -> new view is a gridview in nature. Hint the user that you can press and hold each grid for more options. Each option complements what to do with said grid cell.

And so on. It’s a very, very tedious process in my humble opinion. Designing applications internally (OOD, modular system, etc) is hard, UX is hard, frontend is hard. Quite the obvious conclusion, I guess.

Alive!

I’m around! I’ve been dealing with some things in real life so it has taken me a great deal of time. Most of why I have been away has been about my health, the other is a moderate burnt out that I’ve managed to get under control.

I’m back to reading Qt documentations. I’ve been fairly active reading Qt Interest mailing list for quite some time, and glancing over the tickets of issues that affect me (like zlib.h not found can’t compile in Windows in general). I’m still pushing myself to learn C++, I think by now “learning” seems like an odd word to use, yet appropriate if you use other facilities provided by C++.

Most of what I’ve programmed have been fairly straightforward. My application is still going strong, just a while ago I managed to commit and push a few pending changes.

Qt 5.6

Qt 5.6 seems to be the definitive version I will be using mostly because it’s the version that will contain complete WinRT support. To me it’s very important to be able to provide my application through different platforms. At the same time Qt doesn’t exactly make it easy if we start talking about in-app purchases that many applications integrate.

Reading list

I’ve managed to get a copy of Effective C++ by Scott Meyers so I have that going for me. All in all a new round is about to start for me to finish my application and finally release it.