Applications: Development
As some guy working for a different operating system once screamed, "Developers, developers, developers!"
If you are thinking of writing an application for haiku, here are some of the tools available for you.
Development apps A
ALE
A GUI editor to create and edit constraint-based layouts
The Auckland Layout Editor (ALE) is a constraint-based layout editor that is based on the BALMLayout layout class. The constraint-based layout model is very powerful and can describe layouts that can't be described with other layout models, like for example, the grid-bag layout model. Layouts created with ALE are automatically resizable and non-overlapping. This means while editing a layout you can't create a layout that has two overlapping views. Furthermore, layouts created with ALE have no conflicting constraints. ALE provides a small but powerful set of edit operations. These edit operations keep views automatically aligned to each other. This makes creating and editing layouts very easy.
Arduino
DE for the Arduino embedded hardware family
Arduino is an open-source tool used for building electronics projects. Arduino consists of a physical programmable circuit board (often referred to as a micro-controller) and a development environment, or IDE (Integrated Development Environment) that runs on your computer, used to write and upload computer code to the board.
BeBook
Documentation for the BeOS API
The BeBook details the Application Programming Interface (API) to the BeOS operating system. It's the reference for those who want to familiarize themselves with the BeAPI and Haiku programming in general.
Development apps B
Bluefish
A powerful HTML editor for experienced web designers and programmers
Bluefish is a powerful editor targeted towards programmers and webdevelopers, with many options to write websites, scripts and programming code. It supports many programming and markup languages. For an extensive overview, see "Features" on the website.
BRIE
An IDE for rapid development of apps
BeOS Rapid Integrated Environment (or BRIE for short) is an IDE for rapid development of BeOS / OBOS / Zeta applications. All code is generated in C/C++ using the BeOS API plus a few extensions.
Development apps C
CatKeysEditor
A tool to translate catkeys used to localize Haiku apps
With CatKeysEditor you can translate the plain text catalog files used to localize Haiku applications. Simply get the 'en.catkeys' of the application to be localized and rename it using the standard two-letter language code of your target, e.g. 'fr.catkeys'. Then open it with CatKeysEditor and start translating. When you're done, you have to recompile the app making use of the new catkeys.
Cutter
A Qt and C++ GUI for rizin reverse engineering framework
Cutter is a free and open-source reverse engineering platform powered by rizin. It aims at being an advanced and customizable reverse engineering platform while keeping the user experience in mind. Cutter is created by reverse engineers for reverse engineers.
Development apps E
ecode
Lightweight multi-platform code editor
ecode is a lightweight multi-platform code editor designed for modern hardware with a focus on responsiveness and performance. It has been developed with the hardware-accelerated eepp GUI, which provides the core technology for the editor. The project comes as the first serious project using the eepp GUI, and it's currently being developed to improve the eepp GUI library as part of one of its main objectives.
egsl
EASY game scripting with LUA
EGSL Package improved by BeSly Software Solutions
Development apps F
Fritzing
Electronic Design Tool
Fritzing is an open-source electronic design tool focusing on makers, hobbyists, and everyone else interested in getting creative with interactive electronics. Document your electronic sketches, learn from example projects, produce your own PCBs, and share with the community. Fritzing differs from other tools through:
- a real-world breadboard view that is hands-on and easy to understand
- a visual component library including the Arduino, Raspberry Pi, SparkFun parts and many more
- an intuitive user interface, with seamless switching between breadboard, schematic and pcb design
The lively community on fritzing.org exchanges projects and tips, and there is also a PCB service 'Fritzing Fab' that produces user designs.
Development apps G
Geany
A fast and lightweight IDE
Geany is a small and lightweight integrated development environment. It was developed to provide a small and fast IDE, which has only a few dependencies from other packages. Another goal was to be as independent as possible from a special Desktop Environment like KDE or GNOME.
Genio
The Haiku IDE
Genio is a native and fully functional IDE for the Haiku. Some of the features of the Genio IDE are:
- LSP Server support (autocompletion, signature help, go to definition / implementation / declaration, quick fix, format, rename)
- Multi-project browser
- Class outline
- Integrated source control with GIT (including opening a remote project)
- Links to file and build errors in Build Log and Console I/O
- Build on save / Save on build
- User templates for quickly creating new files and projects
- Rich editor with many features,
- Full screen and Focus mode
GitQlient
A multi-platform Git client
GitQlient, pronounced as git+client (/gɪtˈklaɪənt/) is a multi-platform Git client originally forked from QGit. Nowadays, it goes beyond of just a fork and adds a lot of new functionality. Some of the major features you can find are:
- Easy access to remote actions like: push, pull, submodule management and branches
- Branch management
- Tag and stash management
- Submodule handling
- Open several repositories in the same window
- Better visualization of the commits and the work in progress
- Better visualization of the repository view
- Improved UI experience
- Easy access to the main Git actions
- Better code separation between Views and Models
- Simplification of different options, keeping it to what a Git client is suposed to be
Gittyup
Graphical git client application
Gittyup is a graphical git client designed to help you understand and manage your source code history. Features include:
- Optional single branch view to focus on your work
- Fullscreen mode
- Tabs for each open repository
- Integrated diff viewer
- Tree view
- Blame view
- Single line staging
- Amending commits
- Solving rebase conflicts
- Starred commits
- Tag selection
- Commit message templates
Globe
A web editor
Globe is an editor with support for HTML and PHP. It offers syntax highlighting and basic project management.
Guitar
Git GUI Client.
Features:
- Open Source, Free Software
- Written in C++
- Powered by Qt 5
Development apps H
HPKG Package Creator
A tool to create HPKG packages
The HPKGCreator creates stand alone packages for Haiku.
Development apps I
Intellij IDEA
Intellij IDEA Community Edition
A Java Integrated Development Environment to develop computer software.
Development apps J
jdTextEdit
An advanced text editor
An advanced text editor, written in Python, with useful features:
- Syntax highlighting
- Code completion
- Session restore
- Code folding
- Macros
- External commands
- Spell checker
- Split view
Development apps K
Kakoune
Modal code editor with a focus on interactivity
Kakoune is a code editor that implements Vi's "keystrokes as a text editing language" model. As it's also a modal editor, it is somewhat similar to the Vim editor (after which Kakoune was originally inspired). Kakoune has a strong focus on interactivity, most commands provide immediate and incremental results, while still being competitive (as in keystroke count) with Vim. Kakoune works on selections, which are oriented, inclusive range of characters, selections have an anchor and a cursor character. Most commands move both of them, except when extending selection where the anchor character stays fixed and the cursor one moves around.
KCachegrind
A profile data visualization tool
KCachegrind is a profile data visualization tool, used to determine the most time consuming parts in the execution of a program. Features:
- KCachegrind visualizes profiles (i.e. runtime characteristics) of applications in various ways, including call graph vizualisations and source/disassembler annotation.
- It can load profiles generated by the cache simulation/call tracer Calltree, a Valgrind tool. Thus, profiling does not need any preparation, can cope with shared libraries and plugin architectures, and does not influence the measuring itself.
- Converter scripts for OProfile, Perl, and PHP.
- Switching between multiple visualization layouts.
- Call graph can be exported as image (PNG).
- Simultaneous display of 2 event types in Call and Annotation View.
Kchmviewer
CHM viewer for KDE
Kchmviewer is a free, open-source CHM (aka MS HTML help) and EPUB viewer written in C++ for Unix, Mac and Windows systems. Unlike most existing CHM viewers for Unix, it uses Trolltech Qt widget library, and could optionally be compiled for better KDE integration. It does not require KDE, but may be compiled with KDE widget support. Since version 5.0 it uses the Webkit API to show the content. The main advantage of kchmviewer is the best support for non-English languages. Unlike other viewers, kchmviewer in most cases is able to correctly detect the chm file encoding and show it. It correctly shows the index and table of context in Russian, Spanish, Romanian, Korean, Chinese and Arabic help files, and with new search engine is able to search in any chm file no matter what language it is written.
KDevelop
A cross-platform IDE for C, C++, Python, QML/JavaScript and PHP
KDevelop is a free software integrated development environment (IDE) developed under the KDE Umbrella. KDevelop provides support for a wide variety of languages (such as C/C++, Python, PHP, Ruby, ...) via an extensible plugin framework.
KDiff3
A diff and merge tool
KDiff3 is a diff and merge program that:
- compares or merges two or three text input files or directories,
- shows the differences line by line and character by character (!),
- provides an automatic merge-facility and
- an integrated editor for comfortable solving of merge-conflicts,
- supports Unicode, UTF-8 and other codecs, autodetection via byte-order-mark 'BOM'
- supports KIO on KDE (allows accessing ftp, sftp, fish, smb etc.),
- Printing of differences,
- Manual alignment of lines,
- Automatic merging of version control history ($),
- and has an intuitive graphical user interface.
Koder
A code editor
Koder is a code editor for Haiku based on Scintilla editing component. It supports syntax highlighting for several programming languages and additional languages can be added by the user. It also features multiline editing, folding, brace highlighting, and some other things supported by Scintilla.
Kommit
Graphical Git Client
Git gui client for KDE.
KTechLab
IDE for microcontrollers and electronics
KTechLab is an IDE for microcontrollers and electronics. It supports circuit simulation, program development for microcontrollers and simulating the programmed microcontroller together with its application circuit.
Development apps L
Lazarus
Feature rich visual programming environment emulating Delphi
Lazarus is a Rapid Application Development Tool for Free Pascal. It comes with the LCL - Lazarus component library, which contains platform independent visual components like buttons, windows, checkbox, treeview and many, many more. The LCL is platform independent, so you can write an application once and then compile for various platforms without changing code. Free Pascal https://www.freepascal.org is a fast Object Pascal compiler, that runs on more than 20 platforms (Linux, Windows, BSD, OS/2, DOS, PowerPC,and many more).
LibrePCB
Design Schematics and PCBs
LibrePCB is a free EDA software to develop printed circuit boards. Key Features:
- Cross-platform (Unix/Linux, Mac OS X, Windows)
- All-in-one (project management, library/schematic/board editors)
- Intuitive, modern and easy-to-use graphical user interface
- Very powerful library design with some innovative concepts
- Human-readable file formats
- Open Source (GNU GPLv3)
Development apps N
NetBeans
An IDE for Java
NetBeans IDE lets you quickly and easily develop Java desktop, mobile, and web applications, as well as HTML5 applications with HTML, JavaScript, and CSS. The IDE also provides a great set of tools for PHP and C/C++ developers. It is free and open source and has a large community of users and developers around the world.
Notepadqq
Multiplatform Notepad++-like editor
Notepadqq is designed from developers, for developers. With its more than 100 supported languages, it is the ideal text editor for your daily tasks.
Development apps O
Okteta
Okteta is a simple editor for the raw data of files.
Features:
- Values and characters shown either in two columns (the traditional display in hex editors) or in rows with the value on top of the character
- Editing and navigating similar to a text editor
- Customizable data views, with loadable and storable profiles
- Tools dockable on all sides or floating
- Numerical encodings: Hexadecimal, Decimal, Octal, Binary
- Character encodings: All 8-bit encodings as supplied by Qt, EBCDIC
- Fast data rendering on screen
- Multiple open files
- Undo/redo support
- Structures tool for analyzing and editing based on user-creatable structure definitions
Openboardview
Open source SDL/ImGui edition software for viewing .brd files
Linux SDL/ImGui edition software for viewing .brd files, intended as a drop-in replacement for the "Test_Link" software and "Landrex". Features:
- Annotations (per board database file)
- Part and pin sizes better represented
- Better outlining of irregular objects (such as connectors)
- Drag and drop
- Recently used file history
- Non-orthagonally orientated caps/resistors/diodes now drawn more realistically
- Adjustable DPI (for working on 2K/4K screens)
- Works with multiple concurrent instances
Development apps P
Paladin
An open source integrated development environment (IDE)
Paladin is an open source integrated development environment (IDE) modeled after BeOS' BeIDE. Paladin's feature set includes:
- Command-line build support
- Quick find file with Alt+F
- Multithreaded builds
- Revision control-friendly project files
- More run options for projects
- Explicit support for debugging with gdb under Haiku
- Bundled helper tools
- Streamlined project settings
- Out-of-the-box support for Lex and Yacc
- Support for text and binary resource files
- Projects can include notes and other files that aren't source code
- Project templates
- Out-of-the-box makefile generation
- Integrated source code management
- 1-click project backups
Pe
A programmer's editor
Pe is a native programmer's editor for Haiku. It features syntax highlighting and a structural view for several programming language, as well as basic support for Makefile and Jamfile project management.
PonpokoDiff
A tool to compare text files
PonpokoDiff is a graphical file comparison utility. It compares two files and shows the differences graphically side-by-side. Lines that differ are highlighted yellow, additional lines are green, removed lines are red. You can select two files in Tracker and choose PonpokoDiff from the 'Open with...' menu to compare them, or drag and drop files into the PonpokoDiff window. The app automatically keeps track of renamed and moved files and offers to reload files when their contents has changed.
Development apps Q
QElectroTech
Create electric diagrams
QElectroTech is an application to create primarily, electrical, electronics, automation and control circuits. However, QElectroTech can be exploited to create mechanical objects to illustrate processes, instrumentation drawings among various creative possibilities. QElectroTech is a good professional quality drafting application for various drawings that form a project. QElectroTech has a large collection of standard and custom symbols, referred to as elements, that describe most of the commonly used components in electrical, hydraulic, pneumatic, computer systems. These elements can be selected drag dropped with mouse on to a diagram editor and connected with lines to represent or describe a system. A large number of such diagrams can be drafted under a project. QElectroTech also consists of an inbuilt element editor that permits creation of newer elements that do not exist in the collection. Elements in the QET collection are not editable i.e read only. But, once the element is drag dropped into a diagram, it is automatically added to “imported” collection in a duplicate copy. This copy of the element will be available for editing to effect suitable changes to create customized symbols.
QCachegrind
GUI to profilers such as Valgrind
QCachegrind is a Qt GUI to visualize profiling data. It's mainly used as visualization frontend for data measured by Cachegrind/Callgrind tools from the Valgrind package, but there are converters for other measurement tools available. Features:
- direct support for profiles generated by Cachegrind/Callgrind
- support for arbitrary event types and derived event types
- sorted function list, with grouping according to ELF object/source file/symbol namespace (such as C++ classes)
- correct handling of recursive cycles (similar to GProf)
- various visualization views for a selected function, such as
- treemap in caller/callee direction
- call graph around function
- source & assembly annotation
Qt Creator
A complete IDE for C/C++ development from the makers of Qt
Qt Creator provides a cross-platform, complete integrated development environment (IDE) for application developers to create applications for multiple desktop, embedded, and mobile device platforms, such as Android and iOS.
Development apps R
Rehex
Reverse Engineers' Hex Editor
Hex editor for reverse engineering, and everything else.
- Large (1TB+) file support
- Decoding of integer/floating point value types
- Inline disassembly of machine code
- Highlighting and annotation of ranges of bytes
- Side by side comparision of whole files or selections
- Lua scripting support
- Virtual address mapping support
- Support for common text encodings (ASCII, Unicode, ISO-8859-X, etc)
- Import and export of Intel HEX files.
- Bitmap data visualisation.
- Binary Templates for automatically annotating data (similar to 010 Editor).
- Bit editing/manipulation.
- Checksumming of files/selections.
Resourcer
A resource and attribute editor with an interface editor
Resourcer is an all-purpose resource and attribute editor with a full-featured interface editor. It also contains plug-in editors for 31 other data types, including images, cursors, sounds, movies, text, and icons.
Development apps S
SimulIDE
Real Time Electronic Circuit Simulator
SimulIDE is a simple real time electronic circuit simulator, intended for hobbyist or students to learn and experiment with simple electronic circuits and microcontrollers, supporting PIC, AVR and Arduino. This is not an accurate simulator for circuit analysis, it aims to be fast, simple and easy to use, this means simple and not very accurate electronic models and limited features. Simplicity and ease of use are the key features of this simulator. You can create, simulate and interact with your circuits within minutes, just drag components from the list, drop into the circuit, connect them and push power button to see how it works. SimulIDE also features a code Editor and Debugger for GcBasic, Arduino, PIC asm and AVR asm. It is still in it's firsts stages of development, with basic functionalities, but it is possible to write, compile and basic debugging with breakpoints, watch registers and global variables.
Development apps T
TinyEMU
A system emulator for the RISC-V architecture
TinyEMU is a system emulator for the RISC-V architecture. Its purpose is to be small and simple while being complete. A RISC-V system emulator supporting the RV128IMAFDQC base ISA (user level ISA version 2.2, priviledged architecture version 1.10) including:
- 32/64/128 bit integer registers
- 32/64/128 bit floating point instructions (using the SoftFP Library)
- Compressed instructions
- Dynamic XLEN change
- VirtIO console, network, block device, input and 9P filesystem
- Graphical display with SDL
- JSON configuration file
- Remote HTTP block device and filesystem
- Small code, easy to modify, few external dependancies.
Development apps U
Umbrello
The UML Modeller
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology. UML allows you to create diagrams of software and other systems in a standard format to document or design the structure of your programs.
Development apps V
Vim
A highly configurable text editor
Vim is a highly configurable text editor built to enable efficient text editing. It is an improved version of the vi editor distributed with most UNIX systems. Vim is often called a "programmer's editor," and so useful for programming that many consider it an entire IDE. It's not just for programmers, though. Vim is perfect for all kinds of text editing, from composing email to editing configuration files. Despite this, Vim can be configured to work in a very simple (Notepad-like) way, called evim or Easy Vim.
Development apps Y
Yab IDE
An integrated development environment for yab
Yab allows fast prototyping with simple and clean code. yab contains a large number of BeAPI specific commands for GUI creation and much, much more. yab wouldn't be complete without the yab-IDE, a powerful development environment, which of course is programmed in yab itself.
Development apps Z
Zeal
A simple offline documentation browser inspired by Dash
Zeal is a cross-platform, open source, offline documentation browser for software developers, inspired by Dash Docs for macOS and iOS. Zeal has over 195+ docsets and are all compatible with Dash docsets.