Blog.CX.com
  • Cloud News
  • CX Tips
  • Business Tips
  • Meet CX
  • Up on the CX Cloud
  • Connect with CX
Back to CX.com

Welcome to the CX Blog

RSSFacebookTwitter Youtube Google Plus Pinterest LinkedIn Flickr Klout Instagram Tumblr Untapped
Aug 23 2012 quotes

Cross-Platform Development: Getting It Right

Posted by CX
Tweet

cross-platform software developmentBy Daniel McDonald
Python Developer

One of the most important requirements for software companies is that the software they produce runs on their (potential) users’ hardware. This assumption is so fundamental, it’s easy to forget it’s even a consideration. But on the technical side, it’s a huge consideration. Any company trying to support most people will spend the time to make software for Microsoft Windows, but nobody these days supports a TRS-80 Model II because each supported platform is an investment, and it’s rarely worth the trade-off to support a rarely used computer. At CX, we make our cloud storage products useful and attractive across several platforms for as many customers as we can.

Here’s an example of what happens when you don’t bother to make an app pretty for OS X:

osxThis image induces nausea in many OS X users because it is jarringly incongruent with the rest of their software. However, the developers were able to write a single user interface (using the Tcl/Tk platform) and run it on OS X, Windows, Linux and other platforms. So while it may not score any points for aesthetics, it is functional and works in many places. And now for a counter example, here is an app made to look good on O SX:

osxThis application looks clean, professional and consistent with the rest of OS X. However, all of the work they put into making this look good doesn’t get them anywhere on having a user interface for Windows or any other platform.



With CX’s desktop sync app, we take a hybrid approach. We use Python code to drive the file syncing logic that is common on all platforms so that we only have to write this code once. Then we try to pick the best option to have a good, natural-looking user interface on each of our supported platforms. We use .NET on Windows and Cocoa on OS X. This approach has definitely succeeded in producing two native-looking applications while tapping into the powerful common Python syncing logic.

However, this approach has demonstrated its drawbacks. Every time we add a new feature that involves the user interface in any way, we have to duplicate our efforts in changing the user interface changes for the Windows and Mac platforms. Adding support for another platform (for example, Linux) means writing a new user interface from scratch that has all the features of the other two platforms, and every additional change to the user interface requires us to duplicate our efforts over three platforms!

This is why for our Zipline product, we swung back to the other side and chose to use the QT platform. QT lets us rapidly develop very attractive applications with a single code base:

cx ziplineQT isn’t a silver bullet. We still lose a little bit of the native feel, but with good styling and design, we can produce an app that’s still aesthetically pleasing and intuitive to use, and we’re really happy with the results. We expect this will improve our ability to deliver new features to our desktop software users more quickly and possibly make adding support for additional platforms possible.

Do you have any thoughts about cross-platform development you’d like to share? Let us know what they are in the comments.



Tags: .NET, cloud storage, Cocoa, CX Zipline, desktop sync, Microsoft Windows, OS X, Python, QT platform, Tcl/Tk platform
 

Comments (1)

Add a comment
  1. khaled, August 24, 2012
    hi Reply

Add a comment

Top
Click here to cancel reply.
(it will not be shared)

RECENT POSTS

  • Family Business, Legacy or Liability? It’s Up to You
  • Should Your Business Be Using CCTV?
  • Make the Most of Your LinkedIn Profile
  • Ways To Make Sure Your Office Is Secure
  • 7 Strategies to Make a (Successful) Newsletter that Rocks

ARCHIVES

  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • January 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012
  • July 2012
  • June 2012
  • May 2012
  • April 2012

LATEST TWEETS

Flickr Photos

Facebook




Tags

Android apps blogging branding business business cloud storage business tips chat cloud cloud computing cloud hosting cloud services cloud sharing cloud storage collaboration content marketing credit card processing customer service CX for Business CX Rewind design digital marketing education entrepreneur Facebook free cloud storage graphic design Groups iOS leadership logo design marketing online files online photos online reputation online storage public relations sales schools social media startup students technology Twitter video YouTube