Die Neuerungen in Xojo 2018r2

Überraschend und in der sommerlichen Hitze fast zu übersehen wurde heute (am 7.8.2018) eine neue IDE-Version veröffentlicht, nämlich die zweite des Jahres. Hier also wieder der passende Beitrag aus der Reihe „Was gibt’s Neues?“

Um ungesunde nervliche Anspannungen zu vermeiden – wir gehen hier in Berlin gerade auf den bislang heißesten Tag des Jahres zu –, die Übersicht über die nun integrierten lang ersehnten Key Features (Android, flackerfreies, aber schnelles Windows, Web-Framework 2.0, API 2.0, neue IDE … um nur einige zu nennen):

Mit anderen Worten: Auf die ersten davon werden wir mindestens bis Release 3 warten müssen. Xojo 2018r2 steht vielmehr im Zeichen von Bugfixes und Modernisierung alter Features. Die besonderen Highlights:

Graphics

  • Das Graphics-Objekt besitzt jetzt ein auf Double-Werten basierendes Koordinatensystem. Damit sind Rundungsprobleme durch das bisherige Integer-Handling, das nicht mehr zu hochauflösenden Bildschirmen passen wollte, Geschichte. Allerdings müssen Graphics-nutzende Plugins aktualisiert werden, um sie auf Double-Fertigkeiten zu trimmen.
  • Dazu passend kennt die Klasse nun noch eine AntiAliasMode-Property. Laut Dokumentation ist das eher die Interpolations-Qualität, die bislang nicht (ohne Declares oder andere Tricks) zu beeinflussen war. Dafür sorgt nun die Enumeration AntiAliasModes mit den Werten
    • LowQuality
    • DefaultQuality
    • HighQuality

Ironischerweise ist, zumindest, wenn seit dem letzten Release Client nicht noch etwas geändert wurde, der Compiler darüber noch nicht ganz in Kenntnis versetzt worden. Wer Probleme hat, die neue Eigenschaft zu benutzen, weist ihr besser einen Wert in folgender Art zu:

g.AntiAliasMode = Global.Graphics.AntiAliasModes.HighQuality
  • PixmapShapes und StringShapes werden jetzt korrekt berechnet und nicht mehr mit Versatz.

SpecialFolder

Besitzt zwei neue Methoden:

  • Resources() As FolderItem und
  • GetResource(ResourceName As String) As FolderItem

Erstere liefert den Pfad zum Resources-Verzeichnis der App, sofern eines existiert. Nachdem BuildScripts diesen Ordner schon lange adressieren konnten, um Dateien dort hinein zu kopieren, ja auch höchste Zeit, dieses Verzeichnis auch ohne weitere Tricks wie TPSF zu nutzen. Letztere liefert die Datei – also vielmehr das Folderitem – des angegebenen Namens aus dem Resources-Verzeichnis direkt zurück, man spart sich also das Child-Gewusel mit dem FolderItem.

Windows

  • kann jetzt auch mit mehr als 96 DPI drucken.
  • hat einen neueren WebKit-HTMLViewer.
  • und hat allgemein eine Vielzahl von Bugfixes erhalten, darunter für Xojo.Net.HTTPSocket und Xojo.IO.TextOutput/BinaryStream (das Unicode-Handling funktioniert), Grafikproblemen bei zahlreichen Controls, einschließlich HTMLViewer und OpenGLSurface, der IDE und sogar einige weitere Ausgabeoptimierungen. Aber leider, leider: Der große Wurf ist nicht dabei. Nach wie vor berichten zahlreiche Anwender über viel zu langsame Windows-Grafikausgabe auf einigen Systemen, wenngleich der neue Release Verbesserungen bringt. Xojo-Anwender Pedro Ivan Tellez Corella hat jedoch einige Hinweise geliefert, die in einem kommenden Release endlich wieder für genügend Geschwindigkeit sorgen könnten.

iOS

ist – neben diversen weiteren Bugfixes – auch umfangreich versorgt worden:

  • iOSTable unterstützt jetzt Pull-to-Refresh: Ist die Property AllowRefresh True, kann der Benutzer den Tabellenkopf nach unten ziehen, woraufhin der neue Refreshed-Event feuert, in dem der Programmierer Aktualisierungen an der Tabelle vornehmen kann. Am Ende muss dann die Methode EndRefresh() aufgerufen werden, um die Aktualisierung-Animation der Tabelle wieder auszublenden.
  • Dynamische Zeilenhöhen in Tabellen sind jetzt durch die UseDynamicHeight As Boolean-Property möglich,  …
  • ebenso wie Animationen beim Einfügen und Entfernen von Zeilen angezeigt werden.
  • iOSHTMLViewer ist jetzt ein WKWebView statt eines UIWebViews. Apple empfiehlt schon seit iOS 8, diese neuere Klasse fürs Anzeigen von Internet-Inhalten zu verwenden, also höchste Zeit, dass sie auch in Xojo nutzbar ist. Pferdefuß: Declares, die den bisherigen HTMLViewer aufbohrten, werden – zumindest zum Teil – nicht mehr funktionieren. Ist ja nun eine andere Klasse dahinter …
  • iOSViews besitzen jetzt eine LargeTitleMode-Property, um das Rendern von Titeln in iOS 11 und darüber an die Bildschirmgröße anzupassen. Die Werte:
    • Automatic
    • Always
    • Never (Voreinstellung)
  • Ein versehentlich zum Kind eines anderen gemachtes Control – also ein in ein anderes eingebettetes – kann jetzt durch Rechtsklick und Wahl von „Unparent Control“ wieder selbstständig werden.
  • Autolayout versucht jetzt, ungültige LayoutConstraints – Linke Seite zur Oberseite des Elters etwa – zu verhindern.

SQLiteDatabase

  • verwendet jetzt die Engine 3.23.1.
  • kann sich nun mit bis zu 30 Datenbanken zugleich verbinden.

Die IDE

  • malt während Debug-Runs einen kleinen Käfer in den Tab des Debuggers, um ihn schneller zu finden.
  • besitzt einen Button in den Build-Voreinstellungen, um den Programm-Cache zu löschen:
  • unterstützt die globalen Methoden StartProfiling und StopProfiling. Ist „Profile Code“ in der IDE eingeschaltet, lässt es sich mit diesen Methoden an- und ausschalten.
  • und hat daneben ebenfalls zahlreiche Fehlerbehebungen verpasst bekommen.

… und der Rest

ist auch nicht von Fehlerbehebungen verschont geblieben. Wie immer gilt der Hinweis auf die vollständigen Release Notes.

Mehr als sonst verstärkt dieser Release aber den Wunsch, dass baldmöglichst einige der lang angekündigten Neuerungen auch wirklich Einzug halten werden, dass die Windows-GUI stärker beschleunigt und eine Möglichkeit gefunden wird, die durch die verschiedenen GTK3-Themes verursachten GUI-Probleme in den Griff zu bekommen. Es bleibt die Hoffnung, dass dieser Release den Weg dahin ebnen soll.

Ein Gedanke zu “Die Neuerungen in Xojo 2018r2

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.