Beiträge

Die Zwei-Faktor-Authentifizierung für mehr Sicherheit von Webanwendungen und Apps

Die Zwei-Faktor-Authentifizierung für Webanwendungen

Die Menge sensibler Daten, die online abgelegt wird, nimmt täglich zu. Seien es Google und sein Speicherdienst Drive, Facebook mit höchst privaten Informationen, die nur einem bestimmten Kreis von Nutzern zugänglich sein soll oder die eigene Dropbox mit den letzten Urlaubsfotos – bei nicht wenigen Internetdiensten kann ein erfolgreicher Hacker-Angriff sehr schmerzhaft für alle Betroffenen sein.

Natürlich nutzen auch Unternehmen zunehmend Online-Dienste oder Web-Apps für unterschiedlichste Anwendungen. Zwischen einem potenziellen Hacker und diesen Diensten steht meistens nur ein einziges Passwort. Viele dieser Passwörter sind nicht besonders komplex und irgendwann ist auch der beste Schlüssel geknackt.

Manchmal müssen Angreifer gar nicht erst den Login knacken. Es genügt, wenn ihnen die Passwort-Datenbank des Dienst-Anbieters in die Hände fällt und diese nicht ausreichend abgesichert war. Auch das Mitlesen von Passwörtern per Keylogger ist, besonders auf fremden bzw. öffentlichen Rechnern, ein ernstzunehmendes Risiko.

Aus diesen Gründen empfiehlt es sich für Unternehmen wie Privatanwender gleichermaßen, bei wichtigen Online-Diensten eine zweite Barriere nach dem Passwort einzurichten: die Zwei-Faktor-Authentifizierung.

Was ist die Zwei-Faktor-Authentifizierung?

Bei dieser besonderen Form des Identitätsnachweises passiert folgendes:

  • Für eine Anmeldung werden Benutzername und Passwort ganz klassisch eingegeben. Anschließend aber fragt der Online-Dienst nach einer PIN. Diese wird auf das zu diesem Zweck bei der Nutzerregistrierung angegebene Smartphone als SMS gesendet oder per App generiert.
  • Der sehr wirkungsvolle Schutz der Zwei-Faktor-Authentifizierung besteht darin, dass das Passwort allein in den Händen eines Angreifers nutzlos ist. Der Hacker benötigt zusätzlich das entsprechende Smartphone, um an den, meistens sechsstelligen, Sicherheitscode zu kommen. Die rein digitale Anmeldung wird also um einen physisch getrennten zweiten Kanal ergänzt und die Sicherheit damit massiv ausgebaut.

Die Methode hat aber natürlich auch Nachteile:

  • Bei jeder Anmeldung an einem neuen Gerät muss das jeweilige Smartphone, griffbereit sein. Um beispielsweise im “Funkloch” nicht ohnmächtig zu sein, weil keine SMS empfangen werden können, oder nach einem eventuellen Diebstahl des Smartphones ohne die Generator-App keinen Zugriff mehr auf die Dienste zu haben, ist es empfehlenswert, stets wenigstens eine Alternative bei der Einrichtung anzugeben. Dann kann im Notfall einfach eine Code-SMS an ein Zweit-Smartphone gesendet werden. Auch eine ausgedruckte Liste mit Notfall-PINs ist sinnvoll – wenn auch als rein analoge Methode und damit Notlösung.
  • Manche Dienste kommen nicht mit den sechsstelligen Sicherheitscodes zurecht. Für solche Fälle gibt es bei vielen Anbietern spezielle und zum Teil noch längere Passwörter, die in die jeweilige Anwendung eingetragen werden müssen. Sollte der Aufwand dafür nach einiger Zeit doch zu hoch werden, lässt sich die Zwei-Faktor-Authentifizierung auch wieder deaktivieren.

Mehr Sicherheit für Software, Apps und Webanwendungen

Eine Authentifizierung mit zwei getrennten Komponenten ist grundsätzlich empfehlenswert. Der etwas geringere Komfort durch den minimalen Mehraufwand beim Login wird durch ein enormes Plus an Sicherheit wieder gut gemacht.

Haben Sie Interesse an einer Individualentwicklung mit dem hohen Sicherheitsniveau einer Zwei-Faktor-Authentifizierung oder eine Erweiterung Ihrer bestehenden Systeme? Wenden Sie sich gerne jederzeit an die Spezialisten der kreITiv GmbH und lassen Sie sich zum Thema Sicherheit beraten.

Kotlin vs. Java, Wachablösung der Programmiersprachen

Kotlin, die moderne Java-Alternative in der Softwareentwicklung

Sicherlich hat nahezu jeder Java-Entwickler einmal das Buch “Java ist eine Insel” in den Händen gehabt. Der Name der Programmiersprache Kotlin ist eine Anspielung darauf, da es sich auch dabei um eine Insel handelt. Hier, in der Nähe von St. Petersburg, sitzt ein Teil des Entwicklerteams, das für die Firma JetBrains an Kotlin arbeitet.

Es ist eine sehr junge Programmiersprache, die in Bytecode für die Java Virtual Machine (JVM) übersetzt wird und auch in JavaScript-Quellcode transformiert werden kann. Laut der Entwicklerwebseite setzen diverse kleine und große Projekte die Sprache intensiv ein, darunter namhafte Webdienste, wie z. B. Pinterest, Gradle, Evernote, Uber und Atlassian (für das Tool Trello).

Ist Kotlin das bessere Java?

Um Kotlin kommt man inzwischen kaum herum, wenn man sich mit JVM-Sprachen beschäftigt. Als Quasi-Standard hat es sich bereits in der Android-Entwicklung etabliert und erobert nach und nach weitere Bereiche der Softwareentwicklung. Ein Hauptgrund ist sicher die fast nahtlose Interoperabilität mit Java. Auch die modernen Features lassen die Fangemeinde immer weiter anwachsen.

Durch was zeichnet sich Kotlin aus? Natürlich gibt es Anknüpfungspunkte und starke Ähnlichkeiten, die an andere Sprachen wie Scala, Groovy und Java erinnern. Die Sprache, die Java-Interoperabilität als ein wesentliches Merkmal für sich beansprucht, ist noch recht jung. Viele Jahre der Softwareentwicklung in Java werden durch den neuen Ansatz nicht von heute auf morgen verworfen. Kotlin ist mehr eine Evolution als eine Revolution.

Es ist eine pragmatische Programmiersprache, die aus den praktischen und alltäglichen Bedürfnissen des Entwicklers JetBrains entstanden ist. Empfohlen wird, neue Module in Kotlin zu entwickeln und “alten Code” Schritt für Schritt zu ersetzen.

Was zeichnet Kotlin als Programmiersprache aus?

Dieser Beitrag soll kein Tutorial werden und nur einige Aspekte der Programmiersprache anreißen.

