# Ionic (Framework)

Ionic ist ein Open-Source-Webframework zur Erstellung von Hybrid-Apps und Progressive Web Apps auf Basis von HTML5, CSS, Sass und JavaScript/TypeScript. Dabei basiert es seit Version 5 auf Ionics Capacitor. Seit Version 4 kann Ionic auch auf diverse andere Frameworks wie Vue.js aufsetzen, oder ohne darunterliegendes Framework verwendet werden. Es stellt eine Programmbibliothek aus verschiedenen Komponenten zur Verfügung, mit denen interaktive Apps programmiert werden können. Der Fokus des Frameworks liegt auf der Seite des Front-Ends, also der Benutzerschnittstelle.

## Entwicklung

Entwickelt wird es seit 2012 von Drifty. An der Entwicklung waren unter anderem die Programmierer Max Lynch und Ben Sperry, die Gründer von Drifty, sowie Adam Bradley beteiligt. Im März 2014 erhielt Drifty 1 Million US-Dollar Startkapital von „Arthur Ventures“.
Die Alpha-Veröffentlichung war Ende November 2013. Am 7. Mai 2014 wurde das bis dahin größte Update auf Ionic 1.0 Beta 4 veröffentlicht. Die Version v1.0.0 „uranium-unicorn“, wurde am 12. Mai 2015 freigegeben.
Am 25. Januar 2017 wurde die Version 2 des Ionic-Frameworks veröffentlicht. Das Framework wurde dabei umfassend überarbeitet und basiert auf dem AngularJS-Nachfolger Angular. Damit einher geht auch der Wechsel von JavaScript zu TypeScript.
Am 1. April 2017 erschien Version 3 des Frameworks. Dabei wurde auch die Versionsnummerierung geändert und folgt nun der semantischen Versionierung. Hauptmerkmale dieser Version ist die Unterstützung für Angular in Version 4 sowie die Kompatibilität mit neueren TypeScript-Versionen.
Am 24. Juli 2018 erschien die Version 4 als Beta des Frameworks. Hauptneuerungen sind Performanceverbesserungen und Multi-Framework-Kompatibilität. Version 4 wurde schließlich am 23. Januar 2019 veröffentlicht. Durch die neue Ordnerstruktur ist ein Migration von Version 3 auf Version 4 nicht direkt möglich.
Am. 11. Februar 2020 erschien die Version 5 des Frameworks. Neben Performanceverbesserungen wurden viele neue Komponenten des Apple iOS 13 hinzugefügt.

## Struktur

Ionic kann in Verbindung mit Angular genutzt werden, welches die Struktur der App erstellt, während Ionic die Benutzeroberfläche realisiert. Ionic ist ein npm-Modul und benötigt Node.js.
Mit Ionic können Hybrid-Apps für iOS, Android und mit Ionic 2 auch für die Universal Windows Platform von Windows 10 entwickelt werden. Diese Apps können zudem über die App Stores der jeweiligen Plattform vertrieben werden.
Angular arbeitet mit „jqLite“, das DOM-Manipulation ermöglicht. Für erweiterte Funktionalitäten kann jQuery mit einem Dokument geladen werden.
Ionic nutzt vorhandene HTML- und CSS-Funktionen, um schnelle Ergebnisse zu liefern. Gestaltbar über Sass, kann das individuelle Design der App durch Ionic-Variablen erweitert werden. Zusätzlich gibt es noch eine Bibliothek mit über 440 Symbolen.
Ionic Native basiert auf Cordova-Erweiterungen, die Kamera, GPS und Speicher ansprechen kann. Diese Module werden als Schnittstelle via eines npm-Moduls in Ionic importiert.

## Lizenz

Ionic steht unter der MIT-Lizenz, wodurch es privat als auch geschäftlich genutzt werden kann. Die kommerzielle Version wird in vier verschiedenen Preisvarianten angeboten, von denen die kleinste Lizenz kostenlos ist, aber nur von einzelnen Entwicklern genutzt werden darf.