C++ Class Library for Developing Cross-platform Applications



JUCE (Jules’ Utility Class Extensions) is an all-encompassing C++ class library for developing cross-platform applications.

It’s particularly good for creating highly-specialised user interfaces and for handling graphics and sound. The intended users are developers, who are writing large, complex applications in C++ and who would like to use just one clean, high-level API rather than a bunch of different libraries for different purposes or platforms.

JUCE is released under the GNU Public License, and costs nothing to use in open-source applications.

A few of JUCE’s features:

  • Basics—World’s best string class; arrays; stream and file handling; time and date; maths functions, random numbers, reference counting, super-fast XML parser and well-stocked XML manipulation classes; abstractions for threads, processes, critical sections etc; built-in GZIP compression/decompression streams and ZIP file reading; undo/redo support; logging; messaging layer with timers, event listeners; etc. etc.
  • User Interface—Cross-platform windowing capability with extremely powerful lightweight component architecture. Ready-made components include buttons, lists, menus, textboxes, treeviews, scroll-bars, etc. Components are customizable either at a low-level by creating your own (or by subclassing existing ones), or at an application-wide level by creating custom look-and-feel styles for them.
  • Vector Graphics—Fast, high-quality anti-aliased rendering of shapes with transparency, gradient fills, etc; path stroking with different line styles, dashed-lines; affine transformations and geometry classes; manipulation of typefaces as paths and custom font engine to provide sub-pixel accurate text in a platform-independent manner; typefaces can be serialized for easy embedding of fonts in an executable.
  • Image manipulation—High-quality rendering of images, allowing affine transformations and transparency; support for cross-platform OpenGL windows within Juce windows; built-in parser for loading JPEG, PNG and GIF image formats; image caching; easy embedding of images in an executable without having to use platform-specific resources.
  • Audio—Low-latency audio engine supporting DirectSound, ASIO and CoreAudio devices; audio buffer classes for mixing and manipulating samples; Parsers for WAV and AIFF formats, as well as reading audio streams from audio CD devices (easy on the Mac, but tricky on Windows!); powerful MIDI message classes; MIDI file load/save; connectable audio-processing nodes including sample-rate conversion.
  • Networking—URL handling; http and ftp reader streams; launching default browsers, etc.
  • Easy to integrate-JUCE is a static library so your application can run as a stand-alone executableno extra dlls to install, nothing for users to mess up! In your application, you’ll just need to include one header file: “juce.h” and that’s it-no platform-specific code or any other headers needed.

c,class,library,developing,cross,platform,applications,2

  • Print
  • Digg
  • del.icio.us
  • Facebook
  • email
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
  • Diigo
  • NewsVine
  • Reddit
  • Tumblr

Further Resources:

  • No Further Resources

iDevGames Forum

iDevApps Forum