Ein wesentliches Feature der Sprache ist die Zusicherung, dass eine Variable keinen „null“-Wert enthält. Damit erspart sich der Entwickler „if not null“-Abfragen. Zwar bietet Java 8 mit „Optional“ scheinbar ein vergleichbares Feature, allerdings mit dem Unterschied, dass „Optional“ rein auf Konvention basiert. Daher müssen Java-Entwickler „Optional“ nicht verwenden, aber sie müssen in Kotlin explizit einen „nullbaren“ Typ benutzen, wenn NULL ein gültiger Wert sein soll.

Diese Eigenschaft wird durch ein Fragezeichen am Ende des Typs ausgedrückt. Damit wird einem API-Benutzer deutlich, dass er mit einem möglichen NULL-Wert umgehen muss. Diese Sicherheit gilt allerdings nur für Code, der in Kotlin geschriebenen ist. Wenn dagegen eine in Java geschriebene Bibliothek verwendet wird, muss damit gerechnet werden, dass „null“-Werte vorkommen.

Kotlin ist prägnanter als Java. Das lässt sich an verschiedenen Beispielen zeigen. Semikolons am Ende von Statements sind optional. Das entspricht dem Anspruch moderner Programmiersprachen.

Die Reihenfolge von Datentyp und Bezeichner wurde im Gegensatz zu Java getauscht und folgt nun dem Konzept, das von anderen modernen Sprachen, wie Scala und Go, verwendet wird. An vielen Stellen kann beispielsweise darauf verzichtet werden, den Typ einer Variablen anzugeben. Für veränderliche Werte gibt es das Schlüsselwort „var“, für unveränderliche Werte „val“.

Mit Extension Functions können bestehende Klassen um weitere Funktionalitäten erweitert werden. Dies ist besonders nützlich, wenn man einer Klasse, die man selbst nicht kontrolliert, eine Funktion hinzufügen möchte. In Java wird üblicherweise mit Utility-Klassen gearbeitet, die statische Methoden enthalten. In Kotlin ist es möglich, eine Funktion zu schreiben, die auf dem Objekt der Klasse String aufgerufen werden kann.

 

Kotlin ist unter Entwicklern sehr beliebt

Die Sprache kommt in der Industrie sehr gut an. Das wird z. B. an der Unterstützung durch das Spring-Framework deutlich. Hier kann Kotlin neben Java und Groovy als Sprache ausgewählt werden. Ein wichtiger Beliebtheitshinweis ist die offizielle Unterstützung durch Google als Programmiersprache für Android. Diese wurde auf der Entwicklerkonferenz Google I/O im Mai 2017 angekündigt.

Domänenspezifische Sprachen sind ein weiteres Anwendungsgebiet. Gradle bietet eine Build-Beschreibungssprache, die auf Groovy basiert. Seit Version 3.0 ist alternativ auch eine Kotlin-basierte Sprache verfügbar. Diese liefert die Aussicht auf bessere Unterstützung in der Entwicklungsumgebung, ist aber momentan noch im Entstehungsprozess. Informationen zum aktuellen Projektfortschritt sind auf der Projektseite von Kotlin verfügbar.

Kotlin lernen

Um sich die Programmiersprache anzuschauen und zu testen, gibt es verschiedene Möglichkeiten.

  • Browserbasierter Editor mit Beispielen und Übungen: https://try.kotlinlang.org
  • Mit IntelliJ IDEA kann ein Projekt angelegt werden. Die IDE konvertiert auch Java-Code, wenn er in eine Kotlin-Quellcode-Datei kopiert wird. Trotz einigem Optimierungsbedarf funktioniert die Konvertierung recht gut.

 

Ein angenehmes Wesensmerkmal der Softwareentwicklung ist, dass es keinen Stillstand gibt. Die Spezialisten der kreITiv haben die Trends ständig im Blick und verfolgen Entwicklungen, die im Interesse des Kunden liegen, sehr aufmerksam. Haben Sie Fragen oder Wünsche im Bereich Softwareentwicklung? Wenden Sie sich gerne jederzeit an uns.

Erfahrungen und Erkenntnisse aus der komponentenbasierten Entwicklung

Komponentenbasierte Entwicklung von Softwareanwendungen

Das sich in den letzten Jahren der Trend zum auf Komponenten basierenden Entwicklungsansatz (component driven development) hin entwickelt hat, haben wir im Blogartikel “Wie wir bei kreITiv ein stimmiges User Interface entwickeln” kürzlich schon beschrieben.

In einem zweiten und deutlich technischeren Beitrag möchten wir nun weiterführend auf die Vorteile dieses Ansatzes eingehen und das Konzept mit der sogenannten Redux-Implementierung vervollständigen.

Vorteile des komponentenbasierten Entwicklungsansatzes

Die komponentenbasierte Entwicklung beschreibt ein innovatives Vorgehen, welches sich in unserer Branche immer größerer Beliebtheit erfreut. Im Vergleich zu herkömmlichen Ansätzen, wird hier von vornherein mehr auf klare Strukturierung und ein hohes Maß an Wiederverwendbarkeit von Codestrukturen geachtet. Arbeitspakete sind deutlich einfacher zu gliedern und lassen sich flexibler in Teams teilen.

Der Ansatz stammt aus dem Bereich der Entwicklung von webbasierter Software und kann Unternehmen als Neuerung wertvolle Rückschlüsse auf Entwicklungsprozesse für Anwendungen liefern. Er eignet sich besonders für Projekte, die mehr als einen Entwickler in der Umsetzung benötigen oder einen sehr hohen qualitativen Anspruch an das User Interface legen. Mit dem Konzept schafft man sich Strukturen, die eine spätere Weiterentwicklung sowie die Skalierbarkeit der eigenen Anwendung deutlich erleichtern.

Ganz konkret lassen sich vier entscheidende Vorteile festhalten.

  • Isolierte Komponentenentwicklung

    Damit ist es dem Entwickler möglich, seinen Fokus klar auf verschiedene Teilaspekte einer Anwendung zu legen. Jeder Teil einer Anwendung wird hierbei separat entwickelt und auch getestet. Das führt in der Regel zu wesentlich weniger Fehlern bei der späteren Implementierung.

  • Komponentenzustände

    Im Komponenten Tree werden vorab alle notwendigen und möglichen Zustände geplant und aufgelistet. Dies hat zur Folge, dass eine Komponente in jedem Kontext der Anwendung sauber funktioniert und auf jeden Anwendungsfall entsprechend reagieren kann.

  • Parallelisierte Entwicklung

    Die gleichzeitige Umsetzung mehrerer Komponenten ermöglicht es, Aufgaben zwischen verschiedenen Teammitgliedern so zu teilen, wie es auf der Ebene von “Bildschirmen” nicht möglich ist.

  • Vielfältige Testmöglichkeiten

    Neben den klassischen visuellen Tests über das Storybook, können die Entwickler hier auch Module, wie den Unit Test (JEST) oder automatisierte DOM Tests, nutzen.


Sind alle Komponenten mit ihren States entwickelt worden, so können diese auch optional in eine Library, also eine Bibliothek, implementiert werden, um in späteren Projekten wiederverwendet zu werden. In der Regel folgt danach die Implementierung der Anwendung. Dies kann innerhalb des Storybooks oder auch außerhalb realisiert werden. In diesem Schritt werden nun die zuvor entwickelten Komponenten in Container Elemente implementiert, damit diese eine direkte Anbindung an den Store der Bibliothek erhalten können.

