Montag, 2. Januar 2017

Ein frohes 2017!

Und schon wieder ist ein Jahr rum. Klingt komisch, is aber so...

Als ich heute eine kleine Änderung im FDK gemacht habe, habe ich "selbstverständlich" auch im Changelog die Änderung notiert und musste feststellen, der 1. Eintrag war schon im Jahr 2015...

2015 habe ich damit schon begonnen? Kaum zu glauben... Wie viel Entwicklungszeit schon in den Units steckt.

Natürlich habe ich nicht 15 Monate kontinuierlich daran gearbeitet, sondern immer dann, wenn ich eine neue Routine gebraucht habe diese - in einer allgemeinen Version - ins FDK aufgenommen. Sehr viel Zeit ist aber auch in Änderungen und Verbesserungen geflossen.

Ein kleines Fazit - nur für mich:

Das FDK zu entwickeln war die beste Entscheidung die ich seit langem getroffen habe. Jede Stunde die in die Entwicklung geflossen ist, habe ich schon mehr als doppelt bei meinen eigenen Projekten gespart...

Mein Ziel war es.
  1. Wiederverwendbaren Code zu produzieren.
  2. Mit Dependency Injektion und Factorys, meine Units unabhängige von einander zu erzeugen.
  3. Wrapper zu verwenden, die einem die Verwendung von XY erleichtern.
  4. Projekte im MVVM - Style zu programmieren.
  5. Plattform unabhängig zu programmieren.
  6. Threadsave zu programmieren.
  7. Zeit zu sparen.
Alle diese Punkte werden erfüllt.

Ein Beispiel aus einem aktuellen Projekt (Die Unit ist nicht mal 500 Lines lang)

Uses
  System.Classes,
  System.SysUtils,
  System.Rtti,
  System.Generics.Defaults,
  System.Generics.Collections,
  REST.JSON,
  Delphiprofi.FDK.AnyFactory,
  Delphiprofi.FDK.FMXHelpers,
  Delphiprofi.FDK.Streams,
  Delphiprofi.FDK.Enumerables,
  Delphiprofi.FDK.Compressing.Zlib,
  Delphiprofi.FDK.REST,
  Delphiprofi.FDK.JSON,
  Delphiprofi.FDK.Utils,
  Delphiprofi.FDK.Helpers,
  Delphiprofi.FDK.Types,
  Delphiprofi.FDK.FluidCreator,

  Delphiprofi.FDK.FireDac,
  Delphiprofi.FDK.LocalWebModul,
  Delphiprofi.FDK.Messages,
  Delphiprofi.FDK.TreeviewHandler

  MyInterfaces;

Macht aber den kompletten IO zwischen lokaler Datenbank, dem REST Server und der Applikation. Hierfür habe ich KEINE EINZIGE Komponente auf ein Form geklickt.

Abgesehen von wenigen Ausnahmen, habe ich im gesamten Projekt kein einziges Konstrukt wie:

Foo := TFoo.Create;
try
  try
    // Whatever
  except
    On E : Exception
      begin
         // Whatever
      end;
  end;
finally
  FreeAndNIL(Foo);
end;

Da es zur Zeit noch kein ARC für Windows gibt, nutze ich konsequent Interfaces und Ref-Counted Objecte... Somit läuft der Code immer gleicht, egal ob mobile oder Windows/OSX Version.

Es bleibt spannend...

Samstag, 3. Dezember 2016

FDK - Setup nearly ready...

Hi!

Nun ist es soweit. Das dynamische Installationsprogramm fürs FDK ist in wenigen Tagen online.


Wie immer war "normal" zu "normal". Daher habe ich mich entschlossen, das Setup komplett neu in Firemonkey - natürlich mit dem FDK - selber zu programmieren.

Ggf. wird das Setup per Setup installiert... Oliver hatte da so eine Idee...

Warum dann ein eigenes Setup?

Ganz einfach, ich hatte keine Lust auch noch einen Webshop - Bestellformular - Registrierung  - Trailinstaller usw. für die Webseite zu programmieren... Und natürlich wollte ich kein deinstallieren / installieren Prozess  jedes mal machen müssen, daher verhält sich der Installationsprozess wie ein Update von einem Repository.

Dann wird nach dynamisch entschieden, was überhaupt - per REST - herunter geladen werden muss.

Das Ganze setzt - auf den in Zukunft noch kommenden - Zusatzmodulen:

- REST-AddOn
- MVVM-AddOn
- FDK-REST-Server

auf. Eine enorme Erleichterung, wenn man diese Dinge nicht selber (LOL) programmieren muss.

Das MVVM-AddOn nutzt auch mein eigenes NotVisual-LiveBinding, welches über die RTTI die Komponenten der Views mit den Propertys des ViewModels verbindet...

Ein ganzes Adress-Formular ans ViewModel binden? - piece of cake...
 
Alle die bereits das Early-Bird Paket bestellt haben, erhalten in den nächsten Tagen eine e-Mail mit dem Downloadlink.
 
