DragonFireSDK – Endlich unter Windows für’s iPhone entwickeln

Eigentlich bin ich ja kein Freund von Apple: Fragwürdige Firmenpolitik, zu viele Patentklagen, dass man fast denken könnte selbiges wäre ihr Core-Business und das Gravierenste: Die Entwicklerfreundlichkeit. Man kann nur auf einem MacOS entwicklen und ist dann gezwungen seine Software über den AppStore zu vertreiben; Es sei denn man jail-breaked seine Kiste.

Letzteres ist übrigens seit kurzem in Amerika legal.

Nun ist es aber so, dass Mobile-Development-Skill für IPhones und IPads immer gefragter wird und ich dem Trend nicht hinterlaufen will. Also hab ich mich mal damit auseinandergesetzt. Was tut man aber wenn man keinen Mac besitzt? Wie soll man nun Anwendungen entwickeln?

Dafür gibt es eine (legale) Lösung die sich DragonFireSDK nennt. Eine einfache Bibliothek die sich in z.B. Visual Studio integrieren und mit C++ ansteuern lässt. Damit lassen sich dann recht easy kleinere Anwendungen schreiben die z.B. folgende Funktionen umfassen:

  • GUI Design (Knöpfchen drücken, Texte / Bilder darstellen)
  • Systemfunktionen nutzen (Bildschirmanzeige etc verändern)
  • “Gleichgewichtssinn” des iPhones benutzen
  • WebRequests absetzen

Continue reading “DragonFireSDK – Endlich unter Windows für’s iPhone entwickeln”

Skin-Komponente für Delphi – BusinessSkinForms von AlmediaDev

Hallo zusammen,

heute ein kurzer Artikel über ein Komponentenpaket das ich mir kürzlich für ~80€ zugelegt habe: BusinessSkinForms von AmediaDev. Worum geht’s dabei? Ganz einfach, das Paket enthält ca 100 Komponenten die die Anwendungen die ihr schreibt um einiges besser aussehen lassen. Dabei wird nicht nur die Form, also quasi der Umriss der Anwendung, geändert sondern auch die Buttons, Listen, Regler, Comboboxen etc dem Skin angepasst.

Ich muss zugeben ich hab lange gezögert das Geld auszugeben aber jetzt bin ich sehr zufrieden, vorallem weil das Paket mit ~100 Skins kommt und man wirklich was für jeden Geschmack findet!

Jetzt aber noch ein Beispielbild um euch den Unterschied vor Augen zu führen:

Wie funktioniert das Ganze? Ihr zieht 3 Komponenten auf eure Form, weist der einen eine *.skn Datei zu und verknüpft die beiden anderen, dann startet ihr das Programm und schon sieht alles viel besser aus 😉

Der Support ist übrigens erste Sahne! Da ich immernoch mit Delphi 7 Personal entwickle und die Version nicht offiziell unterstützt wird wurde mir innerhalb von 1 Stunde ein Paket zusammengestellt, sodass ich die Komponenten voll nutzen konnte. Dafür mal Thumbs up!

Image Converter

Wieder mal was neues für die Tools-Sparte. Der “Image Converter” konvertiert Bilddateien von einem Format in das nächste. Die Anwendung kann entweder als GUI oder als Konsolenanwendung benutzt werden. Eingabeformate sind: tiff, gif, rgb, pic, cel, tga, pcx, pcd, ppm, pal, cut, fax, rla, bmp, psd, psp, png, … .
Ausgabeformate sind derzeit bmp, jpg, gif, png. Bilder können ebenso vergrößert und verkleinert werden. Weiterhin können Bilder gedreht und Effekte darauf angewendet werden.

Im Prinzip ein ganz überschaubares Tool, stark ist es deswegen weil es viele Formate unterstützt.

[DOWNLOAD]

Viel Spaß damit 🙂

Installieren von Graphics32 unter Lazarus

graphics321Dies soll nur ein kurzer Artikel werden der erklärt wie man das freie Komponentenset Graphics32 – zu finden unter www.graphics32.org – unter Lazarus installiert. Warum das ganze? Weil es leider nicht so funktioniert wie in der Dokumentation der Entwickler angegeben 😉

  1. Öffnet zuerst das Paket “GR32_L.lpk” auf dem herkömmlichen weg (“Package -> Package-Datei (.lpl) öffnen…”) und klickt oben auf “Kompilieren”
  2. Schließt das Paket wieder über “Datei -> Alle Editorfenster schließen”
  3. Öffnet das Paket “GR32_DSGN_L.lpk” über “Package -> Package-Datei (.lpk) öffnen…” und klickt erst auf “Kompilieren”, dann auf “Installieren”
  4. Tragt unter “Projekt -> Compilereinstellungen …” folgende 2 Pfade unter “Andere Units” ein:
  • $(LazarusDir)componentsgraphics32Packages
  • $(LazarusDir)componentsgraphics32

Beide bitte mit Semikolon getrennt. Dann vergesst nicht euer Projekt zu speichern sonst findet er das Manifest für die Form nicht, dann sollte auch alles laufen 🙂

Das war’s auch schon! Was war daran jetzt so schwer?

Die Doku von Graphics32 sieht den Schritt 1 und 4 nicht vor und man bekommt deswegen unter Umständen den Fehler, dass die Datei “GR32_l.pas” nicht existiert. Obwohl sie das tut!

Service-Fassaden – Ein weiteres Entwurfsmuster leicht erklärt