In einem unserer Storybooks können Sie sich einen Überblick der einzelnen Komponenten, eingearbeitet in den jeweiligen Views, verschaffen. Komponenten können z.B. Input-Felder, Grafiken, aber auch die umschließenden Komponenten in Form einer Karte sein. Ein Storybook beinhaltet im Normalfall tatsächlich nur einzelne Komponenten, keine ganzen Seitenansichten. Das Ziel ist es, alle benötigten Elemente in ihren verschiedenen Stadien während der Entwicklung darzustellen. Eine weitreichende Logik wird dabei vernachlässigt.

Das Konzept der Redux-Implementierung

Die Überführung der entwickelten Komponenten in eine Bibliothek macht nun die Installation von Redux als State Management Library und der Erweiterung React-Redux notwendig. Redux selbst ist eine quelloffene und mittlerweile von React unabhängige Bibliothek und kann auch für andere reaktive Frameworks verwendet. So zum Beispiel für die auch von uns in Projekten verwendeten Frameworks Vue oder Angular.

Aufbau einer Redux-Implementierung

  • Actions: Beschreiben, wie Daten manipuliert werden.

  • Action Creator: Erzeugen aus der Action ein JavaScript-Objekt, verknüpfen dieses mit Daten und führen gegebenenfalls asynchrone Operationen wie API-Calls aus. Hierfür wird Thunk als Erweiterung empfohlen.

  • Reducer: Erzeugen einen neuen Anwendungsstate. Wichtig ist, dass ein State nie manipuliert werden kann. Es wird immer ein neuer State erzeugt, der dann vom Reducer in den Store geschrieben wird.

  • Store: Ist der anwendungseigene Speicher. Werden Komponenten mit ihm verknüpft, dann erhält jede deren Änderungen und kann entsprechend neugerendet werden.

Vorteile der Redux-basierenden Datenverarbeitung

  • Strikte Trennung von Präsentation und Verarbeitung der Daten: Die Darstellung der Daten selbst wird in der Regel über Stateless-Komponenten realisiert, welche Änderungen der Daten selbst über ihre Properties und Container triggern können. Die eigentliche Manipulation der Information geschieht über die Reducer, die als Pure Function geschrieben werden.
  • Deterministische Zustände: Dank der strikten Vorgaben für die Konzeption eines Reducers sind alle Zustände, welche Daten einer Anwendung annehmen können, begrenzt. Dies minimiert die möglichen Fehler in Punkto Verarbeitung enorm.
  • Standardisiertes Architekturkonzept: Redux als Library gibt den Aufbau der Datenverarbeitung vor, was zu Folge hat, dass Anwendungen einheitlicher und damit wartbarer werden.

 

Auf Basis unserer Projekterfahrungen können wir damit als Fazit ziehen: Mit einem komponentenbasierten Entwicklungsansatz benötigt man mehr Zeit für die Entwicklung von Anwendungen, jedoch rechtfertigt sich mehr Mehraufwand, da letztlich qualitativ hochwertige Anwendungen entstehen.

Wir sind gespannt, welche Entwicklungen es in diesem Bereich in den kommenden Jahren noch geben wird und behalten natürlich insbesondere die Webtechnologien für unsere Kunden und Projekte genau im Auge.

Arten der Versionsverwaltung in der Softwareentwicklung

Versionsverwaltung in der Softwareentwicklung

In der heutigen Softwareentwicklung ist eine Versionsverwaltung für große und teambasierte Projekte unabdingbar. Sie ermöglicht es, in nachvollziehbaren Schritten eine Anwendung zu entwickeln. Doch was genau versteht man als Versionsverwaltung und welche Vorteile hat es für die Entwicklung von Software?

Warum überhaupt eine Versionsverwaltung

Versionsverwaltung kurz VCS (Version Control System) ist ein System, mit dem Quellcode verwaltet und nachvollzogen, Anwendungen stetig optimiert oder ggf. auch auf einen früheren Stand eines Projektes zurückgegriffen werden kann. Die wohl bekanntesten Beispiele aus der Praxis, welche mit VCS entwickelt werden, sind das Open Source Projekt für den Linux-Kernel, die Entwicklung des Android Betriebssystems oder auch die Entwicklung der Programmiersprache PHP.

In großen Projekten arbeiten häufig mehrere Entwickler an einer Software und es treffen verschiedene Versionen des Quelltextes aufeinander. Um Fehler zu vermeiden und die Entwicklung zu optimieren, sind die folgenden Funktionalitäten deshalb sehr wichtig:

  • Protokoll der Änderungen,
  • Wiederherstellung und Archivierung von Entwicklungsständen sowie
  • die Koordination von Aufgaben beteiligter Personen.

Die 3 Arten der VCS

Die lokale Versionsverwaltung dient der Versionierung von Dateien oder häufig Dokumenten und wird in der Regel nur auf einem einzelnen System eingesetzt.

Bei der zentralen Versionsverwaltung wird das gesamte Projekt nur auf einem System festgehalten und den berechtigten Personen zur Verfügung gestellt. Die unterschiedlichen Stände der Software sind bloß auf diesem System abgelegt.

Die verteilte Versionsverwaltung bietet allen beteiligten Entwicklern die Möglichkeit, an einer lokal geklonten Version des Projektes zu arbeiten und mit einem zentralen Stand abzugleichen und ggf. auch den Quellcode durch andere Entwickler oder automatisierte Mechanismen überprüfen zu lassen.

Tools zur Versionsverwaltung in Projekten

Welche Tools gibt es, um Versionsverwaltung für das eigene Projekt zu nutzen und welchen Vorteil bieten webbasierte Services gerade im Bereich der Webentwicklung? Die bekanntesten Tools – um nur zwei zu nennen – sind sicherlich Apache Subversion (SVN) oder Git mit seinen webbasierten Repositories GitHub, GitLab oder Bitbucket.

  • SVN als freie Software zählt zu den zentralen Versionsverwaltungssystemen und wird vor allem für die Versionierung von Binärdateien verwendet. Die Unterstützung für die Bearbeitung auf einem zentralen System hat den Vorteil, dass gerade bei großen Binärdateien, z. B. bei grafischen Elementen, die Erkennung weitestgehend automatisch erfolgt und SVN die Änderungen abgleicht.
  • Git im Gegenzug als verteilte Versionsverwaltung ermöglicht im betrieblichen Einsatz eine schnellere Bearbeitung durch die lokale Version auf dem System des Entwicklers. Des Weiteren kann jeder beteiligte Entwickler den Stand einsehen und überprüfen, bevor dieser in die zentrale Version eingespielt werden.

Gerade in der Webentwicklung werden immer häufiger webbasierte Services eingesetzt. So bietet zum Beispiel GitHub mit seiner Vielzahl an frei verfügbaren Open Source Projekten einer Vielzahl von Entwicklern die Möglichkeit, Software kostenfrei zu versionieren.

