Ungehemmte Zwänge

oder wie man sich mit iOSLayoutConstraints anfreundet

Für viele Xojo-iOS-Anwender ist, liest man das Forum, das AutoLayout von iOS ein Grund, regelmäßig das Kriegsfahrrad auszubuddeln. Die Ähnlichkeit der IDE bei der Gestaltung von iOS-Benutzerinterfaces mit der einer Desktop-Anwendung verleitet dazu, den gleichen Arbeitsstil zu benutzen: Steuerelement aufs Layout ziehen und erst einmal ausprobieren; Feinangleichung kann später folgen.

Was auf dem Desktop funktioniert, geht bei iOS gerne in die Hose: Die Steuerelemente stehen einfach nicht dort, wo sie stehen sollten. Rotiert man das iOS-Gerät oder schaltet im Simulator auf eines mit einem anderen Display, wird es ganz übel – AutoLayout greift ein und erzeugt einfach nicht das gewünschte Bild.

weiterlesen

Die Neuerungen in Xojo 2017r2

Letzten Dienstag (den 15.8.) wurde Xojo 2017 Release 2 veröffentlicht, was genügend Anlass für einen neuerlichen Artikel in der Neuerungs-Reihe bietet. Diesmal, muss ich gestehen, fällt er nicht leicht. Die Liste der Veränderungen ist mit über 250 Punkten wirklich, wirklich groß, und auch wenn die offizielle Ankündigung von einem Schwerpunkt auf 64 Bit, Linux und iOS Launch Screens spricht: Das ist eigentlich nur die Spitze des Eisbergs.

weiterlesen

Hilfe, Schulung, Jobs … die Xojo-Hobby-Kontaktbörse

Eine wie ich finde feine Anfrage wurde kürzlich an mich herangetragen: Es gibt viele Xojo-Anwender, die Programmieren als Hobby betreiben, was sich keineswegs despektierlich anhören soll: Mir wurden aus diesem Anwenderkreis des öfteren Codeschnipsel zugespielt, vor denen ich nur meinen Hut ziehen kann, wie z.B. eine WIA-Scannerschnittstellenanwendung für Windows, die ich liebend gerne beschreiben würde, was mich aber aufgrund ihrer Größe vor einige Herausforderungen stellt.

weiterlesen

Evolution statt Untergang: Eine kleine Geschichte der Programmierwerkzeuge

Dies ist eine Übersetzung eines Beitrags von Geoff Perlman aus dem Xojo-Blog (also dem von Xojo, nicht diesem hier). „Ich“ oder „wir“ in diesem Text ist daher ausnahmsweise als Xojo (oder eben Geoff) zu lesen, nicht als meine Wenigkeit.

1998 war Steve Jobs der temporäre Geschäftsführer von Apple, und das kleine i bekam eine neue Aufgabe: Der iCEO – i für interim – war geboren und versuchte, das schwer angeschlagene Schiff Apple vor dem Untergang zu bewahren. Eine herkulische Aufgabe, wie das Zitat von Dell-Geschäftsführer Michael Dell aus dem Vorjahr auf die Frage, was er tun würde, sollte er Apple leiten, belegt: „Ich würde die Firma schließen und das Geld den Aktionären zurückgeben.“

weiterlesen

Diplomatisch delegieren

Ein Anwendungsfall aus der alltäglichen Praxis: Man hat ein Auswahl-Element, sagen wir mal ein PopupMenu, und ein Ausgabeelement – vielleicht einen Canvas –, das aufgrund der Auswahl im ersteren ein passendes Resultat zeigen soll.

DelegateWinDelegate.png

Häufig geht man dann so vor, dass der Change-Event im PopupMenu den Canvas invalidiert, und in dessen Paint-Event wird dann geschaut, was im PopupMenu steht. Eine mitunter ellenlange Select Case- oder If … ElseIf – End If-Anweisung macht den Code dann zum Roman.

weiterlesen

Codeservice zum Kaufen I: CSProcessInfo

Nun auch die angekündigte deutsche Erklärung zur ungewohnten englischen Beschreibung:

Wie ja an einigen Stellen erwähnt, pflege ich mehrere freie Bibliotheken für Xojo-Anwender, darunter auch die AppleLib, die Xojos Funktionen im macOS- und iOS-Bereich aufbohrt. Daran wird sich auch nichts ändern, wenngleich der Datenabgleich mit dem geshareten Code via GitHub immer wieder für Probleme sorgt (momentan ist das so; falls AppleLib, bitte die Revision 0.5.8 nehmen; neuere Upload-Versuche bringen Linkfehler im Projektfile – und ich hab schon gut zwei Tage dran gebastelt.)

weiterlesen

Was tun, wenn’s klemmt?

Eine kürzliche Leserfrage (nein, ich werd mich hier nicht erneut wiederholen: Nur vielen Dank an dieser Stelle!) ist Anregung für einen neuen Grundlagenbeitrag: Wie gehe ich mit Fehlern um, und wie verhindere ich die unschöne Exception-Messagebox, die bei unverhofften Fehlern auftritt und dem Programm eine etwas unsaubere Anmutung verleihen kann?

exceptionMessage

weiterlesen

Modular gedacht

Wie ja schon des öfteren erwähnt: Ich freue mich über Feedback und Anfragen, die mir dann auch gleich Anregung für einen neuen Beitrag liefern. Um so schöner, wenn’s denn mal ganz grundlegende Fragen betrifft.

So war dies dann auch kürzlich (nunja, einen Monat ist’s schon her), als mich ein Leser fragte, wie denn mit globalen Variablen umzugehen sei. Das ist eine Frage, die insbesondere bei Umsteigern bzw. Programmierern, die mit linearen Programmiersprachen begonnen haben, häufiger auftaucht. Saß man seinerzeit z.B. vor Turbo-Pascal, kam man schwerlich drum herum, globale Variablen zu definieren, also solche, die unter ihrem Namen von überall ansprechbar waren. Der Anfang eines solchen Programms bestand gerne mal aus ellenlangen Deklarationen von Variablen, auf die die später folgenden Methoden zugreifen konnten.

weiterlesen