Etwas mehr als ein Jahr ist es nun her, dass ich mir Apples aktuellen Profi-iMac als Arbeitsgerät zugelegt habe. Die Entscheidung hatte ich mir nicht leicht gemacht, was primär an dem hohen Preis liegt, den ein iMac Pro selbst in der einfachsten Konfiguration veranschlagt; unter 5.499,00 € geht nichts. Doch die ersten Tests hatten mich beeindruckt, insbesondere in einer Disziplin, die für mich sehr ausschlaggebend war und dabei so nichtig wirkt: die Lautstärke. Doch dazu gleich mehr. Wie zufrieden bin ich heute mit dem iMac Pro? Hat sich die Anschaffung für mich und die Arbeiten, die ich damit umsetze, gelohnt?…
Diese Woche machten erstmals Gerüchte über die nächste Generation von Apples Profi-Notebook-Reihe die Runde. Das Überraschende und Außergewöhnliche dabei: Zum ersten Mal seit Jahren ist die Rede von einem Gerät, das nicht über den ansonsten für das MacBook Pro so typischen 13“- oder 15“-Bildschirm verfügt. Stattdessen ist von einem 16“-Gerät die Rede. Als ich das erste Mal davon gelesen habe, fand ich diese Nachricht auf Anhieb ungeheuer interessant. Das hat mehrere Gründe. Zum einen gehört der Mac im Allgemeinen und das MacBook Pro im Speziellen zu den für mich spannendsten und attraktivsten Geräten von Apple. Während die Mehrheit sich heute…
Das Repository In der heutigen Zeit sind Versionsverwaltungssysteme wie Git Standard in der App-Entwicklung. Egal, ob man privat an eigenen Projekten arbeitet oder zusammen mit einem kleinen oder größeren Team – mit möglicherweise sogar international verstreut sitzenden Kollegen – an dem nächsten großen Ding tüftelt, dank Versionsverwaltung kommt man sich wesentlich weniger in die Quere und kann unabhängig voneinander an den jeweils eigenen Aufgaben arbeiten. Dazu erhält man eine Historie der durchgeführten Änderungen und die Möglichkeit, schnell einen älteren Zustand wiederherzustellen, sollte es doch einmal zu Problemen kommen (wir sind schließlich alle nur Menschen und machen auch mal Fehler). Was…
Bekanntermaßen gehören Optionals zu den spannendsten und mächtigsten Sprachmerkmalen von Swift (was ich nicht müde werde zu betonen). Mit ihnen gehen auch einige technische Raffinessen einher, die sich auf den Umgang mit diesen spannenden Elementen auswirken. Eine davon ist der sogenannte Nil-Coalescing-Operator. Seine Aufgabe ist recht simpel: Er prüft zunächst ein Optional gegen nil. Besitzt dieses einen Wert, liefert er ihn zurück, andernfalls wird auf einen Alternativwert zurückgegriffen. Dieses Verhalten entspricht jenem, das man ansonsten typischerweise mit einer einfachen if-Abfrage löst. Man prüft zunächst, ob ein Optional ungleich nil ist, und greift in diesem Fall auf seinen Wert zu. Andernfalls…
Code-Blöcke ein- und ausklappen In dieser neuen Serie möchte ich in regelmäßigen Artikeln einzelne Features von Xcode vorstellen, die die Arbeit mit Apples IDE deutlich erleichtern können und in jedem Fall einmal einen näheren Blick wert sind. Den Anfang macht eine neue Funkton aus Xcode 10, über die sich viele Apple Developer immens gefreut haben: Code Folding. Was ist Code Folding? Für alle, die mit dem Begriff Code Folding nichts anfangen können, hier zunächst eine kurze Erläuterung: Mit Code Folding ist es möglich, einzelne Code-Blöcke innerhalb einer Quellcode-Datei einzuklappen, um so die Übersichtlichkeit zu verbessern. Gerade in sehr umfangreichen Dateien…
Singletons sind ein spannendes Pattern; und das gilt für die Programmierung im Allgemeinen. Einfach ausgedrückt bezeichnet ein Singleton einen Typ, von dem es innerhalb eines Projekts nur eine einzige Instanz gibt. Wann immer man also mit diesem Typ arbeiten möchte, greift man auf jenes Singleton zurück. Das eröffnet einem diverse Vorteile. So kann man sichergehen, dass die Daten, die über das Singleton verwaltet werden, bei jedem Aufruf – egal wann und wo – up-to-date sind. In solch einem Szenario gibt es nicht mehrere Instanzen jenes Typs, die alle ihre eigenen Informationen enthalten die man schlimmstenfalls selbst noch mühsam abgleichen muss.…
Protokolle sind eine großartige Technik wenn es darum geht, Eigenschaften und Funktionen zu definieren, ohne eine Implementierung dafür anbieten zu müssen. Daraufhin kann man Typen ein oder mehrere Protokolle zuweisen, zu denen sie konform sein müssen, und genau die kümmern sich dann um eine passende (und meist individuelle) Implementierung. So weit, so gut. Doch es gibt Szenarien, in denen die fehlende Implementierung innerhalb eines Protokolls ein störender Faktor sein kann der dazu führt, dass verschiedene Typen zu einem bestimmten Protokoll konform sind und für die im Protokoll definierten Eigenschaften und Funktionen eine identische Implementierung anbieten. In der Regel merkt man…
Optionals gehören zu den spannendsten Sprachmerkmalen in Swift und tragen einen enormen Teil dazu bei, die Sicherheit und Stabilität von Swift-Code zu gewährleisten. Da ist es bisweilen umso ärgerlicher, wenn man in einem Projekt neben Swift auch noch Objective-C einsetzt. Letzteres kennt nämlich ein solches Prinzip wie das der Optionals nicht, was zwar grundsätzlich dem Zusammenspiel der beiden Sprachen keinen Abbruch tut, aber die Verwendung von Objective-C-APIs aus Swift heraus unschön gestaltet. Was genau bei dieser Konstellation geschieht und wie man doch Optionals in Objective-C definieren (wenn auch nur in Swift nutzen) kann, verrate ich euch im Folgenden. Das Standardverhalten…