Im betrieblichen Umfeld muss man meist auf ein kostenpflichtiges Angebot zurückgreifen. Hier kann aber GitLab als webbasierter Service genutzt werden, da man so zusätzlich die sensiblen Daten einer Software in Unternehmen auf einem eigenen Server behalten kann.

Zusammengefasst lässt sich sagen, dass Softwareprojekte heutzutage nicht mehr ohne eine Versionsverwaltung ob lokal, zentral oder verteilt möglich sind. Eine Vielzahl von Tools lassen auch Ihnen die Chance, Ihre Idee zukunftsträchtig zu verwirklichen. Selbstverständlich stehen Ihnen die kreITiv Softwareentwickler bei Fragen und zur Unterstützung gern zur Seite.

Erklärung und Vorteile von Progressive Web Apps

Progressive Web Apps – Die mobile Revolution?

Täglich nutzen wir Progressive Web Apps und wissen es nicht einmal. Diese sogenannten PWA’s besitzen alle Funktionalitäten und Möglichkeiten klassischer Smartphone-Apps, laufen aber vollständig im Webbrowser und haben damit den Vorteil, dass sie nicht erst installiert werden müssen. In den letzten Jahren hat der Vormarsch dieser Art von App begonnen und sie ist nun im Begriff, herkömmliche Apps vollständig abzulösen.

Nach der allgemeinen Einführung in die Web Apps, befassen wir uns deshalb noch einmal genauer mit dem Thema und tragen zusammen, was eine Progressive Web App ausmacht, ob sie dem Vergleich zu klassischen Apps standhält und welche Chancen für Unternehmen bietet. Die vielen Vorteile dieser Entwicklungen zeigen wir aber gleich vorweg…

  • Keine Installation notwendig, Nutzung direkt im Browser

  • Updates auf dem Server und nicht beim Nutzer

  • Nutzung dank Caching auch offline möglich

  • Unterschiedlichste Funktionen abdeckbar

  • Inhalte können von Suchmaschinen indexiert werden

  • Simples Teilen der App per URL

  • Geringere Entwicklungs- und Wartungskosten

  • Unabhängigkeit von App Stores

  • Gesicherter Zugriff für geschäftliche Anwender auf Firmendaten möglich

 

Was genau sind eigentlich Progressive Web Apps?

Bekannte Webdienste wie Gmail, Netflix, Trivago, Microsoft Office, Instagram oder Twitter sind Progressive Web Apps. Es sind Anwendungen, die im Webbrowser ausgeführt werden und dem Nutzer das gleiche Erlebnis wie native Apps liefern (also eigens für diese Funktion erstellte Anwendungen, die auf dem Endgerät in einer separaten Umgebung verarbeitet werden). Egal ob Smartphone, Tablet oder Desktop-PC, der Nutzer kann im Browser Mails lesen und schreiben, Flugreisen buchen oder Filme schauen.

PWA’s stellen also Funktionen bereit, die über das reine Anzeigen von Texten und Bildern im Webbrowser hinausgehen. “Progressive” werden sie im Vergleich zu bisherigen Web Apps durch die Möglichkeit, auch offline nutzbar zu sein.

Die Technik dahinter ist nicht allzu komplex. Das wichtigste Element für die Umsetzung von Progressive Web Apps sind die sogenannten Service Worker. Sie arbeiten im Hintergrund der Webseite und ermöglichen das Laden von bestimmten Inhalten in den Cache, ohne dass es einer erneuten HTTP-Kommunikation bedarf. Fordert ein Nutzer bestimmte Inhalte an, hat der Service Worker diese Inhalte bereits in den Cache geladen, da der Entwickler diese vorab definiert hat.

Hierbei kommen moderne Methoden der Webentwicklung, wie das Prerendering, Preloading und Prefetching, zum Einsatz. Während der Entwicklung einer Progressive Web App werden diese Schlüsselressourcen identifiziert, referenziert und vorgeladen. Je nach Nutzerinteraktion weiß die App, welche Inhalte angefordert werden und muss diese nicht extra über die Internetverbindung nachladen.

Dieses Prinzip reduziert die Abhängigkeit von Übertragungsraten speziell des mobilen Internets und verbessert die User Experience.

Die Kontrolle des Cachings schließt noch einen weiteren Aspekt mit ein – das Laden der Inhalte erfolgt wesentlich schneller, somit müssen die Nutzer keine langen Wartezeiten in Kauf nehmen. Der Nutzungsprozess wird dadurch auf einem hohen Niveau trotz schonendem Gebrauch der Netzwerkressourcen gehalten.

Die Vorteile von PWA’s in der App-Entwicklung

Technik, Nutzererfahrung und Onlinemarketing

  • Deutlich hervor sticht, dass man PWA’s nicht aus dem jeweiligen App-Store herunterladen und installieren muss. Somit gehören auch Updates der Vergangenheit an. Mit der Funktion “Add-To-Homescreen”, welche so gut wie jedes mobile Betriebssystem unterstützt, kann der Nutzer den Link wie ein klassisches App-Symbol auf seinem Desktop abspeichern und jederzeit aufrufen.
  • Ein weiterer Vorteil von Progressive Web Apps ist die Nutzung auch bei schlechter oder gar keiner Internetverbindung. Die App muss lediglich einmal online genutzt werden, dann sollten die Inhalte im Cache auch offline verfügbar sein.
  • Des Weiteren haben Entwickler die Möglichkeit, auf mehr Funktionen des Smartphones zuzugreifen, wie bspw. das Senden von Push-Benachrichtigungen auf mobile Geräte.
  • Außerdem ist das Teilen der App sehr simpel. Während bei nativen Apps erst ein Link über den Store aufgerufen werden muss, kann für PWA’s ganz einfach die URL aus dem Webbrowser kopiert werden.
  • Und auch für das Onlinemarketing bieten sich Vorzüge: Bei Progressiven Web Apps können die Inhalte nämlich im Gegensatz zu nativen Apps vollständig von Suchmaschinen indexiert werden.

Unternehmerische Vorteile

  • Die wirtschaftlichen Vorteile sind die geringeren Entwicklungs- und Wartungskosten. Eine zeitintensive Entwicklung für mehrere Betriebssysteme wird überflüssig und Updates können direkt eingespielt werden, ohne dass Nutzer extra darüber informiert werden müssen.
  • Da Progressive Web Apps nicht installiert werden müssen, sind die Betreiber unabhängig von App Stores. Entwickler müssen demnach vom Verkaufspreis keine Anteile für die jeweilige Plattform abgeben.
  • Zudem ist die mentale Hürde zur Installation einer App deutlich höher, als der Schritt zum Aufrufen einer Webseite und dem Abspeichern als Homescreen-Icon. Betreiber einer PWA benötigen also weniger Überzeugungskraft als mit einer App, erzielen aber im Endeffekt eine ähnlich hohe Conversion Rate sowie Kundenbindung.
  • Auch für Businessanwendungen gibt es kaum Grenzen: Geschäftliche Anwender profitieren mit dem gesicherten Zugriff auf Firmendaten von Desktops, Laptops, iOS- und Android-Geräten, welche aus dem Browser heraus ermöglicht werden. Über Services – lokal oder über die Cloud – können diese Daten dann sicher und hochverfügbar bereitgestellt werden. In den Bereichen Datenschutz und Datensicherheit hat sich gerade im Mobile Bereich sehr viel getan, sodass auch die Geräte selbst mittlerweile durchaus für den Unternehmensalltag zum Einsatz kommen können.

