Expertise

Mac & Linux

Looking for Mac or Linux Development? Give us a call.

In the business market, Windows has tended to dominate – but the recent resurgence of Apple, and the growth of Linux means these markets are becoming more significant.

Introduction

Blueberry’s primary expertise lies in Windows custom software development. But the company has worked with Linux systems and technologies for much of the last 5 years, and individual programmers within the company have strong past experience of Mac and Linux development.

The company has recently worked on a substantial cross-platform development, involving the creation of a portable code base and platform specific GUI which sits on top of the common portable layer.

We’re very happy to discuss your Mac or Linux development requirements.

Mac Development

With the advent of OS-X, the Mac is now based on an operating system that is very similar to Linux. For simple, command line programs, it’s possible to run the same code on both Mac and Linux systems. Unfortunately, unlike Linux users, the vast majority of Mac users don’t use command line programs.

Creating GUI programs for the Mac is where the similarity with Linux ends. To create the most compatible Mac GUIs, programmers need to use the Cocoa library, and write code in Objective-C – a programming language that is similar to C and C++ , but is primarily used on Mac OSX. Alternatively, developers can use the recently released Swift language, which allows developers to target platforms beyond OSX due to the open source nature.

Linux Development

Linux continues to grow in popularity, and recent developments with low-end laptops have seen Linux sold as an alternative to Windows.

Development on Linux breaks down into a number of different areas: for simple system automation tasks, and small systems, Linux makes strong use of scripting languages such as Bash, Python or Ruby – all of which Blueberry has strong skills in. For larger GUI applications, the main approach is C++ programming using one of two major graphics toolkits, Qt or Gtk.

Commercial development of standalone programs for Linux is a relatively small field, with some unique challenges:

  • Linux users tend to expect their software to be gratis, which makes it more difficult to successfully sell Linux applications - although this isn't really a problem for companies, as they tend to sell support contracts for free open source software.
  • The large number of Linux “distributions”, each with different configurations and packaging systems makes it more or less impossible to build and ship a single program. Some distributions promote source-code distribution of software, which isn’t always the best commercial option.

The technical challenge of the second problem is solvable, but it normally requires an investment in automated build tools which can produce specific versions of the packaged software for each distribution. Blueberry already has auto-build systems in place which can be used to deliver this capability.

Please see ‘Cross-Platform Development’.