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.
- #1431: Mail codebase needs a cleanup to fix several issues
- #5140: Mail GUI enhancements
- #5141: Generating queries for related mails in Mail
- Support grouping e-mail messages by discussion thread
- …and of course you can extend this with more ideas for improvements.
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.