Welche Zukunft haben Progressive Web Apps?

Inwieweit sich Progressive Web Apps in der Zukunft durchsetzen werden, bleibt noch abzuwarten. Die technologische Entwicklung in diesem Bereich wird von Google vorangetrieben und war anfangs nur für Android-Geräte und den Chrome-Browser verfügbar. Die großen Konkurrenten der Branche haben ihre Systeme nach langer Zurückhaltung mittlerweile aber ebenfalls für Progressive Web Apps nachgerüstet.

So hat Microsoft im September 2017 angekündigt, den mit Windows 10 eingeführten Edge-Browser für PWA‘s zu optimieren. Im „Redstone 4“-Update des Betriebssystems aus dem Frühjahr 2018 war der PWA-Support dann endgültig enthalten. Apple hat schon seit einiger Zeit Service Worker in das Webkit des hauseigenen Safari-Browsers integriert und damit die Basis für Progressive Web Apps geschaffen. Und auch reine Browserentwickler, wie Mozilla mit seinem Firefox, sind mit von der Partie.

Es ist wohl also nur noch eine Frage der Zeit bis sich Progressive Web Apps auf dem Markt etabliert haben – die Bedingungen dafür erfüllen sie jedoch bereits. Interessieren Sie sich für die Entwicklung von Progressiven Web Apps? Dann lassen Sie sich von der Softwareentwicklung der kreITiv beraten!

Fragen und Antworten zum Einstieg als Programmierer bei kreITiv

Als Praktikant in der Welt der Programmierer und Softwareentwickler

Unser Praktikant Tony findet Antworten auf die 4 wichtigsten Fragen, die sich Schüler und Auszubildende beim Einstieg in die Welt von Softwareentwicklung und IT stellen sollten.

1. Welche Voraussetzungen sollte ich als Praktikant mitbringen?

Die junge Generation wächst heute ganz selbstverständlich mit dem Medium Internet, sowie Smartphones und Tablets auf. Aus dem normalen Alltag ist all das nicht mehr wegzudenken. Doch nur weil man diese nutzen und zu bedienen weiß, heißt das noch lange nicht, dass man die Strukturen dahinter nachvollziehen kann. Jedoch wird mit diesem Grundwissen der Einstieg in das Thema deutlich vereinfacht.

Programmieren ist nicht einfach; es zu erlernen erst recht nicht, denn anders als in herkömmlichen Berufen, entwickelt die Technik sich stetig weiter und die Herausforderungen wachsen mit jedem Projekt. Doch wer ein gewisses Maß an Vorstellungsvermögen und Bereitschaft sich dahinter zu klemmen hat, kann diese Hürde meistern. Eine weitere wichtige Vorrausetzung ist das grundlegende Interesse, diese technischen Vorgänge nachzuvollziehen, weil Fehlersuche zur täglichen Arbeit als Praktikant in der Webentwicklung gehört und sie teils viele Stunden in Anspruch nehmen kann.

2. Wie kann ich Programmieren lernen?

w3schools.com oder Codecademy.com sind gute Anlaufstellen für den Einstieg in Programmiersprachen wie HTML, CSS, Python, PHP, JavaScript. Beide ermöglichen das Programmieren lernen im Browser. Die meisten dieser Kurse sind kostenlos und reichen völlig aus für die Basics. Wer jedoch mehr lernen möchte, kann auch monatlich einen Festpreis dafür zahlen, um auf mehr Übungen und weitere Features Zugriff zu haben.

Die meisten Seiten, Videos und Tutorials sind auf Englisch, was zusätzlich die Sprachkompetenzen mit auffrischt – auch das ist für Entwickler ein Muss. Ebenso gibt es zahlreiche YouTube Channels, die spannende Tutorials vermitteln. Ich lerne z. B. gerade erste WordPress Plugins zu programmieren. Selbstverständlich muss man dabei viel nachschlagen und googeln, doch es macht Spaß, wenn durch die eingegebenen Codezeilen der Computer die Aktionen erwartungsgemäß durchführt und das richtige Ergebnis liefert.

3. Welche Arten von Programmierern gibt es?

Die IT-Branche ist heutzutage sehr weitläufig und bietet für Entwickler zahlreiche Einsatzgebiete, die für viele auch und gerade als Praktikant interessant sind. Unterteilen kann man grob in folgende Kategorien:

Webprogrammierer/innen:

Von einfachen Webseiten bis hin zu komplexen Webshops oder Onlinespielen gehört ein breites Spektrum zu den Aufgaben eines Webprogrammierers. Wichtige Bestandteile sind Skriptsprachen wie JavaScript, des weiteren serverseitige Programmiersprachen wie Python oder PHP und natürlich die Seitenbeschreibungssprachen wie HTML, CSS, XML.

Systemprogrammierer/innen Desktop, Großrechner:

Die Einsatzmöglichkeiten in der Systemprogrammierung sind sehr speziell. Dabei geht es von künstlicher Intelligenz (z. B. Spracherkennung und -verarbeitung) bis hin zu virtueller Realität.

Anwendungsprogrammierer/innen Apps für mobile Geräte:

Hier sollen Apps nach Kundenwünschen entworfen und angepasst oder selber eine zündende Idee umgesetzt werden. Von reinem Coding bis hin zum Design und Aufbau der App ist dieser Beruf sehr vielseitig, abwechslungsreich und aufgrund des sich stark in diese Richtung entwickelnden Marktes sehr zukunftsträchtig.

Anwendungsprogrammierer/innen Desktop:

Sie entwickeln Software speziell für individuelle Nutzer, testen diese und führen regelmäßig Updates durch. Außerdem verbessern sie die Anwendungen hinsichtlich der Funktionalität (Sicherheit, Design) und anpassen sie an den aktuellen Standard an.

4. Wie lange dauert das Programmieren lernen?

Dafür gibt es keinen Richtwert, viel mehr erfordert Programmierung ein lebenslanges Lernen. Die Grundlagen eignet sich jeder unterschiedlich schnell an, aber bis man mit einem Programm das erste Geld verdienen kann, vergehen sicher erst einmal ein paar Jahre.

Und so heißt es in der Softwareentwicklung vom Praktikant bis zum alten Hasen, sich ständig mit neuen Technologien und Sprachen zu befassen und immer am Ball zu bleiben. Auch nach dem aktuellen Mobile-Trend wird es wieder neue Entwicklungen und damit auch Aufgabenfelder für Programmierer geben.

 

