Fünf aktuelle UX-Trendshttps://cleverlance.de/de/blog/Seiten/UX-trends.aspxFünf aktuelle UX-Trends<p>​<br></p><br><p>Als wir 2009 den ersten Almanach Benutzerfreundliche Schnittstellen in der Tschechischen Republik veröffentlichten, hatten wir etwa zwanzig Experten, die sich mit diesem Phänomen beschäftigten. Laut Glassdoor, einem weltweit führenden Anbieter von Jobinformationen und Beschäftigungstrends, gehört der UX-Designer heute zu den 25 weltweit am meisten gefragten Berufen. Googles Einstieg in die Welt der Bildung hat zu mehr als einer halben Million Zertifizierungen im Bereich UX geführt. Der Bereich entwickelt sich weiter, ebenso wie die Anforderungen und Ergebnisse dieser kreativen Tätigkeit. Schauen wir uns an, welche wir derzeit für die interessantesten halten.</p><h3>1. Benutzeroberflächen sind Markenträger</h3><p>Je mehr wir durch die Forschung über die Benutzer wissen, desto mehr Zeit und Ressourcen haben die Entwicklungsteams, um sich auf die Form und Konsistenz der Benutzeroberfläche zu konzentrieren. Für ein optimales Nutzererlebnis müssen alle Ausgaben ähnlich aussehen, Unternehmen können es sich nicht leisten, jedes Mal eine andere Sprache mit dem Kunden zu sprechen. Gleichzeitig befassen sich viele Unternehmen heute mit der Kontrolle und dem Erscheinungsbild der Anwendung allenfalls auf der Ebene der Unternehmensfarben. Aber der Markenkern, der über die Benutzeroberfläche transportiert wird, ist eine wichtige Dimension der Kommunikation nicht nur gegenüber den Kunden, sondern auch innerhalb der Unternehmen selbst. Das Beispiel von Nike zeigt dies, dessen Benutzeroberflächen immer auf den ersten Blick erkennen lassen, dass es sich um diese Marke handelt.</p><h3>2. Designsystem als Teil der UX-Lieferung</h3><p>Damit eine Marke ihre Einzigartigkeit bewahren kann, darf das Erscheinungsbild der einzelnen Technologielösungen nicht allein vom Anbieter oder der Plattform abhängen. Design System Management (DSM), eine Reihe von Standards für das Design Management in großem Maßstab, entwickelt sich zum Standard. Dank der in diesem Bereich entwickelten Tools ist es möglich, auch für Dritte einen ständigen Zugriff auf das aktuelle Entwurfshandbuch zu haben. Das Ergebnis ist eine visuelle Konsistenz über verschiedene Schnittstellen oder digitale Kanäle hinweg.</p><h3>3. Aufbau von Glaubwürdigkeit durch Nutzererfahrung</h3><p>Wie zuvor kauft der Nutzer ein Produkt, nur diesmal in einer digitalen Umgebung. Die Tatsache, dass ein einheitliches Erscheinungsbild für die Nutzer in ihrer Beziehung zu einer Marke von wesentlicher Bedeutung ist, wird durch zahlreiche Studien bestätigt. Laut dem Adobe Trust Report (The digital economy is personal, 2022) geben 57 % der Verbraucher an, dass sie einem Unternehmen, das ihr Vertrauen missbraucht hat, keine weitere Chance geben werden. 70 % der Verbraucher sagen, dass eine ungenaue Personalisierung ihr Vertrauen in eine Marke verringert. Dies hängt auch mit dem Umgang mit Kundendaten zusammen. Auch hier gilt: Je transparenter der Umgang mit den verarbeiteten Daten des Kunden im digitalen Umfeld ist, desto eher ist der Kunde bereit, seine Daten einem Unternehmen seines Vertrauens zur Verfügung zu stellen.</p><h3>4. Typografie - ein kleines Detail mit fataler Wirkung</h3><p>Ein kleines, aber wichtiges Detail des Brandings ist die Typografie. Je mehr Text auf digitale Geräte übertragen wird, desto höher sind die Qualitätsanforderungen an das Schriftbild. Ein UX-Designer muss sich darüber im Klaren sein, dass Text heute in den verschiedensten Situationen und an den unterschiedlichsten Orten verwendet wird: ein Autofahrer, der auf das Armaturenbrett schaut, ein Läufer, der in seiner App das Tempo vorgibt, das morgendliche Lesen von Nachrichten auf dem Handy auf dem Weg zur Arbeit, ein Lagerarbeiter, der Daten von einem Lesegerät abruft, ein Bediener, der in einer Produktionsanlage ein Gerät einrichtet... All diese Situationen haben eines gemeinsam: Der Benutzer hält das Gerät oft in der Hand und liest von einem wackeligen Display ab. Dies stellt natürlich viel höhere Anforderungen an die Schrift als bei der Verwendung auf einem stabilen Untergrund. Auf Wunsch unserer Kunden arbeiten wir bei Cleverlance mit Typographen zusammen, um neue Schriften zu entwickeln, die die Lesbarkeit von Text unter schwierigen Bedingungen verbessern.</p><h3>5. Grenzen der internen UX-Teams</h3><p>Der Wunsch vieler Unternehmen, von UX-Beratern wegzugehen und eigene UX-Teams aufzubauen, stößt an seine Grenzen. Die Erwartung, dass ein interner UX-Experte alle UX-Fähigkeiten abdeckt, erweist sich oft als unrealistisch. Teilbereiche der UX wie Forschung, Copywriting oder Design haben sich so spezialisiert, dass ein einzelner Experte sie nicht mehr auf dem erforderlichen Niveau beherrschen kann. Aus diesem Grund bilden Unternehmen nach und nach immer mehr UX-Teams, während es gleichzeitig immer schwieriger wird, auf dem Arbeitsmarkt Spezialisten mit dem erwarteten Wissens- und Kompetenzniveau zu finden. Infolgedessen konzentriert sich das interne Team nur auf einen Bereich der UX, z. B. auf die Forschung. Ohne einen guten Designer bringt sie jedoch nur theoretische Ergebnisse. Ein großes Handicap dieser Teams ist auch die übermäßige (wenn auch verständliche) Konzentration auf das Produkt eines bestimmten Unternehmens. Designern und Forschern fehlt es an Vergleichen mit anderen Branchen, an Erkenntnissen und bewährten Verfahren. Damit kommen Technologieunternehmen wieder ins Spiel, die dank der Vielfalt ihrer Aufträge Unternehmen mit neuen Ansätzen bereichern und interne UX-Teams sinnvoll ergänzen können.​<br></p>
Wenn man Analytiker sagt, bedeutet das ...https://cleverlance.de/de/blog/Seiten/analytiker.aspxWenn man Analytiker sagt, bedeutet das ...<p>​​Aus der IT-Perspektive bedeutet die Tätigkeit eines Analytikers mehrere verschiedene Aufgaben mit unterschiedlichen Arbeitsbereichen Dazu gehört die Rolle des IT-Analytikers, der auch als Systemanalytiker, Business-Analytiker, Datenanalytiker oder Testanalytiker bezeichnet wird. Aber was tut der Mensch auf der betreffenden Arbeitsposition eigentlich und wofür ist er verantwortlich? Schauen wir uns die Rollen chronologisch an, so wie sie in den Verlauf des IT-Projekts eintreten.</p><h3>Business-Analytiker</h3><p>Die erste analytische Position, die in das Projekt eintritt, ist der Business-Analytiker. Seine Aufgabe ist, sehr vereinfacht ausgedrückt, mit dem Kunden, mit den Business-Vertretern vor Ort, zu kommunizieren. Das Ziel seiner Arbeit ist, die Bedürfnisse des Kunden zu sammeln, diese in Anforderungen umzuwandeln und sie nach ihrer Wichtigkeit zu ordnen. Anschließend entwickelt der Analytiker einen Lösungsentwurf, d. h. er baut die Software de facto aus der Sicht des Benutzers auf. Seinen Entwurf verzeichnet er in die Business-Analyse, d. h. es werden Prozessdiagramme, Use-Case-Modelle oder User-Stories, Aktivitätsdiagramme, Beschreibungen von Benutzerrollen, Wireframes von Bildschirmen usw. erstellt, also alles, was zeigt, wie das System aus Sicht des Benutzers funktionieren soll.​​<br></p><h3>IT-Analytiker</h3><p>Der IT-Analytiker, der auch als Systemanalytiker bezeichnet wird, tritt früh oder zusammen mit dem Business-Analytiker in den Projektprozess ein. Seine Aufgabe ist, die technische Lösung des Systems zu entwerfen. Bei seiner Arbeit kommuniziert er intensiv sowohl mit dem IT-Architekten, der für das Konzept der Entwicklung der Applikation zuständig ist, als auch mit dem Business-Analytiker, der ihm die Funktionsanforderungen und die Beschreibung der Lösung aus Unternehmenssicht vorlegt. Der IT-Analytiker entwirft und beschreibt dann die Details der technischen Lösung, einzelne Systemmodule, Daten- und Objektstrukturen einschließlich ihrer Verknüpfungen, definiert Schnittstellen, modelliert Sequenzdiagramme usw. Die Ergebnisse des IT-Analytikers bilden zusammen mit den Ergebnissen des Business-Analytikers die Spezifikationen, nach denen die Entwickler das gewünschte System programmieren. Deshalb ist es eine Standardanforderung für IT-Analytiker, Kenntnisse in Programmiersprachen wie Java, .NET, SQL oder XML zu haben. Erwartet wird auch die Kenntnis von Methodiken wie RUP und ITIL oder des kürzlich erweiterten <a href="https://www.create-it.cz/Blog/Stranky/DevOps.aspx">DevOps</a> Ansatzes für die Softwareentwicklung.</p><h3>Testanalytiker</h3><p>Der Testanalytiker bearbeitet die Testanalyse. Er studiert die Eingaben des Business- und IT-Analytikers, geht mit ihnen die Prozesse und die Logik der gesamten erwarteten Lösung durch, um zu verstehen, wie das System letztendlich funktionieren soll. Daraus geht hervor, dass er in das Projekt entweder erst nach der Verarbeitung der Business- und der IT-Analyse oder bevor sie abgeschlossen ist, eintritt. Nachdem er sich mit den analytischen Dokumenten vertraut gemacht hat, entwickelt er Testszenarien (Test Case), Testsuiten (logische Gruppierung von Tests, die miteinander in Beziehung stehen) und Testskripte. Es kann auch vorkommen, dass er bei der Erstellung von Testszenarien auf einen Mangel in der Business- oder IT-Analyse stößt. In diesem Fall wird der Business- oder IT-Analytiker auf diese Tatsache hinweisen, damit der festgestellte Mangel in der Analyse nachgearbeitet werden kann. Bei der Erstellung von Testszenarien definiert der Testanalytiker auch die notwendigen Testdaten zum Testen der Software. Im Finale ist er in der Lage, einen Testplan, d.h. die Reihenfolge der Tests für einzelne Testszenarien, vorzuschlagen. Manchmal ist er auch derjenige, der die Testdaten vorbereitet oder an den Softwaretests selbst beteiligt ist.</p><h3>Datenanalytiker</h3><p>Ein Datenanalytiker arbeitet, wie der Name schon besagt, mit Daten. Jedes System enthält Tausende, manchmal Millionen von Datensätzen, aus denen sich eine Fülle interessanter Informationen für Geschäftszwecke extrahieren lässt. Dabei handelt es sich um numerische Werte, aber auch um Daten mit Textcharakter. Der Datenanalytiker arbeitet sowohl mit primären Datenquellen, d.h. Daten aus dem Hauptsystem, als auch mit sekundären Daten, z.B. Daten aus Systemen, die sich mit weniger wichtigen, d.h. unterstützenden Prozessen beschäftigen. Der Analytiker sortiert, bereinigt und analysiert die Daten mit statistischen Standardinstrumenten. Er erstellt verschiedene Arten von Berichten und Visualisierungen für Geschäftszwecke oder das Management. Entwirft und erstellt Relationsdatenbanken, definiert Korrelationen und Formeln in komplexen Datensätzen. Zu den wichtigsten Fähigkeiten eines Datenanalytikers gehören Gestaltung von Datenbanken, Orientierung in Datenspeichern und BI-Plattformen, SQL, Data Mining und die Fähigkeit, die resultierenden Daten zu visualisieren und die ermittelten Ergebnisse zu präsentieren. Aber auch die Kenntnis von statistischen Techniken, mathematische Kenntnisse und Orientierung im Finanzbereich. Eigentlich kann ein Datenanalytiker in das Projekt jederzeit einsteigen. Er kann fast von Anfang an Teil des Teams sein, zum Beispiel, wenn es um die Migration von Daten aus dem ursprünglichen System in das neue System geht. Oder er kann sich dem Projekt anschließen, nachdem das System in Produktion gegangen ist, um die ersten Ergebnisse für das Unternehmen oder das Management des Kunden zu extrahieren und zu verarbeiten, indem er diese Arbeit fortsetzt und kontinuierlich verschiedene Berichte und Visualisierungen erstellt.</p><p>Wie aus der obigen Beschreibung ersichtlich ist, sind mehrere Analytiker an der Erstellung des Systementwurfs beteiligt, wobei ihre Arbeit aufeinander aufbaut. Deshalb ist eine kontinuierliche, mehr oder weniger intensive Kommunikation für alle wichtig. Eigentlich könnte man das Design der neuen Software als Symphonieorchester bezeichnen, in dem die Violine von Flöte oder Oboe, gelegentlich auch von Horn oder Pauke begleitet wird. Wenn alle Instrumente aufeinander abgestimmt sind, erklingt eine schöne Melodie, und wenn nicht, halten sich alle in der Umgebung die Ohren zu. Im Falle von Software würde ein "falsches Spiel" zu einer untauglichen Lösung führen, die den Bedürfnissen des Kunden nicht gerecht wird und darüber hinaus wahrscheinlich nicht benutzbar ist.​<br></p>
Unerwartete schlechte Praktikenhttps://cleverlance.de/de/blog/Seiten/unexpected-bad-practices.aspxUnerwartete schlechte Praktiken<p>​​​Einige Programmierpraktiken sind uns so vertraut, dass wir sie automatisch und ohne großes Nachdenken anwenden. Manchmal sind diese Techniken veraltet, manchmal werden sie im falschen Kontext angewendet. Das Ansprechen solch schlecht eingespielter Gewohnheiten stößt oft auf Ablehnung. Vor allem von denjenigen, die sie nutzen und das Thema als nützlich empfinden, also lasst uns genau das tun!</p><h3>Marks<br></h3><p>Programmier-IDEs erkennen oft bestimmte Arten von Kommentaren, um die Navigation in der Codebasis zu erleichtern. Die <em>FIXME</em>-Funktion von Xcode lässt andere Entwickler wissen, dass ein Teil des Codes mehr Aufmerksamkeit verdient. <em>TODO</em> ist hilfreich, wenn etwas, nun ja, erledigt werden soll. <em>MARK</em> unterscheidet sich von den vorherigen Fällen; es dient der Dokumentation. Die gleiche Funktion wird in IntelliJ IDEA/Android Studio als Region bezeichnet.</p><p>Markierungen unterteilen den Quellcode in mehrere Teile, indem sie Überschriften verwenden. Das kann dazu führen, dass der Code in logische Einheiten unterteilt erscheint. Wenn Sie ein Leser sind, der mit der früheren Objective-C-Ära der iOS-Entwicklung vertraut ist, wissen Sie, dass dies nur eine aktualisierte <em>#pragma mark</em>-Anweisung ist.</p><p>Typisch ist die Verwendung in Dateien mit einer großen Anzahl von Zeilen. Zeichen schaffen die Illusion von Klarheit, indem sie in vermeintlich zusammengehörende Teile zerlegt werden.</p><p>Die Verwendung von Zeichen in solchen Fällen ist eine schlechte Praxis. Entwickler missbrauchen sie oft, um eine zu große Datei zu rechtfertigen. Man sollte sich nicht auf Xcode verlassen, um den Code verständlich und lesbar zu machen. Kleine und gut komponierte Klassen sind ohne IDE-Funktionen einfacher zu verstehen und zu navigieren. Vor allem für die Überprüfer von Pull-Anfragen, die die Weboberfläche benutzen, wo diese Funktionen nicht vorhanden sind.</p><h3>Erweiterungen</h3><p>Moderne Programmiersprachen wie Kotlin oder Swift ermöglichen die Erweiterung von Klassen, Schnittstellen/Protokollen, Structs oder Enums, um eine zusätzliche Implementierung bereitzustellen. Sie können Ihren Code in mehrere Teile aufteilen, indem Sie Erweiterungen verwenden, um festzulegen, was näher zusammengehört. Eine andere Möglichkeit besteht darin, eine Erweiterung für einen anderen Typ zu erstellen, den Sie vielleicht nicht einmal besitzen, um seine Verwendung intuitiver zu gestalten. Die Möglichkeiten sind nahezu grenzenlos. Das ist nicht immer eine gute Sache, aber zunächst ein Blick in die Geschichte. </p><p>Erweiterungen gab es auch schon in Objective-C. Wenn Sie keine Erfahrung mit der Programmierung in einer solchen Sprache haben und den Namen für Erweiterungen erraten müssten, würden Sie wahrscheinlich überrascht sein. Es sind Kategorien! Eine weitere Überraschung ist, dass es auch in Objective-C Erweiterungen gibt, die jedoch anderen Zwecken dienen. Interessant ist der Unterschied zwischen den beiden Sprachen. Kategorien in Objective-C zwangen den Entwickler, sich den Namen auszudenken. Aus diesem Grund werden Dateien mit dem Namen Class+CategoryName.swift oft auch für Swift-Erweiterungen verwendet. Und noch wichtiger: Um Kategorien zu verwenden, mussten sie explizit importiert werden.</p><p>Erweiterungen in Swift sind ein unbenannter Teil des Codes. Ein solcher Code kann für den Leser komplizierter zu verstehen sein. Wenn es mehrere Erweiterungen desselben Typs gibt, kann das Hinzufügen eines Namens zum Code und die Einbettung in einen Typ die Lesbarkeit erheblich verbessern.</p><p>Die unsachgemäße Erweiterung von weit verbreiteten Typen führt zu einer Verschmutzung des Namensraums. Es ist wichtig, sich vor der Erstellung von Erweiterungen zu fragen, ob alle Instanzen des Typs eine solche Fähigkeit haben sollen. Sollten alle UIViews Zugang zu einer Blinkmethode haben? Macht eine bestimmte Unterklasse von UIView mehr Sinn?</p><p>Einige Entwickler verwenden Erweiterungen, um die Implementierung mehrerer Protokolle aufzuschlüsseln, was ebenfalls ein Warnzeichen sein kann. Wenn eine Klasse viele Protokolle implementiert, ist es vielleicht an der Zeit, sie in kleinere Klassen aufzuteilen.</p><p>Für Trolle da draußen: Sie können Ihre Kollegen wütend machen, indem Sie <em>UIView</em> mit <em>translatesAutoresizingMasksIntoConstraints</em> erweitern und beobachten, wie sie es mit <em>translatesAutoresizingMaskIntoConstraints vergleichen.</em></p><p>Aber tun Sie es nicht.</p><h3>Kommentare</h3><p>Die Möglichkeit, Kommentare zu schreiben, könnte undisziplinierte Programmierer dazu verleiten, einen Code von schlechter Qualität zu erstellen. Leider ist es einfacher, eine Variable nicht zu benennen und mit einem komplizierten, aber nicht so klaren Kommentar zu beschreiben, was in meinem Kopf vor sich geht. Leichtigkeit sollte nicht unser Ziel sein. Knappheit und Klarheit sollten es sein.</p><p>Ein guter Kommentar für einen schlecht geschriebenen Code ist immer noch ein Codegeruch. Nehmen Sie nicht nur mich beim Wort. Robert Martin erklärt: „Ein Kommentar ist ein Versäumnis, sich in einem Code auszudrücken. Wenn Sie scheitern, dann schreiben Sie einen Kommentar; aber versuchen Sie nicht zu scheitern.“</p><p>Ein weiterer Grund ist, dass sich das Verhalten des Codes ändern kann, wenn er im Repository lebt, geändert und überarbeitet wird, und dass sein Name dies überall, wo er aufgerufen wird, zum Ausdruck bringen kann. Der Kommentar wird jedoch selten aktualisiert und kann mehr verwirren als helfen.</p><p>Dokumentationskommentare erfüllen ihren Zweck sehr gut, wenn Sie eine API entwerfen, die andere verwenden sollen. Denken Sie daran, dass die API für sich selbst stehen muss, und dass Klarheit Vorrang hat. Benutzen Sie die Kommentare in der Dokumentation nicht als Entschuldigung für ein miserables Design.</p><h3>Struktur</h3><p>Die Struktur eines Projekts ist eines der ersten Dinge, die man sieht, wenn man sich eine Codebasis ansieht, und sie sollte auf den ersten Blick den Zweck der Anwendung umreißen. Es ist jedoch keine Ausnahme, dass einige Projekte Ordnerstrukturen haben, die von den Schichten der Architektur inspiriert sind, z. B. View, ViewModel, Model.</p><p>Eine Projektstruktur auf der Grundlage von Architekturschichten ist eine schlechte Praxis. Dies macht die Wiederverwendbarkeit praktisch unmöglich. Die Navigation durch eine solche Struktur ist unnötig kompliziert und wird mit zunehmendem Umfang immer schwieriger zu pflegen. Sie ist nicht skalierbar. Von der Architektur inspirierte Ordner könnten ihren Platz haben, nicht nur auf der obersten Ebene. Es sollte nicht das erste sein, was Sie sehen.<br></p><p><img src="/de/blog/PublishingImages/Articles/MobileIt/unexpected-bad-practices-01-01.png" data-themekey="#" alt="" style="margin:5px;" /><br></p><p>Überzeugen Sie sich selbst, welche Struktur Ihnen mehr über die Anwendung verrät</p><h3>Abhängigkeiten</h3><p>Open Source bietet viele Bibliotheken, die das Leben vereinfachen, von UI-Komponenten über Netzwerke bis hin zu Lösungen für die Injektion von Abhängigkeiten. Dies kann oft viel Zeit und Mühe sparen. Andererseits birgt dies verschiedene Gefahren und Einschränkungen; die Verwendung von Bibliotheken Dritter erfordert Disziplin, Ordnung und Ausgewogenheit.</p><p>Zufällig verstreute Abhängigkeiten von Dritten verringern die Robustheit erheblich. Die Abschirmung des Kerns der Anwendung und die Verwendung der Bibliotheken von den äußeren Teilen der Architektur helfen, das Risiko zu mindern. Die Abstraktion erleichtert den Prozess des Ersetzens einer Bibliothek durch eine andere.</p><p>Es ist in Ordnung, Abhängigkeiten von Drittanbietern zu verwenden, aber mit Vorsicht. Fragen Sie sich selbst: Wie viel Zeit werde ich dadurch sparen? Wie hoch ist der Aufwand für den Ersatz? Kann ich genügend Schutzmechanismen installieren, um die Anwendung zu schützen? </p><p>Der Königsweg zum Schutz Ihrer Anwendung, auch wenn dies manchmal schwierig oder unpraktisch ist, besteht darin, die Abhängigkeit nur an einer Stelle zu importieren.</p><p>Wir hatten bereits das Vergnügen, mehrere Anwendungen zu übernehmen, die aufgrund dieses Problems nicht mehr zu warten waren. Ohne Abstraktion, nicht mehr unterstützte (oder Closed-Source-) Bibliotheken haben die Codebase zersetzt. Externe Abhängigkeiten sollten Ihr Produkt niemals als Geisel halten.</p><h3>Tests</h3><p>Testgetriebene Entwicklung ist die gute Kinderstube eines Programmierers, eine Disziplin mit vielen Vorteilen. Die technischen Auswirkungen sind ein eigener Blogbeitrag, wenn nicht sogar eine ganze Serie. Nicht-technische Auswirkungen wie etwa die einfache Einarbeitung neuer Teammitglieder und eine ausführbare Dokumentation, die nicht veralten kann, sprechen für sich.</p><p>Dennoch werden sie oft vernachlässigt. Das völlige Fehlen von Tests ist der offensichtlich erste und häufigste Verstoß, gefolgt vom Schreiben von Tests nach dem Produktionscode, was alle Vorteile abschwächt und andere Hindernisse mit sich bringt.</p><p>Sie müssen zuerst Unit-Tests schreiben - vor dem Produktionscode. Wenn Sie zuerst testen, verhindern Sie, dass Sie einen zu komplexen Code erstellen. Er führt Sie durch den Bau von Bauteilen in der richtigen Größe. Die großen Klassen sind schwierig zu testen, und die Tests werden Sie anweisen, sie in kleinere Klassen zu zerlegen.</p><p>Tests, die nach dem Produktionscode geschrieben werden, sind von Natur aus von geringerer Qualität und können sogar irreführend sein. Solange Sie den Produktionscode nicht als Beweis für den ersten fehlgeschlagenen Test schreiben, ist es unmöglich zu sagen, ob die Tests das behaupten, was sie deklarieren. Es ist dann fraglich, wie gut solche Tests das zu prüfende System schützen.</p><p>Wenn Sie Tests erst nach der Implementierung schreiben, kann es sein, dass eine Komponente schwierig zu testen ist, was bei einem Test-first-Ansatz unmöglich ist. Sie können keinen untestbaren Code erstellen!</p><h3>Der Teufel steckt im Detail</h3><p>Selbst das Alltägliche kann schädlich sein, wenn wir etwas zu automatisch und mit weniger Aufmerksamkeit tun. Stellen Sie das Gewöhnliche in Frage und suchen Sie nach schlechten Praktiken, die Sie nicht erwarten würden.​​<br></p>
Mai im Namen des Designshttps://cleverlance.de/de/blog/Seiten/graphics-for-children-II.aspxMai im Namen des Designs<p>​Alle Mittwoche im Mai und den ersten Mittwoch im Juni haben wir dem Thema Grafik und Design gewidmet. Die Kreativabteilung von QUB hat einen fünfteiligen Kurs zur Druckgrafik für Kinder vorbereitet. Wir haben den Unterricht in fünf einstündigen Online-Sitzungen abgehalten und waren begeistert von dem, was die 11 kleinen Designer im Alter von 7-12 Jahren während des Kurses geleistet haben. Übrigens haben <a href="/de/blog/Seiten/graphics-for-children.aspx" target="_blank">Sie vielleicht den Artikel der zwölfjährigen Vika gelesen</a>.<br></p><p>Wir gingen von den Grundlagen aus - wir erklärten die Grundlagen der Farbtheorie, gingen auf die interessanten Fakten der Pigmenterzeugung ein und schlossen die erste Lektion mit der Erstellung einer Farbpalette ab, die für den Beginn eines jeden Designprojekts unerlässlich ist.</p><p>Während des zweiten Treffens haben wir uns kurz mit der Geschichte beschäftigt. Von Piktogrammen, Hieroglyphen und Höhlenmalereien gelangten wir zur Einteilung der Typografie in expressiv und funktional und die Kinder lernten unter anderem, zwischen Serifeschrift und serifeloser Schrift zu unterscheiden. Seien Sie darauf gefasst, dass Sie die kleinen Designer zu Hause mit interessanten Fakten über den Aufbau von Schriften verblüffen und richtig behaupten werden, dass einige Zeichen Bäuche, Schwänze und Augen haben und dass der Kegel nicht nur beim Bowling vorkommt! Zum Abschluss der Stunde haben wir die richtige Spationierung (Festlegung der Abstände) der Schrift geübt.</p><p>Beim dritten Treffen entdeckten wir gemeinsam, dass der Stil der Comic-Helden mit schwarzen Umrissen seinen Ursprung im traditionellen japanischen Holzschnitt und in Jugendstilplakaten hat. Wir gaben Tipps, wie man eine Geschichte dynamisch gestalten und mit Sprechblasen arbeiten kann, und machten deutlich, dass eine Comic-Geschichte einen Helden, eine Handlung, einen Schauplatz und einen einheitlichen grafischen Stil haben sollte. Gemeinsam haben wir einen kurzen Strip zum Thema "Überraschung" erstellt.</p><p>In der vierten Lektion beschäftigten wir uns mit dem Verpackungsdesign, übten die erworbenen Kenntnisse über Farben und Typografie und stellten die kleinen Designer vor eine schwierige Aufgabe - die Gestaltung der Verpackung einer Bonbontüte. Auch hier gingen wir wie gewohnt vor, indem wir mit der Recherche begannen und Details und Unterschiede zwischen z. B. Frucht- und Schokoladenbonbons festhielten. Die Kinder waren sehr kreativ und haben nicht nur die Verpackungen gestaltet, sondern auch Ideen für die Namen der neuen Bonbons entwickelt: Würden Sie zum Beispiel Hühnerschnäbel interessant finden?</p><p>In den ersten vier Lektionen haben wir bewusst den Computer gemieden und mit Entwürfen auf Papier gearbeitet (wieder wie in der Designpraxis). In der fünften und letzten Lektion versuchten wir, in den Grafikeditor einzusteigen und stellten den Kindern <a href="https://www.figma.com/" target="_blank">Figmu</a> vor. Wir haben versucht, unser Bonbontüten-Design in einen Computer zu übertragen. Die Kinder haben auch diese letzte (beinahe) Feuerprobe bestanden und wir sammeln derzeit alle ihre Kreationen ein.<br></p><p><em>Für </em><a href="https://qub.digital/en/our-work" target="_blank"><em>QUB Digital​</em></a><em> Ivana Stránská, Michal Hořava und Jan Čermák</em><br></p>
Grafiken für Kinder mit den Augen von Vikyhttps://cleverlance.de/de/blog/Seiten/graphics-for-children.aspxGrafiken für Kinder mit den Augen von Viky<p>​​Die zwölfjährige Viky hat eine tolle, authentische Reportage über einen von Cleverlance organisierten Grafikkurs für Kinder geschrieben, die unbearbeitet veröffentlicht wurde.</p><h3>1. Lektion</h3><p>Gleich zu Beginn der 1. Lektion stellten wir uns den übrigen Teilnehmern vor, wie wir es in anderen Kursen auch tun, aber wir sagten noch dazu, was wir lernen möchten. Nach der Vorstellung konnte die Lektion beginnen. Zuerst wurde uns die Farbe des Jahres vorgestellt (die Very Peri heißt) und wie wichtig sie für den Designer ist. Der Designer verwendet die Farbe des Jahres eigentlich fast überall. Wir haben auch über den Farbkreis gesprochen, an dem man den Kontrast von Farben wunderschön erkennen kann. Anschließend wurde uns die Geschichte der Farben präsentiert. Es ist sehr interessant, dass man schon in prähistorischen Zeiten weiße Farbe verwende, denn Weiß ist schwierig und nur mit Hilfe gewisser Chemikalien zu gewinnen. Und die Römer mochten zum Beispiel verschiedene Brauntöne, also einen gewissen romantischen Stil. Ein weiteres Thema war das Pigment. Je nachdem, welches Bindemittel man dem Pigment beimischt, entstehen unterschiedliche Farben. In der Vergangenheit wurden Honig, Öl oder Ei als Bindemittel verwendet. Wenn man z. B. Honig als Bindemittel in dem Pigment beimischt, erhält man Aquarellfarben, und wenn man das Gleiche mit Ei macht, entstehen Temperafarben. Das letzte Thema war, welche verschiedenen Steine zur Herstellung verschiedener Farben verwendet werden. Gelb wird zum Beispiel aus Vulkangestein hergestellt, und Weiß wird interessanterweise aus schwarzem Gestein hergestellt, auch wenn es chemisch behandelt wird, aber das tut nichts zur Sache. Am Ende der Stunde bekamen wir die "Hausaufgabe", uns eine eigene Farbpalette für die nächste Woche auszudenken. Es hat mir sehr viel Spaß gemacht und ich freue mich auf weitere Grafiklektionen.​<br></p><p><img src="/de/blog/PublishingImages/Articles/CreateIt/viki1.jpg" data-themekey="#" alt="" style="margin:5px;" /><br></p><h3>2. Lektion</h3><p>In der 3. Lektion haben wir uns über die Typografie unterhalten. Zunächst haben wir über die Geschichte der Schrift gesprochen. Die allererste Schrift war die in Ägypten erfundene Hieroglyphenschrift, die sehr zeitaufwändig war. Stellen Sie sich vor, Sie müssten wegen einem einzigen Wort eine Ente zeichnen. Eine andere Schrift wurde von den Phöniziern erfunden, die erste Silbenschrift, aus der sich die heutige lateinische Schrift entwickelte. Eines der vorletzten Themen war, dass wir uns erklärten, was Serifeschrift und serifelose Schrift ist. Im Moment benutze ich serifelose Schrift. Weiter was Versalbuchstaben und Kleinbuchstaben sind. Und das vorletzte Thema war die Erklärung, was Plakatschrift und Zeitungsschrift ist. Plakatschrift soll ins Auge fallen und Eindruck machen, aber manchmal ist sie fast unlesbar. Andererseits muss die Zeitungsschrift gut zu lesen sein. Als Letztes hat man uns einen Link zur Website an den Chatroom geschickt. Dort konnten wir üben, wie man Buchstaben in Überschriften setzt und so weiter. Wie beim letzten Mal bekamen wir "Hausaufgaben", aber dieses Mal mussten wir unseren Namen zeichnen oder malen (siehe Bild in der Kopfzeile des Artikels). Wie beim letzten Mal hat es mir wieder sehr gut gefallen und ich freue mich schon auf das nächste Mal.</p><h3>3. Lektion</h3><p>In der 3. Lektion haben wir uns mit Comics beschäftigt. Das allererste Thema, das wir besprachen, waren die Fenster, und wir haben darüber gesprochen, dass die Fenster auf verschiedene Weise angeordnet sein können, um die Aufmerksamkeit des Lesers zu erregen. Dann solche Schattierungen in einem Schwarz-Weiß-Comic, dass z.B. das 1. Fenster grau ist, das 2. und 3. Fenster weiß und so weiter. Mitten der Lektion haben wir versucht, unser eigenes Comic zu zeichnen, aber nur einen Strip. Das ist ein Comic mit zwei oder drei Fenstern. Sobald wir unseren "Comic" beendet hatten, war die Stunde vorbei. Ich habe es sehr genossen und freue mich auf das nächste Mal.<br></p><p><img src="/de/blog/PublishingImages/Articles/CreateIt/viki2.jpg" data-themekey="#" alt="" style="margin:5px;" /><br></p><h3>4. Lektion</h3><p>In der 4. Lektion haben wir unsere eigene Bonbontüte gemalt und erfunden. Zuerst mussten wir uns einen Namen erfinden, und mir fiel der Name Japans ein. Es folgte die Schriftart, und als wir eine Bleistiftskizze fertig hatten, haben wir eine Farbpalette erfunden. Nachdem wir den Namen gefärbt hatten, gestalteten wir das Design des Geschmacksbilds: Wassermelone, Marshmallows usw. Ringsherum Blätter oder etwas anderes. Wir mussten auch das Gewicht und den Geschmack (nur sicherheitshalber) anführen. Dabei erzählten uns Michal und Ivana von Kontrasten und dem Goldenen Schnitt. Am Ende der Unterrichtsstunde haben wir ihnen unsere Bonbontüte vorgeführt. Sie machten uns Komplimente und forderten uns auf, einen interessanten Hintergrund zu gestalten und für sie ein Foto davon zu machen. Wie jede Grafiklektion hat es mir Spaß gemacht, und wir konnten die Typografie und die Auswahl von Farben üben, die zueinander passen.</p><h3>5. Lektion </h3><p>Bei der 5. Lektion haben wir mit Figma gearbeitet. Wir haben die Bonbontüte vom letzten Mal in den Computer übertragen und neu bearbeitet. Zuerst stellten wir das Papierformat und die Farbe ein. Dann haben wir die Überschrift erstellt und sie bearbeitet. Wir haben auch verschiedene Formen eingegeben und haben auf einer Website verschiedene Vektorbilder gefunden. Wir sollten die Aufgabe bis nächste Woche fertig machen und schicken. Und derjenige mit dem schönsten Entwurf bekommt eine Tüte Bonbons. Alle Grafiklektionen waren super und die 3. Lektion hat mir wahrscheinlich am meisten Spaß gemacht. An weiteren Lektionen würde ich auf jeden Fall teilnehmen.<br></p><p>Bleiben Sie dran, und wir werden Ihnen bald die Kreationen der übrigen Kursteilnehmer vorstellen - denn wer würde nicht gerne die schönste Tüte mit Bonbons sehen!​<br></p>
Apple denkt an die Sicherheit seiner Benutzerhttps://cleverlance.de/de/blog/Seiten/apple-account-deletion.aspxApple denkt an die Sicherheit seiner Benutzer<p>​​Mobile Apps werden bei den Benutzern immer beliebter. Jeden Tag werden von <strong>Google Play</strong> und <strong>Apple App Store</strong> tausende heruntergeladen. Allerdings sind nicht alle Apps für ihre Benutzer völlig sicher und nicht alle verwalten die persönlichen Daten der Benutzer korrekt. Die oben genannten Unternehmen versuchen zu überwachen, dass nur solche Apps in ihre Stores gelangen, die mit den Benutzern "fair spielen".</p><p>Um die Privatsphäre der Benutzer von iOS-Apps zu schützen, hat Apple eine <a href="https://developer.apple.com/support/offering-account-deletion-in-your-app" target="_blank">Verordnung erlassen</a>, dass "ab dem 30. Juni 2022 alle mobilen Apps im App Store, die die Erstellung von Konten unterstützen, den Benutzern auch die Möglichkeit geben müssen, ihre Konten zu löschen".</p><p>Ursprünglich sollte diese Richtlinie bereits ab Ende Januar 2022 gelten, aber die Frist wurde auf Druck von Entwicklern und Gesellschaften, die Applikationen betreiben, um fünf Monate verschoben. Dies ist nämlich nicht immer ein einfaches Verfahren. Apple hat klare Regeln für das Löschen Ihres Kontos: </p><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px;"><p>• Das Verfahren zum Löschen eines Kontos muss klar, intuitiv und transparent und in der Applikation leicht zu finden (z. B. eine Schaltfläche im Benutzerprofil oder in der Kontoverwaltung) sein.</p><p>• Wir müssen anbieten, den gesamten Kontodatensatz, einschließlich der damit verbundenen personenbezogenen Daten, vollständig zu löschen. Das bloße Angebot, das Konto zu deaktivieren (vorübergehend abzuschalten), reicht nicht aus. </p><p>• Wenn Benutzer die Website besuchen müssen, um die Löschung ihres Kontos abzuschließen, sollten wir einen direkten Link zu einer Seite auf der Website hinzufügen, auf der sie den Vorgang abschließen können. </p><p>• Die Benutzer müssen gut informiert sein. Wenn die Bearbeitung des Löschantrags länger dauert, müssen wir sie darüber informieren. </p><p>• Wenn die App Einkäufe in der Applikation unterstützt, müssen wir den Benutzern klar machen, wie spätere Abrechnungen und Auflösungen des Kontos ablaufen werden. </p><p>• Alle Apps müssen einen leicht zugänglichen Link zu den Datenschutzrichtlinien in der Beschreibung auf App Store Connect innerhalb der Applikation enthalten. </p><p>• Und nicht zuletzt sind die geltenden gesetzlichen Anforderungen an die Verarbeitung und Speicherung der personenbezogenen Daten des Kunden einzuhalten. Und auch für das Löschen. Dazu gehört auch die Einhaltung lokaler Gesetze - in unserem Fall der geltenden GDPR-Richtlinie.</p></blockquote><p><a href="/de/" target="_blank">Cleverlance</a> als Technologieunternehmen hilft ihren Kunden, diese Anforderungen zu erfüllen. Als Anbieter von mobilen Applikationen haben wir dieses Problem erfolgreich gelöst, zum Beispiel bei der mobilen Applikation <a href="https://apps.apple.com/cz/app/my%C5%A1koda/id1161648654?l=cs" target="_blank">MyŠkoda​</a> der Gesellschaft ŠKODA AUTO a.s. Genau nach der GDPR-Richtlinie kann der Kunde hier in seinem Profil sein Konto vollständig löschen, einschließlich seiner personenbezogenen Daten. Allerdings muss er zunächst seine Fahrzeuge abschalten, die er über die App steuert. </p><p>Im Bankwesen ist die Situation ein wenig anders. Obwohl der Benutzer sein Konto und den Zugang zur mobilen App löschen kann, bleiben seine Produkte in der Bank unberührt. Ebenso wie personenbezogene Daten, die aufgrund des berechtigten Interesses an der Verarbeitung personenbezogener Daten und der Erfüllung einer legislativen Pflicht in den Systemen verbleiben müssen. Der Benutzer kann so sein Konto in der App löschen und somit die Nutzung der App einstellen. Aber er bleibt ein vollwertiger Kunde der Bank.</p><h3>Was sagt Google dazu?</h3><p>Und was sagt ein anderer Gigant, Google, dazu? Die Regeln für die Ausstellung von Apps bei Google Play besagen, dass die App transparent sein und den Benutzer darüber informieren muss, wie sie seine personenbezogenen Daten verarbeitet. Sie verbieten ein offenkundig betrügerisches oder unehrliches Verhalten. Google hat sich jedoch noch nicht dazu durchgerungen, vorzuschreiben, dass jede Applikation, die ein Benutzerkonto einrichtet, auch die Löschung dieses Kontos zulassen muss. </p><p>Dieser Schritt von Apple wird sicherlich die Transparenz und Fairness von Apps gegenüber ihren Benutzern verbessern. Es ist ein positiver Schritt in Richtung einer ehrlicheren elektronischen Welt. </p><h3>Empfehlungen für Entwickler </h3><p>Für die Implementierung der neuen Kontolöschungsfunktion empfehle ich, eine separate Freigabe nach diesem Datum zu planen. Apple wird wahrscheinlich die Funktionalität gründlich überprüfen und es könnte so passieren, dass sich die Veröffentlichung der neuen Version verzögern wird. Dies könnte sich nachteilig auf andere wichtige neue Funktionen der App auswirken, wenn sie gleichzeitig mit dieser Freigabe veröffentlicht würden. Und die Benutzer warten nicht gern.<br></p>
Entwicklung von Multiplattform-Mobil- und Webanwendungenhttps://cleverlance.de/de/blog/Seiten/Multiplatform.aspxEntwicklung von Multiplattform-Mobil- und Webanwendungen<p>​​​​​​Möchten Sie Ihre eigene mobile Anwendung? Es ist jedem klar, dass man sowohl an die Android- als auch an die iOS-Plattform denken muss, eine davon reicht nicht aus. Und oft kommen wir nicht ohne eine Webschnittstelle aus. Praktisch seit dem Aufkommen der mobilen Geräte auf dem Markt hört man jedoch, dass es teuer ist, für jede Plattform separat zu entwickeln. Aus diesem Grund haben verschiedene Unternehmen versucht, Alternativen in Form von Multiplattform-Lösungen anzubieten, aber keine von ihnen hat sich wirklich durchgesetzt. Sie hatten ihre Tücken, waren unnötig komplex und hielten ein Unternehmen, das seine mobilen Anwendungen flexibel entwickeln will, in einem imaginären „Käfig“ begrenzter Möglichkeiten. Aus diesem Grund wird für B2C-Anwendungen oft die native Entwicklung bevorzugt, da sie nicht durch UX, Animationsmöglichkeiten und andere Details eingeschränkt sind, die für diese Zielgruppe sehr wichtig sind</p><p>In den letzten Jahren haben sich jedoch mobile Unternehmensanwendungen herausgebildet, bei denen nicht die perfekte Benutzeroberfläche und das Design im Vordergrund stehen, sondern die Funktionalität, die Benutzerfreundlichkeit und vor allem die Geschwindigkeit der Bereitstellung und die Flexibilität der Anpassung. Und hier zeigte sich Spielraum für den Einsatz ausgewählter Technologien, die eine plattformübergreifende Nutzung ermöglichen. Natürlich unter Einhaltung bestimmter Regeln.<br></p><p>Bei Cleverlance haben sich drei Arten der Implementierung bewährt. Wenn wir es stark vereinfachen, müssen wir gleich zu Beginn entscheiden, wie robust das Back-End mit MOA (Microservice Oriented Architecture) ist oder ob wir es erstellen müssen, und dann, ob die Anwendung nicht zu viel Geschäftslogik haben wird, sondern eher eine reine Präsentationsebene sein wird. In diesem Fall ist es vorteilhaft, Flutter zu verwenden. Wenn wir Warteschlangen für die Synchronisation, Geschäftslogik und die Einführung einer gewissen Komplexität außerhalb von Formularen in unserer Anwendung benötigen, ist Kotlin Multiplatform eine gute Lösung. Oder es gibt einen dritten Player = PWA (Progressive Web Applications), der die starke Basis moderner Browser nutzt.<br></p><h2>Flutter<br>​<br></h2><p>Wir betrachten Flutter als eine echte Multi-Channel-Display-Ebene, mit der wir mobile, Web- und Desktop-Anwendungen erstellen können. Es handelt sich um eine flexible Lösung, mit der sich B2B- und unter bestimmten Voraussetzungen auch B2C-Anwendungen effizient gestalten lassen. Ein Beispiel ist eine mobile Anwendung für BMW. Aber wenn Sie keine Probleme lösen wollen, ist es besser, sich auf das Backend zu verlassen und ihm das „Denken“ zu überlassen.<br></p><h2>Kotlin Multiplattform<br></h2><p>Eine weitere Option ist die Multiplattformsprache Kotlin. Der Vorteil ist, dass Sie eine „native App“ für Android programmieren, von der ein Teil auch für iOS verwendet werden kann. Meistens sprechen wir über die Geschäftslogik und die Integrationsebene, was uns später in der QA-Phase eine Menge Zeit erspart. Die Visualisierungsebene ist nativ für iOS und Android programmiert, so dass es möglich ist, das „Look & Feel“ der jeweiligen Plattform zu erreichen und die „One Code Base“ für die unsichtbaren Teile der App zu übernehmen. Bei einigen Projekten können bis zu 70-80 % des Codes auf diese Weise verwendet werden.<br></p><h2>PWA<br></h2><p>Progressive Web Applications gehören zu einem der neuesten Trends in der Entwicklung von Webanwendungen. Bis zu einem gewissen Grad verwischen sie die Grenzen zwischen webbasierten und nativen mobilen Anwendungen, indem sie Offline-Arbeit, den Zugriff auf die Gerätehardware und die Möglichkeit, Push-Benachrichtigungen zu empfangen, ermöglichen. Sie vereinen das Beste aus beiden Welten, nur begrenzt durch die Einschränkungen des Browsers. Dies eröffnet eine breite Palette von Funktionalitäten, zum Beispiel können bereits eine Kamera oder einen Fingerabdruckleser in der Basis verwendet werden. Das Erfordernis, tiefer gehende Gerätefunktionen zu nutzen, kann mit einer nativen „Hülle“, der sie verfügbar macht, effizient erfüllt werden. PWA-Apps können in allen gängigen App-Stores (Google Play, Apple Store, Huawei AppGallery und Microsoft Store) platziert werden und auf Android-, iOS- und Windows-Geräten laufen.<br></p><h2>Wo funktioniert es?<br></h2><p>Als Anbieter wollen wir natürlich neben den Standard-Entwicklungstechnologien auch „neue“ Technologien anbieten, und es freut uns umso mehr, dass unsere Kunden, die von Anfang an nach Kotlin Multiplatform gefragt haben, zu uns kommen. Als Beispiel sei hier das amerikanische Unternehmen Globstar genannt, für das die Aricoma-Gruppe eine mobile Anwendung für die Konfiguration und Verwaltung von Satellitenmodems für den Internetanschluss liefert. Der Einsatz von Kotlin Multiplatform war in diesem Fall wirklich erfolgreich, da es sich um eine Anwendung handelte, die in Bezug auf Integration und Datentransfer anspruchsvoll war. Darüber hinaus erfolgt die Integration über BLE (Bluetooth Low Energy), das Dutzende von Geräten gleichzeitig bedienen und beispielsweise deren Firmware aktualisieren kann. Die Technologie hat sowohl den Kunden als auch uns als Anbieter überzeugt, und es ist uns gelungen, eine partnerschaftliche Zusammenarbeit bei der Entwicklung der Anwendung aufzubauen.<br></p><p>Wir haben die PWA-Technologie zum Beispiel im Online-Service für SAZKAmobil-Kunden erfolgreich eingesetzt. Ihr Hauptvorteil ist die extrem verkürzte Time-To-Market (die Zeit, die benötigt wird, um neue Funktionen auf den Markt zu bringen) und die große Zahl von Entwicklern, die diese Technologie beherrschen. Darüber hinaus eignen sich PWAs am besten für Anwendungen, bei denen die Nutzung der Komponenten des Geräts selbst wenig im Vordergrund steht, z. B. für interne Unternehmensanwendungen, die von Außendienstmitarbeitern oder Produktionsmitarbeitern genutzt werden.<br></p><p>Wenn Sie an technischen Details interessiert sind, lesen Sie diesen Artikel in unserem Blog mobile it, in dem Sie auch erfahren, worauf Sie bei der Auswahl einer Technologie für die Entwicklung einer mobilen Anwendung achten sollten.<br></p>