Die Neuerungen in Xojo 2018r1

Dieser Release war wirklich eine schwere Geburt: Die erste Prerelease-Testphase wurde Anfang Dezember letzten Jahres eingeläutet, und es deutet einiges darauf hin, dass der jetzige Erscheinungstermin durch die baldige XDC begründet wurde. Aber von Anfang an:

Debugger

Die wahrscheinlich am längsten erwartete gute Nachricht zuerst: Xojo 2018r1 kann nun endlich auch Windows 64 Bit-Anwendungen debuggen. In diesem Rahmen wurde dann auch gleich LLVM 6.0 für alle Plattformen eingebaut. Das könnte diese Version für mathematische Anwendungen interessant machen, denn u.a. wurden Vektorberechnungen verbessert. Eventuell hat diese Änderung andererseits Auswirkungen auf die Kompilierungszeiten mit aggressiver Optimierung.

Also alles gut mit dem Debuggen jetzt? Aktuell scheint es hier und da noch zu klemmen. Erste eigene Tests unter macOS zeigten einen hin und wieder den Zugriff verlierenden Debugger, der dann nur noch einen „Resume“-Button präsentierte. Für Windows-Entwickler definitiv ein wichtiger Schritt voran, auch wenn die Zeichen nach einem baldigen Dot-Release gestellt aussehen.

GUI

Was auch für die zweite, eigentlich sehr positive Windows-Änderung gilt: Der flackernde GUI-Aufbau ist Geschichte. Um in den Genuss der Umstrukturierungen zu kommen, gilt es allerdings ein paar Dinge zu beachten:

  • Sämtliche Steuerelemente besitzen nun eine Transparent-Property. Diese sollte nach Möglichkeit überall ausgeschaltet sein. Das ist auch der Standard beim Erstellen neuer Projekte. In älteren Projekten war der Vorgabewert True; hier mag also viel umzustellen sein.
  • Gleiches gilt nach Möglichkeit auch für die EraseBackground-Property des Canvas-Steuerelements. Ist diese nicht False, wird bei jedem Neuzeichnen der Canvas erst durch ein weißes Rechteck gefüllt, was zu wahrnehmbarem Flimmern führen kann.
  • Ist der Bildschirmaufbau dann noch langsam, sollte probehalber der DoubleBuffer des Canvas ebenfalls ausgeschaltet werden. Häufig beschleunigt dies das Zeichnen.
  • Wer ältere Projekte weiterpflegt, sollte kontrollieren, dass er nicht in die Canvas.Graphics-Property zeichnet, sondern ordentlich innerhalb des Paint-Events in Canvas.g. Canvas.Graphics ist schon seit 2011 abgekündigt und sollte nicht benutzt werden.
  • Ein Neuzeichnen des Canvas sollte nach Möglichkeit immer mit
    CanvasX.Invalidate(False)

    aufgerufen werden. Der Boolesche Parameter sorgt dafür, dass kein EraseBackground vor dem Neuaufbau stattfindet.

  • Weder Window.Backdrop noch Canvas.Backdrop sollten benutzt werden, sondern stattdessen Canvas.Paint. Vom direkten Zeichnen in das Fenster wird ab- und stattdessen zum Canvas geraten, ebenso wie die Verwendung von ImageWells unter Windows nicht empfohlen wird.
  • Nach Möglichkeit sollten sich Steuerelemente nicht überlappen.
  • Bei scrollbaren ContainerControls kann die Aktivierung des DoubleBuffers dazu beitragen, Flimmern zu vermeiden.
  • Älterer Code, der half, in früheren Xojo-Versionen das Flimmern zu vermeiden, indem etwa per Declare der Bildschirm-Neuaufbau bis zur Fertigstellung des Layouts ausgeschaltet wurde, muss deaktiviert werden. Er wirkt sich heute eher kontraproduktiv aus.

Eine ganze Menge notwendiger Änderungen kann da also zusammenkommen. Und leider ist der Erfolg zurzeit noch nicht garantiert: Einige Anwender berichten trotz aller Umbaumaßnahmen von einem extrem verlangsamten Bildaufbau, andere sind hochzufrieden. Der entscheidende Grund ist zurzeit noch unbekannt.