Zusammenfassend kann man sagen, dass die Programmierung und Softwareentwicklung ein abwechslungsreicher, spannender und sich stetig entwickelnder Beruf ist. Du hast Lust auf eine neue Erfahrung? Hast schon sehr viele Jahre als Entwickler gearbeitet? Oder würdest gern mal als Praktikant in die Webentwicklung reinschnuppern? Dann findest du in den Stellenanzeigen der kreITiv vielleicht etwas passendes.

Ursprung und Vorteile reaktiver JavaScript Frameworks für moderne Benutzeroberflächen

Reaktive JavaScript Frameworks – Trend in der Entwicklung von Benutzeroberflächen

Reaktives Verhalten, Virtual DOM und Komponenten sind die wesentlichen Bestandteile von reaktiven JavaScript Frameworks und entscheidende Stichworte für den modernen Softwareentwickler bei der Erstellung von Benutzeroberflächen. Richtungsweisend für die Etablierung dieses Trends können die zahlreichen Entwicklungen der letzten Jahre sein, welche auf eben diesen Frameworks basieren, darunter große Projekte wie Netflix, Facebook, Instagram, WhatsApp oder AirBnB.

Wieso man diesem Trend folgen sollte und welche Vorteile er mit sich bringt, möchten wir in diesem Blogartikel aufzeigen.

Ein eindeutiger Trend, doch wo liegt der Ursprung?

In den vergangenen Jahren dominierten Libraries beziehungsweise Frameworks, wie jQuery oder Mootools, den Bereich der Benutzeroberflächenentwicklung. Nun lässt sich jedoch ein eindeutiger Wechsel in Richtung reaktiver JavaScript Frameworks erkennen.

Bei der Entwicklung von großen Webanwendungen kommt es zunehmend darauf an, eine vernünftige Codestruktur zu erzeugen. Vergleicht man hier als Beispiel jQuery mit Vue oder React als Vertreter der reaktiven Frameworks, so stellt man fest, dass jQuery keine Komponenten bietet.

Mittels Komponenten ist ein Entwickler in der Lage, Struktursprachen wie HTML und CSS mit der JavaScript-Logik innerhalb einer Datei zu bündeln. Diese kann dann an beliebiger Stelle innerhalb der Anwendung mehrfach verwendet werden. Zusätzlich besteht die Möglichkeit, diese Komponenten problemlos innerhalb einer anderen Anwendung zu nutzen. Die variabel einsetzbaren Codestrukturen werden dann in übersichtlicher Art und Weise miteinander verknüpft, sodass am Ende die Darstellung über eine Baumstruktur möglich ist.

Der zentrale Vorteil von reaktiven JS-Frameworks ist somit die Reduktion der Komplexität der Codestruktur. Sekundäre Ziele sind dabei die bessere Verständlichkeit und somit auch leichtere Wartung von komplexen Codestrukturen.

Was ist eigentlich dieses reaktive Verhalten?

Innerhalb einer Komponente kann der Entwickler zum Beispiel Formulardaten definieren, welche automatisch über das Model Binding der Logik zugänglich gemacht werden können. Bei jQuery muss an dieser Stelle mit Events gearbeitet werden, bei Vue und Co. ist dies praktisch nicht notwendig.

Zusätzlich gibt es neue Libraries, wie zum Beispiel Elements für Vue. Durch Elements kann ein Entwickler vorgefertigte Komponenten in seine Anwendung implementieren. Diese verfügen damit schon über eine gewisse Logik und sind auch komplett grafisch aufgearbeitet.

In Puncto Geschwindigkeit können reaktive JavaScript Frameworks natürlich auch bestehen, da mindestens ein virtuelles Strukturabbild des HTML-Dokuments im Speicher vorgehalten wird. Dadurch muss nicht das komplette HTML-Dokument neu geladen werden, wenn sich ein Teil dieser Struktur ändert. Der virtuelle DOM prüft selbstständig, welche Bereiche im Dokument neu gerendert werden müssen und imitiert genau dies automatisch. Damit ist die clientseitige Manipulation deutlich effizienter geworden.

Viele Vorteile rechtfertigen die höhere Entwicklungszeit

Fassen wir die zahlreichen Vorteile von reaktiven JavaScript Frameworks zusammen:

  • Wiederverwendbarer Code durch Komponenten

  • Bessere Wartbarkeit der Anwendung

  • Schnellerer Zugriff auf Daten dank Model Binding und reaktiven Verhaltens

  • Effizientere Manipulation von HTML-Strukturen

  • Höhere Geschwindigkeit

Natürlich besitzt jede neue Technologie auch ein oder zwei Schattenseiten. Im Fall von Vue ist dies der doch spürbar höhere Anspruch für die clientseitige Entwicklung. Das führt letztlich zu einer längeren Entwicklungszeit für eine Anwendung.

Zusammenfassend kann man jedoch sagen, dass der Trend eindeutig in Richtung reaktiver JavaScript Frameworks zeigt, da selbst das World Wide Web Consortium W3C an einer sehr analogen Technologie namens „Shadow DOM“ arbeitet.

Moderne App-Entwicklung für Smartphones und Tablets

App-Entwicklung für Android und iOS in der Praxis

Dem Thema “mobile” und der App-Entwicklung geht die Luft nicht aus – ganz im Gegenteil, die oft zurückhaltende Unternehmenswelt entdeckt gerade erst die vielfältigen Möglichkeiten zur Digitalisierung von Geschäftsprozessen mittels Apps fürs Smartphone und Tablet. Immer wieder bekommen auch wir Kundenanfragen zur Entwicklung von Anwendungen für mobile Endgeräte, denen wir mit unserer kreITiv Softwareentwicklung gern nachkommen.

Wie man Apps für Unternehmen entwickelt

Im konkreten Fall gilt es zunächst, die Anforderungen und Wünsche der Kunden für die gewünschte Lösung zu analysieren und zu prüfen. Oft eignen sich Webanwendungen, die über den Browser überall und von jedem Gerät aus verfügbar sind – die sogenannten Web-Apps.

Für uns in der Webentwicklung ist es mittlerweile zum Standard geworden, Webanwendungen responsive zu erstellen und das Design somit von vornherein für alle Endgeräte zu optimieren. Viele Firmen legen zusätzlich aber auch Wert darauf, in den App Stores von Apple und Android vertreten zu sein und die eigene App zum Download zur Verfügung zu stellen. Dadurch können natürlich Umsatzsteigerungen durch neue Kunden realisiert werden. Außerdem ergreift man damit u. U. die Chance, der Konkurrenz einen Schritt voraus zu sein.

  • In einigen Fällen steht beim Kunden bereits eine Responsive Webseite oder Webanwendung zur Verfügung. Diese können wir in kurzer Zeit in eine native App – also eine speziell für die mobilen Plattformen entwickelte Anwendung – umsetzen. Anschließend wird die App in den Google Play Store für Android-Geräte übertragen oder auf der Webseite des Kunden zum Download zur Verfügung gestellt.
  • Bei Apps für das iPhone ist dies nicht ganz so einfach, da Apple strengere Richtlinien für seinen App Store verfolgt und Anwendungen aus diversen Gründen auch gern ablehnt. Über das sogenannte Volume Purchase Program (VPP) von Apple haben wir allerdings die Möglichkeit, die entwickelte App im B2B-Store für iPhones und iPads anzubieten und somit doch auf allen Endgeräten zu platzieren.