Alle anderen können es gerne noch bestellen!
 
 
Einfach eine e-Mail mit dem Betreff : "Early-Bird" und den Kontaktdaten an Sysop@delphiprofi.de senden

Samstag, 19. November 2016

FDK: Hat vielleicht den falschen Namen?

Hallo Zusammen!

Böse-Zungen behaupten FDK steht eigentlich nicht für:

Firemonkey-Development-Kit sondern für Frank's-Development-Kit.

Dem ist "natürlich" nicht so... Viele Pattern und Units kommen auch von Sir-Rufo.

Aber aus aktueller Sicht, muss ich vielleicht zugeben, dass die Namensgebung nicht schlau gewählt war, denn

90% oder sogar mehr der Routinen funktionieren
genauso für VCL-Programme.
 
Warum also Firemonkey? Ganz einfach, weil die Pattern und viele Routinen entstanden sind aus der Notwendigkeit unter FMX anders zu programmieren als unter Windows und VCL. Und das ist immer noch der Keypoint. Jede neue Routine, die es ins FDK schafft, wird so programmiert, dass Sie optimal unter FMX und den mobilen Plattformen funktioniert.
 
Also liebe VCL Programmierer - Klar ist das FDK auch etwas für Euch... Und ja, auch um Code aus alten Projekten zu refrakturieren!
 
 

Mittwoch, 2. November 2016

Freitag, 30. September 2016

FMX & Sony SmartWatch 3

Meine neue SmartWatch 3 ist gerade gekommen...

Ausgepackt - natürlich mit dem iPhone verbunden - eingerichtet -  Developer Modus - Testapp drauf:

Läuft!
 
LowLevel3D Demo aus den Beispielen...
Läuft!
 
Apps deinstallieren - kurz googeln : Stackoverflow ->  per adb.exe uninstall packagename
Läuft!
 
Test abgeschlossen - Timer stoppen 10 Min... :-)
 
So mag ich es...
 
Jetzt beginnt die Arbeit.

Wie alt man ist, stellt man fest wenn:

Ein Raum voller Programmierer... alle jünger ( < 25 )... Die Frage kommt: Und was machst Du?

Dann gibt man die ein oder andere Antwort und muss feststellen... Ich bin alt...

Woran merkt man das? Die haben alle eine völlig andere Sichtweise auf die Technik und  die Programmierung.

den:

  • Man(n) "schwafelt" von Zeiten als es noch kein Internet gab.
  • nicht jeder ein Handy, geschweige den ein Smartphone hatte.
  • Eine 1GB Festplatte 5000 DM kostete.
  • Es keinen Sinn machte größere Festplatten als 30MB zu kaufen, da das Betriebssystem nicht mehr adressieren konnte.
  • Man(n) mit dem Modem sich in eine Mailbox eingewählt hat um stundenlang ein Bild in 320x200 zu laden.
  • Das wenn man "online" war - keiner im Haus mehr telefonieren konnte.
  • Man(n) nach dem kompilieren erst mal die Diskette mit dem Linker einlegen musste
  • Man(n) Programme in Assembler programmierte und 1000Byte Code schon richtig viel war...
  • Ein auf den Druckkopf des Nadeldruckers geklebter Lichtsensor als Scanner funktionierte...

Verwunderte Augen schauen einen an... Und man(n) stellt fest... Ich komme aus der Steinzeit.

Und dann die Antwort die alles verändert. : "Ich wäre froh wenn ich so viel Erfahrung hätte"

Ich bin nicht alt... Ich bin nur schon viel länger dabei...




Mittwoch, 28. September 2016

Delphitage 2016 - Nachlese

Die Delphitage 2016 waren sicherlich das Highlight des "Delphijahres".
Es ist zwar noch nicht ganz rum, aber den Spass den Ich/Wir auf dieser Veranstaltung hatten ist schwer zu toppen.

Am besten spiegelt es vielleicht diese Foto von Alexander (c), Olaf (r) und mir (l) wieder:



Interessante Gespräche rund um Delphi sind auf so einer Veranstaltung selbstverständlich, aber es bot sich auch genügend Zeit für private Gespräche.

Für mich immer wieder interessant zu sehen, wie vielschichtig die Umgebungen und Voraussetzung der anderen Developer sind.

Mein persönliches Fazit aus diesen Gesprächen: Viele Firmen und Projekte hängen noch an alten Delphi Versionen. Hierbei geht es um:

1.) Unicode Umstellung
2.) Datenbank-Komponenten (BDE usw.)
3.) Frendkomponenten

Für mich wäre es nicht mehr möglich mit einer Delphiversion vor XE6 - produktiv - zu arbeiten. Ob wohl mein (Monster-)Hauptprojekt auch noch nicht die Unicode-Umstellung vollzogen hat. Ich kenne daher die Probleme.

Bei entsprechendem Interesse würde ich in diesem Zusammenhang auch einen speziellen Workshop zu diesem Thema anbieten.

PS.: Interessant zu sehen... Es gibt einen neuen Menüpunkt auf der EMBT Homepage zu diesem Thema!