Tipps & Workshops

für Endbenutzer und Entwickler

"Learning to Program with Haiku" in Buchform

Jon "DarkWyrm" Yoders C++ Programmierkurs ist jetzt auch als Buch erhältlich. Auf 166 Seiten wird in 23 Lektionen in die C bzw. C++ Programmierung eingeführt.
Während der erste C-Teil noch ziemlich Plattform-unabhängig ist, bezieht sich das eigentliche Ziel C++ stark auf die Haiku API. Sehr früh wird das Erstellen von Fenstern und die Auswertung von Buttons und Menüs gezeigt. Dabei steht die Praxis im Vordergrund: In fast jeder Lektion wird ein kleines Projekt mit reichlich erklärenden Kommentaren aufgebaut und mögliche Fehler in kleinen "Bug Hunts" aufgezeigt, die es zu lösen gilt.

Die gedruckte Version gibt es bei Lulu.com für 20,50 EUR zzgl. Versand (ca. 8,40 EUR, falls ich auf die richtige Seite gestoßen bin... Die Lulu Seiten scheinen etwas unaufgeräumt. Web+ versagt hier oft, am besten unter einem anderen OS ansurfen). Alternativ kann man es sich auch als PDF direkt herunterladen und zahlt dann nur 8,20 EUR.
Wer schnell ist, kann bis zum 15. August 2010 vor dem Bezahlen noch einen Gutschein mit dem Code BEACHREAD305 einlösen, um einen 15% Discount zu erhalten.

C++ Kurs, Lektion 23

Mit der 23. Lektion schließt DarkWyrms Einführungskurs zu C++ und der Haiku API. In der letzten Folge geht es weniger ums Programmieren als um den letzten Schliff für ein Programm. Mittels Ressourcen wird der Anwendung ein Icon verpasst, mit dem FileType Add-on bestimmt man das Startverhalten und fügt Informationen zur Programmversion hinzu. Bevor man das Ergebnis seiner Programmieranstrengungen veröffentlicht, sollte man sich kurz Gedanken über die zu verwendende Lizenz machen. Dazu werden verschiedene Modelle kurz vorgestellt: MIT, GPL, LGPL, MPL und Public Domain. Zum Schluss gibt es noch ein paar Tips in welchem Format man das Ganze unters Volk bringen kann - als ZIP oder PKG.
DarkWyrm beschließt seinen Einsteigerkurs mit Empfehlungen welche fortgeschrittenen Themen man sich noch anschauen sollte, falls man tiefer in die Programmierung einsteigen möchte, und welche Bücher dabei helfen können.

Alle Teile des C++ Kurses finden sich in DarkWyrm's Library, bzw. auf der Haiku Website. Außerdem überarbeitet DarkWyrm nochmal alle Teile, um sie zu einem Buch zusammenzufassen, das es eventuell auch als e-Book geben wird. Alles zu einem fairen Preis, versteht sich. Die PDF Version bleibt natürlich weiterhin verfügbar und kostenlos.

Später dieses Jahr möchte DarkWyrm einen weiteren Kurs starten, dann für fortgeschrittene Themen wie Multithreading, Add-ons, Queries und Attribute, Tracker und mehr.

C++ Kurs, Lektion 22

Zu Beginn der 22. Lektion wird kurz das Thema Benutzerfreundlichkeit angeschnitten. Dazu sollte man folgende Überlegungen anstellen:
Wer wird das Programm hauptsächlich benutzen?
Was werden die Hauptaufgaben des Programms sein?
Gibt es weitere Aufgaben die mit übernommen werden könnten ohne die Komplexität über Gebühr zu erhöhen?
Werden eventuelle Fehler elegant abgefangen?
Dann geht es weiter mit der Entwicklung der grafischen Oberfläche für das in der letzten Lektion begonnene HaikuFortune.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

C++ Kurs, Lektion 21

Mit der 21. Lektion beginnt die letzte Runde in DarkWyrms C++ Kurs. Es ist die erste Hälfte eines Zweiteilers bei dem eine etwas anspruchsvollere Anwendung programmiert werden soll. Das Ziel ist eine etwas aufgebohrte Version von "fortune", samt grafischer Oberfläche: aus einer per Zufall gewählten Datei soll ein Sinnspruch (fortune cookie == Glückskeks) gezogen werden, der in einem Fenster dargestellt wird. Der Benutzer kann sich dann per Button einen weiteren Spruch ansehen oder das Fenster schließen usw.

Dieser erste Teil beschäftigt sich erst mal mit dem Backend bevor dann im nächsten Teil die GUI an der Reihe ist. Das Hauptaugenmerk liegt auf der BFile Klasse, mit der komfortabel Dateien gelesen, geschrieben, erstellt oder gelöscht und ebenso deren Attribute bearbeitet werden können.
Wie schon bei früheren Lektionen gibt DarkWyrm das Grundgerüst der Anwendung vor, die Tips zur Implementierung befinden sich in Kommentaren an den entsprechenden Stellen.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

C++ Kurs, Lektion 20