Wann empfiehlt sich eine native App und wann reicht die Web-App?

Oft ergeben sich in der App-Entwicklung funktionelle Anforderungen, die in einer reinen Web-App nicht umgesetzt werden können, nach denen also eine native Anwendung durchaus sinnvoll oder auch zwingend erforderlich ist. Dies empfiehlt sich insbesondere, wenn die App auf die Hardware von Endgeräten (wie z. B. GPS-Funktionen oder die Kamera für einen Barcode-Scanner) zugreifen soll. Aber auch Anforderungen wie Push-Benachrichtigungen, Hintergrunddienste, Bluetooth oder Near Field Communication (NFC) erfordern die Entwicklung einer nativen App.

Mitunter kann auch der spätere Gebrauch der App darüber entscheiden, ob es sinnvoll ist, die App nativ für Android und/oder iOS zu entwickeln. Häufig sollen in kurzer Zeit Daten erfasst werden, um Prozesse zu digitalisieren. Für einen echten Produktivitätsgewinn muss dies flüssig und ohne Unterbrechungen am Stück geschehen. Wenn es sich hierbei um größere Datenmengen handelt und eventuell nicht immer eine Internetverbindung verfügbar ist, ist es sinnvoll die Daten zunächst auf dem Gerät zu speichern.

Nach Abschluss des Vorgangs können diese Informationen dann von der App an den Server über das Internet übertragen werden. Eine native App eignet sich somit bspw. auch, wenn Sie sensible Daten speichern, diese aber nicht in eine Cloud oder nach Außen übertragen wollen.

Ihre App zum Download oder im App Store von Google & Apple

Wie bereits erwähnt, kann es bei Anwendungen für Apple-Geräte vorkommen, dass diese nicht zur Veröffentlichung im öffentlichen App Store zugelassen werden. Doch nicht immer ist es überhaupt nötig oder vom Kunden auch gewünscht, dass die App für jedermann im Store zugänglich ist. In solchen Fällen übertragen wir die entwickelten Apps in den separaten Store für B2B-Kunden. So wird sichergestellt, dass die Anwendung auch nur an berechtigte Nutzer verteilt wird und z. B. im internen Gebrauch bei Unternehmen verwendet werden kann.

Für Android-Nutzer ist der Prozess deutlich weniger kompliziert. Das Ergebnis der App-Entwicklung ist eine APK-Datei, die beliebig an ausgewählte Nutzer verteilt und zum Download zur Verfügung gestellt werden kann. Der Weg über den Google Play Store ist nicht zwingend nötig, kann sich aber speziell im B2C-Bereich ebenso anbieten.

Individuelle App-Entwicklung von kreITiv

Bei der Entwicklung von Apps verhält es sich ganz ähnlich wie bei jedem herkömmlichen Softwareprojekt. Zunächst ist es immer wichtig, die Anforderungen genau zu analysieren und anschließend zu entscheiden, welcher der richtige Weg zum Ziel ist. Dank der zahlreichen technischen Standards, die Smartphones und Tablets heute bieten, ergeben sich auch ganz neue Möglichkeiten für intelligente Softwarelösungen, welche Unternehmensprozesse digitalisieren und zu mehr Produktivität im alltäglichen Arbeiten führen können.

Wir beraten Sie gern in der Konzeption Ihrer App und unterstützen Sie in jedem Schritt der Umsetzung nach Ihren individuellen Vorstellungen.

Kostenlose Beratung anfordern!

Webseiten und Web-Apps mit dem Laravel Framework

Laravel Framework – Die beste Option für Ihr Unternehmen

Webanwendungen erlauben einen universellen und flexiblen Zugang zu den unterschiedlichsten Dienstleistungen. Mit einer rasant steigenden Nutzung des Internets bieten auch zahlreiche Unternehmen ihre Waren, Dienstleistungen und Kenntnisse als Web-Content an. Zuverlässige, sichere und effiziente Applikationen sind somit der Schlüssel zum Erfolg für viele moderne Firmen.

Oft wird die Umsetzung solcher Web-Apps an Spezialisten und Agenturen abgegeben. Trotzdem ist es auch für den Auftraggeber wichtig, die unterschiedlichen Herangehensweisen bei der Entwicklung zu kennen, um zu verstehen, wie sich diese auf das eigene Unternehmen auswirken können.

7 Gründe, warum wir auf das Laravel Framework setzen

Für die Softwareentwicklung von kreITiv haben wir uns, wenn es um komplexe und langlebige Webanwendungen geht, für das PHP-Framework Laravel entschieden. Aus der Unternehmersicht, waren die folgenden Kriterien für diesen Schritt ausschlaggebend.

1

Ladezeit/Geschwindigkeit der Anwendung

Statistiken von Google aus dem Jahr 2016 belegen, dass 53% aller Nutzer eine Webseite verlassen, wenn deren Ladezeit mehr als drei Sekunden beträgt. Dies zeigt, dass die Geschwindigkeit von Web-Applikation höchste Priorität haben sollte.

Anders als bspw. beim mittlerweile sehr komplexen CMS WordPress, beinhaltet eine Laravel-Applikation ausschließlich die Funktionen, die auch wirklich gebraucht werden. Das Resultat ist ein nahezu perfekt auf den Verwendungszweck zugeschnittenes Produkt.

Bei großen Erweiterungen, welche die Ladegeschwindigkeit immer begrenzen, bietet Laravel diverse Optimierungsoptionen, bei denen unter anderem Caching eingesetzt wird.

2

Möglichkeiten zur späteren Weiterentwicklung

Laravel ist das beliebteste PHP Framework 2017 und kommt mit einer breiten Community von Programmierern und Unterstützern. Das bedeutet, dass es keine Probleme bei der späteren Überarbeitung eines Produktes gibt, da Laravel vollständig dokumentiert ist und zahllose Hilfestellungen zu finden sind. Projekte können durch die Skalierbarkeit Laravels stets wachsen und haben keine Limitierungen in diesem Bereich.

Außerdem beinhaltet Laravel ein Versionsmanagement für die Datenbankentwicklung, welches bei der späteren Expansion des Projektes hilfreich ist.

3

Client-Side Framework Unterstützung

Die komplizierten Funktionalitäten einer Web-App verstecken sich immer hinter dem Design. Daher ist es von hoher Wichtigkeit, dass die Benutzeroberfläche einfach zu bedienen ist und mit einer gewissen Eleganz beim Nutzer einen bleibenden Eindruck hinterlässt.

Laravel unterstützt eine Vielzahl an unterschiedlichen Client-Side Frameworks, welche für eine professionelle Entwicklung der Seitendarstellungen benötigt werden. Somit können sowohl statische als auch dynamische Seiten erstellt werden und es gibt keinerlei Limitationen, wenn es um die Interaktivität und Komplexität der Webanwendung geht.

