Creating a Native Feeling on Mac OS X, Linux

This is a call out for help on creating a consistent and native feeling on Mac OS X and Linux. As I have never owned a Mac and haven’t used Linux as my main OS for over 3 years I need the community of OSAlert to help me do this.

The importance of consistency

Consistency in design is important.

It allows users to use existing knowledge and thus makes it easier when being confronted with a new interface. If the whole system uses certain design principles, common layout, and wording of error messages, a good designer should use this to his advantage.

One of the first thing students in Human-Machine Interaction learn is how familiarity makes it easier for a user to get started with a new application. A lot of text books teach the reader how to consider spatial memory, visual perception and embodied cognition during design. Students learn the difference between working memory, long-term memory and short-term memory. Why humans remember things and why they forget. This is important knowledge to consider when designing a successful and easy-to-use interface.

For some reason all this knowledge is thrown away when it comes to real world development. Looking at music players for Windows 7 as an example, it is easy to see that each application sports its own interface principles, its own look and feel, its own way of structuring data and controls, its own world. Each new to the user. Each slightly different.


Screenshot of iTunes, Winamp, Windows Media Player, MusicBee, Foobar2000 and Spotify on Windows 7

The Stoffi project

I will try not not make this article into a large ad for my project but a little history is still needed. For those of you not interested it’s OK to skip this section and go right to the last (next) one.

The Stoffi project is an attempt to take what makes all music players great (such as a queue, history list, automatic scanner, silent upgrades, and vast support for file formats) and put these features into an interface that has been tailored to the operating system it runs on. The first being Windows 7.


Screenshot of Stoffi

It uses Jumplists, buttons in the taskbar previews, scans Windows 7 Libraries of type Music automatically, comes with an interface that is highly inspired by “native” applications such as Windows Explorer and the Control Panel. All with the aim of feeling like it was shipped with Windows 7 and more a part of it than a third party application.

Using the power of the community

Now the turn has come to other operating systems. Work has started to port this project to both Linux and Mac OS X. As I am not very familiar with OS X (I have never owned a Mac) and I have been away from KDE for 5 years and Gnome for 3 years, I need your help to create this same feeling of a “native” application.

So please, tell me in the comments what I should focus on, where should the interface draw inspiration from, what principles need to be adhered to, what should I avoid. Are there any features that should be included (like how Windows 7 has Libraries, Jumplists and Taskbar thumbnails)? Anything from installation, upgrades, look, feel, icons, dialogs or message phrasing.

No user, no matter his platform of choice, should ever feel like a second class citizen. Each user should get the impression that the application was designed for his operating system only.

About the author

Christoffer Brodd-Reijer is a student at Uppsala University in Sweden where he studies computer science. In his spare time he works on his pet project Stoffi or reads articles and comments on OSAlert.