Einige mögliche Workarounds für komplexe Layouts, die eine gewisse Staffelung von Controls bedingen, hat Julien Samphire im Xojo-Forum erarbeitet. U.a. empfiehlt er das Einbetten in ein Rectangle statt eines Canvas für nicht-scrollbare Layoutabschnitte. Leider steht sein Vorschlag im nicht für alle zugänglichen Prerelease-Forum. Ein Testprojekt zumindest hat er auf seiner Dropbox freigegeben.

Linux & RaspberryPi

Hier gab es diverse Bugfixes sowohl optischer als auch funktioneller Natur, inklusive der korrekten Pfade für diverse SpecialFolder. Für 64 Bit-Linux und auf dem Raspi muss nun noch libunwind installiert sein. Das macht man per Terminal-Eingabe:

sudo apt-get install libunwind8

iOS

iOS 11 wird nun unterstützt, ebenso wie die Bildschirmgrößen des iPhone X.

Web

Noch vor der Vorstellung des Web 2.0-Frameworks auf der XDC hat die Internetplattform einige sehr angenehme Modernisierungen erfahren:

Der WebMoviePlayer verwendet nun den nativen HTML5-Videobrowser auf allen Plattformen und besitzt Events für seine Statusveränderungen, die WebListbox lässt sich auch per Cursortasten steuern und auch der WebMapViewer benimmt sich jetzt besser. Die größten Veränderungen hat allerdings der WebFileUploader erfahren: Er transportiert jetzt auch Dateien > 2 GB, kann seine Daten per Drag & Drop erhalten  und per Filter ihren Typ begrenzen, besitzt eine UploadTimeout-Property und liefert per UploadProgress-Event einen Integer für den schon übertragenen Dateiinhalt (als Prozentwert).

Die Unterstützung für Internet Explorer 9 wurde mit dieser Xojo-Version gestrichen.

Benutzer der Xojo Cloud können diverse Server-Statistiken nun direkt in der IDE einsehen.

SQLite

Die überall verfügbare Datenbank wurde auf Version 3.22.0 gehievt und bietet damit auch Unterstützung für AES-256-Verschlüsselung.

Xojo (die Sprache)

Einige wichtige Bugs wurden hier behoben. Unter anderem die möglichen Präzisionsverluste beim Currency-Datentyp. Sollte ein Ergebnis nicht berechenbar sein, wird eine Overflow-Exception ausgelöst. Auch Konvertierungsprobleme insbesondere unter 64 Bit (Fließkomma nach Integer, Text.ToHex/Octal/Binary) sollten jetzt der Vergangenheit angehören. JSONItem passt jetzt genauer auf, dass ihm nur Datentypen zugewiesen werden, die auch per toString darstellbar sind.

… und die IDE

Autocomplete sollte besseren Überblick behalten, ebenso wie es diverse optische Fehlerbehebungen gegeben hat und die IDE insbesondere unter Windows jetzt besser zeichnen sollte. Ein unnötiges AutoSave findet nicht mehr statt. Neben diversen Verbesserungen des Code-Editors und beim IDE-Scripting findet sich noch unzähliges mehr – die Release Notes sprechen von über 270 Veränderungen.

Als Fazit bleibt zu hoffen, dass die noch nicht durchgängig guten Verbesserungen unter Windows sich auch für alle Anwender erreichen lassen und dem Debugger der Schluckauf abgewöhnt werden kann. Ob das in einem Dot-Release oder der Version 2018r2 stattfinden wird: Lassen wir uns überraschen.

 

5 Gedanken zu “Die Neuerungen in Xojo 2018r1

  1. Für Linux Benutzer ist Xojo 2018r1 leider eine weitere Enttäuschung.
    Ein solch peinlicher Bug (ListBox Row und Column beginnen plötzlich bei 1 statt 0) sollte einfach nicht passieren.

    Gefällt mir

    1. Axel hat recht, das ist ein absolut unnötiger Bug. Jedoch sehe ich auch, dass mit diesem Release auf Ebene der GTK+3 Darstellung dutzende, noch immer nicht alle , Bugs was die Darstellung einzelner Komponenten betrifft, gefixt wurden. Siehe dazu

      Gefällt mir

      1. Wie erwartet ist ein Dot-Release in Arbeit. In der kommenden Woche dürfte es wegen der XDC kaum vorangehen. Also schätze ich Anfang Mai für die Veröffentlichung.
        Die Links sind leider nicht angekommen, Martin!

        Gefällt mir

      2. Hier die Feedback-Nummer: 49401 (49401 – Linux: some controls are not placed correctly when on a non-Transparent ContainerControl)

        Gefällt mir

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.