4

Verwendung neuester Techniken bei der Entwicklung

PHP-Frameworks wie Laravel sind grundsätzlich ein Schritt in die Zukunft der Webentwicklung, da durch die Abstraktion keine einfachen Fehler und Sicherheitsprobleme auftauchen und die Programmierung effizienter und schneller geschieht.

Laravel ist ein ideales Grundgerüst für jegliche Webanwendungen, dank dem sich der Entwickler auf die eigentlichen Funktionalitäten der Applikation konzentrieren kann. Ein Beispiel dafür sind die Datenbankzugriffe, welche bei Laravel über vorgefertigte und abgesicherte Methoden laufen, was dazu führt, dass die Entwicklung schneller und die Verwendung sicherer ist.

5

Programmiererfreundliche Entwicklung

Durch den logischen Aufbau und die durchdachte Struktur der Laravel-Applikationen, ist das Handling für Produktentwickler um vieles angenehmer. Das führt dazu, dass viel weniger Logik- und Strukturfehler entstehen. Durch den besseren Überblick erkennen Programmierer schon bei der Entwicklung viel mehr Sicherheitsfehler und Bugs. Auch spätere Erweiterungen oder Änderungen der App können ohne Probleme durchgeführt werden, da es auch für einen projektfremden Entwickler einfach ist, die Struktur und Funktionalitäten zu verstehen und darauf basierend weiterzuentwickeln.

6

Überprüfte und instand gehaltene Sicherheitsoptionen

Laravel baut auf ein vollwertiges und häufig getestetes Authentifizierungssystem. Hinter dem Open Source Framework steht eine große Community. Dadurch werden Sicherheitslücken und allgemeine Fehler schnell erkannt und behoben.

Dieses Authentifizierungssystem umfasst das ganze Framework, wodurch die Absicherung von bestimmten Seiten und einzelnen Prozessen realisiert werden kann. Aufbauend darauf, wurden verschiedene Erweiterungen/Pakete entwickelt, mit denen man komplexere Systeme entwickeln kann. Genauso wie die nativen Laravel-Funktionen, sind diese Erweiterungen community-unterstützt und daher sehr verlässlich.

7

Erweiterte Möglichkeiten bei der Datenverarbeitung und -bereitstellung

Anders als bei vielen CMS und anderen Frameworks, liegt die Datenbankverwaltung ganz in den Händen der Programmierer. Es erlaubt den Zugriff auf alle Daten und ermöglicht eine Verwertung dieser Daten in einer großen Vielfalt.

Eloquent ist eine Laravel-Klasse, welche eine effizientere Datenverarbeitung erlaubt. Über automatisierte Verknüpfungen zwischen Datenbanktabellen und Laravel-Modellen wird der Datenzugriff erleichtert. Dadurch können jegliche Informationen verarbeitet werden und im Anschluss für Marketing, Prozessanalysen, und Kundenbetreuung sowie -service verwendet werden.

Moderne Webanwendungen von kreITiv

Egal, ob Webseite, Web-App oder cloud-gestützte lokale Anwendung, die Softwareentwicklung von kreITiv aus Dresden realisiert auch Ihr Projekt. Wir bauen auf moderne Webtechnologien und die Ablösung isolierter Systeme zugunsten flexibler und zukunftsweisender Onlinelösungen. Fragen Sie uns an.

Frameworks erleichtern heute das Arbeiten für Webentwickler

Frontend Development Frameworks in der Webentwicklung

Das World Wide Web wächst noch immer beständig und mit ihm auch der Umfang an Endgeräten, mit denen wir darauf zugreifen. Aus diesem Grund werden auch die Jobs der Webdesigner und Entwickler deutlich komplexer.

Schließlich sollen Webanwendungen auf möglichst vielen Geräteklassen mit den unterschiedlichsten Bildschirmauflösungen zum einen wie geplant funktionieren und zum anderen gut aussehen.

Warum überhaupt Frameworks in der Webentwicklung?

Vor einigen Jahren waren die Dinge deutlich einfacher. Man konnte davon ausgehen, dass die eigene Webseite stets über Desktop-Rechner mit einem Standardbrowser aufgerufen wurde. 960 Pixel wurden mehr oder weniger als eine gute Breite für eine Webseite betrachtet. Mit dem Boom von mobilen Endgeräten in den letzten sieben bis acht Jahren hat sich alles geändert. Wir haben die Einführung von Smartphones und Tablets aller Größen, eReadern, Browser in TV-Geräten und vieles andere erlebt. Die Vielfalt an Geräteklassen steigt nahezu täglich.

Bei der Arbeit mit unbekannten Darstellungsgrößen ist das “Responsive Design” eine der primären Strategien, die verwendet werden. Dieser Mechanismus stellt definierte Layouts bzw. Stylesheets auf der Grundlage der Größe der Browserfenster bereit.

Für Designer und Entwickler ist es wichtig zu verstehen, wie man mit dieser mobilen Welt umgehen kann. Es wurden bereits Technologien und Werkzeuge entwickelt, die das Leben der Web-Spezialisten vereinfachen sollen. Hier kommen die sogenannten Frontend Development Frameworks ins Spiel. Sie erlauben es, reaktionsfähige, standardkonforme Webseiten mit minimalem Aufwand zu erstellen und gleichzeitig alles einfach und konsistent zu halten.

Für Entwickler, welche die heutige Webentwicklung ernst nehmen, sind Frameworks keine Option, sondern ein Muss.

Es existiert eine Vielzahl dieser Frameworks; einige von ihnen heben sich aber von der Masse ab. Eines der mächtigsten und beliebtesten Frontend Frameworks ist Bootstrap.

Bootstrap, das beliebteste freie CSS-Framework

Bootstrap ist ein kostenloses Framework für die Gestaltung von Webseiten und Webanwendungen. Es wird Open Source unter einer Creative Commons Lizenz entwickelt und enthält HTML- und CSS-basierte Designvorlagen für Typografie, Formulare, Schaltflächen, Navigation und andere Schnittstellenkomponenten sowie optionale JavaScript-Erweiterungen. Im Gegensatz zu vielen Web-Frameworks handelt es sich nur um ein reines Frontend-Entwicklungstool.

Ursprünglich war Bootstrap nur für die interne Verwendung bei Twitter gedacht. Sein großer Erfolg ist auf folgende Punkte zurückzuführen:

  • Das responsive Grid-System,
  • eine nahezu komplette Bibliothek an User-Interface-Komponenten (inklusive JavaScript)
  • und eine hohe Usability.

Damit kommt das Framework auch in Sachen Effizienz und Zeitersparnis einer immer noch jungen, sich professionalisierenden Branche entgegen.

Auch wir in der kreITiv Webentwicklung setzen natürlich auf bewährte Technologien und halten ebenso die Augen für neue Trends der Softwareentwicklung offen. Kontaktieren Sie uns und realisieren Sie mit uns Ihr nächstes Webprojekt.