Application Development

Project Areas


1st Party

Updating Mail

Haiku provides an innovative Mail management system using the file system database-like features (queries) to efficiently manage the e-mails. While the technology for this is working well, the user interface is rather limited, making it difficult to use the feature up to its full potential.

The first part of this task is reworking the code base to adhere to our coding style guidelines and convert the user interface to the Layout Kit, making it work with all font sizes and languages. The code should be improved to use proper object oriented programming concepts, and reviewed for potential thread-safety issues.

The second part of this task is to improve the user interface to meet today's expectations of a great way to view and edit your mail.

Current list of tickets can be found here.

Updating and Extending WebPositive

Haiku uses a WebKit based browser called WebPositive. The browser is still quite simple and is in need of urgent bug fixes and improvements. It's missing important features, like:

  • Session management
  • Proper cookie handling.
  • Missing handling broken HTTPS certificates.
  • Browser extensions.
  • RSS reader
  • Bookmark import/export
  • Reader mode
  • Dark mode support
  • Search engine management
  • Web fonts support
  • And lots of bugs to squash!

A full list of bugs and improvements can be found here.

DiskUsage

DiskUsage could be inproved by:

  • List of top space using directories in pane on left.
  • Colors on fan gradually lighten but stay in same color for subfans to more easily indicate subdirectory relationships.
  • Optionally allow for sorting fans based on space usage, not just directory/alphabetical order. Or just make that the default.
  • Allow for trashing files or folders from within the app (on right click.)
  • Window to find and show duplicate files.
  • Allow for filtering based on MIME-type (how much music or images do I have, etc.)
  • Improve DiskUsage support of packagefs
  • Tickets: #5513 & #10282

    People

    The People application is our contacts manager that uses system metadata to store contact information. We need someone to modernise the application and allow it to import (or sync) contacts from online services such as Google Contacts, and implement support for vCard contacts. It needs a modern Haiku-like UI as well.

    Current list of tickets can be found here.

    LaunchBox

    LaunchBox is the Haiku dock application. It needs to be updated to properly display mounted disks, overlays and disk usage instead of generic folder icons.

    RemoteDesktop

    RemoteDesktop needs to be made end user friendly and given full graphical user interface to match.

    Crash Reporter

    Haiku is in need of an application that can automatically report crashes that the user wishes to share with Haiku developers. The application could make use of code from Goolge Breakpad, which is under an appropriate licence for Haiku to use.

    Password Manager

    Haiku already has the underlying technology for a password manager, however there currently is no graphical user interface for the application.

    Haiku SDK: Debugger

    Our graphical debugger is now used as default in Haiku, but there are still some areas that need improvement to match the features of graphical debuggers on other systems.

    Haiku SDK: Graphical Profiler/Tracer

    We need something like KCachegrind, AMD CodeAnalyst or Stackify for Haiku.

    MediaPlayer

    Haiku has a general purpose media player, but it is currently a bit buggy, and does not work as expected. It has performance and UX issues. A full list of tickets can be found here.

    HaikuDepot - SoftwareUpdater

    HaikuDepot is used for browsing and installing packages. However, at the moment it tries to both act like a software market and a package manager GUI, but does not excel at neither. It can also be quite sluggish at times.

    SoftwareUpdater is the Haiku utility for updating system and downloaded packages through HaikuDepot. It works well, but it lacking in features, like selective package upgrades and a more informative GUI.

    A full list of issues can be found here>.


    3rd Party

    Improve the Calendar application

    Photo Album

    Update the application Album to match the features of other modern photo organizers.

    UML Modeller

    Screen Reader


    Porting software

    Migrating Haiku WebKit port to WebKit2

    Haiku has a native WebKit port which uses the WebKit1 API. Since this port was made, the WebKit project migrated to WebKit2, which provides several new features and separates the work in several processes to limit the impact of crashes in one or the other.

    The goal of this task is to get WebKit2 to run on Haiku. This involves implementing the required inter-process communication primitives in WTF (first reusing the UNIX socket support used on Linux ports, then migrating to BMessages if this is relevant/useful), and writing a WebKit2-style API for WebKit, which can be used in native Haiku applications. Proof of concepts could be a minimal browser, an update to the existing WebPositive, or adding a web view to existing applications such as Mail or fRiSS.

    KVM acceleration for Haiku's QEmu port

    QEmu is a virtual machine allowing to run an operating system inside of another. While there already is an Haiku port, it currently does not support any acceleration system through native virtualization (KVM/KQemu). This makes it too slow for many uses. Fixing this would allow Haiku user to run another system, such as Windows or Linux, when they need to run an application that is not yet available for Haiku. This would make using Haiku as their primary operating system a viable approach for more people.