Wo es vor nicht allzulanger Zeit schon einmal um Design Patterns (Entwurfsmuster) ging (Wir erinnerun uns an’s Singleton) will ich heute mal versuchen eine leicht verständliche Erklärung von Service-Fassaden zu geben. Eine Service-Fassade ist ein Entwurfsmuster – genauer gesagt ein Strukturelles Muster, da es eine Struktur abbildet (Das Singleton war ein Erzeugendes Muster, da es eine Struktur anlegt) – zur Darstellung einer Schnittstelle zu stark technischen Systemen die selten von außen angesprochen werden.

Die Fassade stellt nun Funktionen dieser Systeme zur Verfügung und verteilt eingehende Funktionsaufrufe an selbige.
Dadurch wird das Prinzip der Losen Kopplung unterstützt. Sprich, Schittstellen zwischen 2 Systemen werden nich hartkodiert sondern über eine Fassade geleitet die die Services der SubSysteme anderen Systemen zur Verfügung stellt. Ändert sich nun eines dieser SubSysteme, muss nur die Fassade angepasst werden und nicht das aufrufende System. Das Ändern der Fassade ist wesentlich leichter und ist im Regelfall schneller erledigt.

Continue reading “Service-Fassaden – Ein weiteres Entwurfsmuster leicht erklärt”

[Plugin] amBx-Plugin für’s 3D GameStudio

ambxHallo liebe Leute, heute stelle ich ein neues Plugin für’s 3D GameStudio vor. Dieses erlaubt Philips Ambilight Hardware auch in der Spieleengine zu benutzen um Wind, Lichter oder physische Eindrücke in Spielen oder Anwendungen realistischer darzustellen und den Benutzer auf ganz anderen Sinneskanälen anzusprechen als er es gewohnt ist.

Was ist amBx?
AmBx ist eine Hardwarespezifikation um verschiedenfarbige Lampen, Ventilatoren und Vibrationseinheiten aus Computerprogrammen heraus zu steuern. Hauptsächlich findet die Hardware in Spielen Verwendung.

Beispiel 1
Beispiel 2
Beispiel 3

Dieses Plugin ist eine DLL die auf herkömmlichen Wege in die Engine eingebunden wird (DLL ins “Plugin”-Verzeichnis kopieren, Funktionen als Prototypen in die Headerfiles eintragen, fertig). Ihr findet unten 2 Archive, das Src-Archiv zeigt wie die DLL in ein Spiel eingebunden wird, das Bin-Archiv zeigt die fertige Anwendung.

Beispielspiel (bin)
Beispielspiel (src)
Benötigte DLL (siehe “Was ist wichtig?”)

How to use (Englisch – pdf)

Continue reading “[Plugin] amBx-Plugin für’s 3D GameStudio”

[Tool] TextureTiles – Gekachelte Texturen vergrößern

Solltet ihr für Grafiken, Texturen, etc Bilder vergrößern müssen, dann ist dieses kleine Tool genau das richtige für euch. Es erweitert das Ursprungsbild in Breite und Höhe um einen frei wählbaren Faktor.

Hintergrund ist, dass ich mich gerade in Blender einarbeite und viele Texturen die man erstellt oder im Netz findet einfach zu klein sind.

Den Download gib’s hier: DOWNLOAD

Nach Winter kommt Spring

Einführung
Nachdem der erste richtige Job meines Lebens begonnen hat, hatte ich auch gleich die Chance mit spärlichen Vorkenntnissen in mein erstes Kundenprojekt zu kommen. Kostenlos versteht sich. Kunde war ein großer deutscher Finanzdienstleister der beschlossen hatte einige Kernprozesse seines IT-Umfelds auf Java umzustellen.
Darunter wurde in dem Framework auch Spring verwendet. Ein Schlagwort, dass jedem Informatikstudenten schonmal untergekommen ist, aber von dem nur die wenigsten wissen was genau Spring tut.
In diesem Artikel will ich mal mit wenigen Sätzen versuchen das so einfach wie möglich zu verdeutlichen.

Unser Beispiel
Da ich gerne an Beispielen erkläre, nehmen wir uns hier ein Auto vor. Ein Auto kann nur fahren, wenn ein funktionierender Motor darin verbaut ist, wenn es einen gefüllten Tank enthält und wenn ein Fahrer samt Führerschein am Steuer sitzt. Diese Bedingung soll hinreichend sein um unser sehr rudimentäres Auto zum Fahren zu bringen.

Die Vergangenheit
Wenn wir jetzt die Eben aufgezählen Objekte auf die Informatik mappen, sprich eine Klasse CAuto, CMotor, CTank, CFahrer und CFuehrerschein erstellen, dann brauchen wir von jeder Klasse eine Instanz die wir ja gewöhnlich per Constructor wiefolgt erstellen:

CMotor meinMotor = new CMotor();
CTank meinTank = new CTank(true); //true = ist gefüllt
CFuehrerschein meinFuehrerschein = new CFuererschein();
CFahrer meinFahrer = new CFahrer(meinFuehrerschein);
CAuto meinAuto = new CAuto(meinMotor, meinTank, meinFahrer);

Jedesmal, wenn wir also mit “meinAuto” arbeiten müssen, müssen wir alle anderen Objekte auch definieren und erstellen. Das sorg natürlich für eine riesige Menge an Speicher die unnützerweise verbraucht wird und jeder Menge Zeilen die sich immer wieder wiederholen.

Continue reading “Nach Winter kommt Spring”