Die Folge 20 macht mal eine kleine Pause mit dem Interface Kit und der GUI Programmierung. Diesmal ist das Storage Kit dran, welches immer dann zum Einsatz kommt, wenn mit Dateien oder Verzeichnissen umgegangen wird. Die Lektion beginnt mit einer Kurzvorstellung der wichtigsten Klassen in diesem Kit, bevor der Einsatz einiger von ihnen in einem gut dokumentierten Beispielprojekt erklärt wird. listdir ist ein simples Kommandozeilenprogramm, das die Dateien/Ordner in einem Verzeichnis samt ihrer Größe auflistet.
Demnächst geht es dann weiter mit der Programmierung einer komplexeren "echten" Anwendung. Dies wird über mehrere Folgen geschehen und alles gelernte zusammenfassen. Damit dürfte dann der erste Teil von DarkWyrms Kurs beendet werden.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

C++ Kurs, Lektion 19

Die 19. Folge im C++ Kurs beschäftigt sich mit einem besonders nützlichen Haiku Konzept, dem Translation Kit. Mit ihm können ohne besondere Vorkehrungen alle Grafikformate benutzt werden, für die ein sogenannter "Translator" installiert ist. Dieser übernimmt die Übersetzung zu/aus dem jeweiligen Format, das Programm selbst arbeitet nur mit BBitmaps.
Die eigentlichen Daten können sich in einer eigenen Datei oder, wie im Beispielprogramm "Emo" dieser Folge, als Resource in der Programmdatei selbst befinden. Eine Resource kann jede Art von Daten aufnehmen, die dann anhand ihres Typs, Namens und einer individuellen ID unterschieden werden.
"Emo" zeigt wie fünf kleine Smiley PNGs aus der in die Emo-Binärdatei kompilierte Resource ausgelesen und nacheinander in einem Fenster dargestellt werden. Per Mausklick wechseln die Smiley Grafiken.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

C++ Kurs, Lektion 18

Die 18. Lektion beginnt mit einem Überblick zu den auf der großen BView Klasse aufsetzenden GUI Objekten, von BAlert und BPictureButton zu BSlider und BTextView. Weiter geht es mit den verschiedenen Möglichkeiten zum Typecasting unter C++, bei dem die Daten einer Variablen in einen anderen Typ gewandelt werden.
Das Beispielprogramm dieser Lektion zeigt den Umgang mit BListView in einem scrollview: Aus einer Liste kann der Text ausgewählt werden, der als Fenstertitel erscheint, ein Button führt einen Reset des Titels aus.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

C++ Kurs, Lektion 17

In Lektion 17 wird anhand eines einfachen Programms gezeigt, wie Menüs erzeugt werden; im Beispiel wird die Farbe eines Rechtecks geändert. Das Rechteck ist ein BView der mit der Funktion AddChild() dem BWindow hinzugefügt wird. Auf gleiche Weise wird die BMenuBar montiert, die per AddItem() mit einem Menü bestückt wurde, was seinerseits mittels AddItem() einige Farben als Menüpunkte erhält.
Jeder Menüpunkt schickt bei seiner Anwahl eine BMessage, die in der MessageReceived() Funktion des Fensters ausgewertet wird, um per SetViewColor() die Farbe des Rechteck-BViews entsprechend zu ändern.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

Und zum Abschluss noch eine gute Nachricht: DarkWyrm hat seine Coding-Pause beendet und sich als aktiver Programmierer beim Haiku Projekt zurück gemeldet. Willkommen zurück!

C++ Kurs, Lektion 16

Die 16. Folge beschäftigt sich ausnahmsweise nicht wieder mit der Haiku API, sondern mit einigen C++ Grundlagen. Den Anfang macht das Überladen von Funktionen und Operatoren, um je nach übergebenen Parametern unterschiedliche Funktionen aufzurufen bzw. um auf bestimmte Objekte speziell abgestimmte Operatoren verwenden zu können.
Weiter geht es mit dem Einsatz von Kopier-Konstruktoren, mit denen sichergestellt wird, dass auch auf dem Heap angelegte Eigenschaften eines Objekts mitkopiert werden, was ansonsten zu schwer zu findenden Fehlern führen kann.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

C++ Kurs, Lektion 15

Die 15. Lektion gibt einen Überblick über den Aufbau der Haiku API und stellt kurz die einzelnen Systembibliotheken, die sogenannten "Kits", vor. Anschließend wird auf die besondere Bedeutung des "Messaging" in der Haiku Programmierung eingegangen, die verschiedenen Sender und Empfänger solcher Nachrichten aufgezählt und die zentrale Stelle von deren Management im eigenen Programm vorgestellt: Die MessageReceived() Funktion, in der man auf alle möglichen Benachrichtigungen reagieren kann.

Der Quellcode für ein Beispielprogramm, bei dem man durch Klicken eines Buttons den Fenstertitel ändert, liegt diesmal auch als 15ClickMe.zip zum Download bereit. Trotzdem sollte man den Code besser von Hand abtippen, da man sich dadurch alles viel besser einprägen und nachvollziehen kann.

Alle Lektionen des Kurses sind in DarkWyrm's Library nachzulesen.

Inhalt abgleichen