Tuesday, July 10, 2012

Benefits of using OS X, Windows and Linux

Ryan Matthew Pierson recently blogged about the benefits of using both Windows and OS X. While I agree with many of his conclusions, there is another, very real benefit for cross-platform application developers to use multiple platforms and that's creating a better user experience.

Your users want a great user experience. While it's possible to create a user experience that is better than the one provided via native controls, that's not usually the case. Just using native controls is not enough; you have to think about the expected user experience based on the OS which users are running. Simple things like the spacing and placement of controls can make the difference between your app feeling intuitive and easy versus confusing and difficult.

Real Studio provides several features that make life easier in this regard, not just for OS X and Windows but for Linux as well. For example, you can create constants with platform-specific values for use in your user experience. Your File -> Quit menu item can easily be made to use "Exit" on Windows. Using constants, you can swap the locations of your OK and Cancel buttons in dialogs since Windows/Linux place them in the opposite order of OS X. And since some controls are taller on Linux, you can use constants to control the height of controls as well. This makes it easy to provide the native and thus most intuitive user experience for your end user. Yes, this takes more time but it will also help your application be more successful.

The biggest benefit of using all the major operating systems for cross-platform developers is to know the user experience your end users will be expecting so that you can provide it and be more successful.


Anonymous said...

"Using constants, you can swap the locations of your OK and Cancel buttons in dialogs"

Would be nice to see how it is done ;-)

BadOPCode said...

Ive been writing a controller program for a piece of industrial equipment. Its a custom ui i've been writing in RB that runs on Arch Linux. The benefit is clear. I have no desktop manager just x root with a window manager Metacity and the gtk library. The system boots ridiculously fast and loads straight to the application. Point is, being able to make a slim app package like that under windows or mac is a lot of hacking and you will not be able to fit it on a 1gb flash. For testing I can push straight to the controller hardware with remote debugger and the editor on my windows dev rig. If there is a more seamless way of developing a application running on such thin hardware and os... i don't know about it. A lot of my fellow c++ friends snicker about me using a 'basic' compiler till they hear my system and directly testing, debugging and var monitoring on a system with practical nothing on it. Let alone no compiler.
What i cant do in RB i can extend RB to do in c++. I think RB in the hands of a developer with a good dev setup really puts them close to the action where you can catch more bugs than convensional cross compilers and code porting. Which in turns delivers a better user experience. IMHO