130 Comments

  1. 2012-01-23 1:41 pm
    • 2012-01-23 1:49 pm
      • 2012-01-23 2:17 pm
        • 2012-01-23 2:26 pm
          • 2012-01-23 10:15 pm
      • 2012-01-23 5:06 pm
        • 2012-01-24 12:58 am
      • 2012-01-23 10:12 pm
        • 2012-01-24 1:39 am
          • 2012-01-24 7:24 am
          • 2012-01-24 2:09 pm
          • 2012-01-24 2:12 pm
          • 2012-01-24 10:42 pm
        • 2012-01-24 5:01 pm
          • 2012-01-24 5:07 pm
          • 2012-01-24 6:26 pm
          • 2012-01-25 8:04 am
          • 2012-01-25 3:26 pm
          • 2012-01-25 3:48 pm
          • 2012-01-25 4:52 pm
          • 2012-01-25 5:19 pm
          • 2012-01-25 5:37 pm
          • 2012-01-25 6:38 pm
          • 2012-01-25 7:05 pm
          • 2012-01-25 7:40 pm
          • 2012-01-25 8:15 pm
      • 2012-01-24 5:06 pm
        • 2012-01-25 10:05 pm
          • 2012-01-25 11:03 pm
  2. 2012-01-23 1:53 pm
  3. 2012-01-23 2:05 pm
  4. 2012-01-23 2:23 pm
    • 2012-01-23 3:47 pm
      • 2012-01-23 9:25 pm
        • 2012-01-24 7:27 am
          • 2012-01-24 3:09 pm
          • 2012-01-25 10:11 pm
    • 2012-01-23 4:34 pm
    • 2012-01-24 5:56 am
  5. 2012-01-23 2:26 pm
    • 2012-01-23 4:22 pm
      • 2012-01-23 7:08 pm
  6. 2012-01-23 2:58 pm
    • 2012-01-23 10:20 pm
  7. 2012-01-23 3:36 pm
    • 2012-01-23 10:24 pm
  8. 2012-01-23 3:41 pm
    • 2012-01-23 10:26 pm
  9. 2012-01-23 3:43 pm
    • 2012-01-23 10:28 pm
      • 2012-01-24 9:53 am
        • 2012-01-24 10:09 am
          • 2012-01-25 9:49 am
  10. 2012-01-23 3:54 pm
    • 2012-01-23 4:00 pm
      • 2012-01-23 10:29 pm
        • 2012-01-24 12:21 am
  11. 2012-01-23 3:57 pm
    • 2012-01-23 10:30 pm
  12. 2012-01-23 4:02 pm
    • 2012-01-23 10:31 pm
  13. 2012-01-23 4:23 pm
  14. 2012-01-23 4:25 pm
    • 2012-01-23 6:35 pm
    • 2012-01-23 10:36 pm
  15. 2012-01-23 4:53 pm
    • 2012-01-23 10:38 pm
  16. 2012-01-23 4:59 pm
    • 2012-01-23 10:40 pm
  17. 2012-01-23 5:56 pm
    • 2012-01-23 10:43 pm
      • 2012-01-25 9:11 pm
        • 2012-01-25 9:19 pm
  18. 2012-01-23 6:10 pm
    • 2012-01-23 10:17 pm
      • 2012-01-23 10:46 pm
  19. 2012-01-23 6:11 pm
    • 2012-01-23 10:51 pm
  20. 2012-01-23 8:00 pm
    • 2012-01-23 10:53 pm
      • 2012-01-23 11:02 pm
        • 2012-01-23 11:09 pm
          • 2012-01-24 12:01 am
          • 2012-01-24 7:33 am
          • 2012-01-24 12:57 pm
          • 2012-01-24 1:23 pm
          • 2012-01-24 6:50 am
          • 2012-01-24 7:41 am
  21. 2012-01-23 8:36 pm
    • 2012-01-23 10:55 pm
      • 2012-01-24 12:10 am
        • 2012-01-24 7:47 am
  22. 2012-01-23 8:45 pm
    • 2012-01-23 10:57 pm
    • 2012-01-23 11:09 pm
    • 2012-01-24 12:11 am
    • 2012-01-25 4:58 pm
  23. 2012-01-23 11:46 pm
  24. 2012-01-24 12:37 am
    • 2012-01-24 7:50 am
    • 2012-01-24 12:15 pm
      • 2012-01-30 11:47 pm
  25. 2012-01-24 4:54 am
    • 2012-01-24 7:53 am
  26. 2012-01-24 5:15 am
    • 2012-01-24 7:54 am
      • 2012-01-25 9:50 am
    • 2012-01-24 1:26 pm
      • 2012-01-24 11:55 pm
  27. 2012-01-24 10:53 am
    • 2012-01-24 1:28 pm
      • 2012-01-24 3:07 pm
        • 2012-01-24 3:27 pm
  28. 2012-01-24 10:56 am
    • 2012-01-24 11:07 am
    • 2012-01-24 1:43 pm
      • 2012-01-26 2:12 am
  29. 2012-01-24 5:06 pm
    • 2012-01-25 9:23 pm
      • 2012-01-26 3:42 pm
  30. 2012-01-24 6:08 pm
    • 2012-01-25 9:28 pm
  31. 2012-01-24 7:50 pm
  32. 2012-01-24 9:46 pm
    • 2012-01-25 9:54 pm
  33. 2012-01-25 1:33 am
    • 2012-01-25 10:00 pm