Infotainment-Entwicklung mit Angular

In unseren Projekten setzen wir das Framework Angular in einem Umfeld ein, in dem man es nicht vermuten würde – im Infotainment in Premium-Fahrzeugen. Die Angular-Applikation läuft auf einem Browser im Fahrzeug auf dem zentralen Display, über das der Fahrer Funktionen wie Navigation, Telefon etc. steuern kann. Dabei ist nicht nur eines der – nach unserem Wissen – größten Angular-Projekte entstanden, sondern es ergeben sich in diesem Umfeld auch besondere Anforderungen, insbesondere im Hinblick auf die Laufzeit-Performance. Wir geben hier einen kleinen Einblick, was Dich bei uns im Angular-Team erwartet!

Performance

Eine besondere Herausforderung sind eine gute Laufzeit-Performance mit ruckelfreien Animationen und ein schneller Systemstart. Auch wenn Angular einiges mitbringt, so sind in der Entwicklung doch viele Aspekte zu beachten. In Bereich TypeScript ist v.a. die Change Detection zu beachten, um unnötige Screen-Updates zu vermeiden. Bei der Definition des CSS werden die Properties so ausgewählt, dass sie Hardware-beschleunigt auf dem Grafikprozessor ausgeführt werden können. Für einen schnellen System-Start laden wir alle Komponenten erst, sobald sie benötigt werden. Im Startup setzen wir auf ein gestaffeltes Laden – zunächst werden alle Komponenten geladen, die für die Darstellung des ersten Bildschirms benötigt werden, und danach die Hintergrunddienste.

CI-Infrastruktur

Der Code auf dem Master-Branch baut nicht? Das nervt! Daher setzen wir bei uns eine CI-Infrastruktur mit Gated Check-Ins ein. Damit können Änderungen nur eingebracht werden, wenn auf dem Feature-Branch Code, Tests und Linter-Regeln erfolgreich ausgeführt werden. Zusätzlich verwenden wir ein Tool zur statischen Code-Analyse, das auch automatisch auf den Feature-Branches ausgeführt wird. Zum Check-In gehört aber auch aber auch ein Code-Review. Dabei wird jede Änderung mit den Kollegen durchgesehen und Anmerkungen umgesetzt, bevor der Code in unser Repository kommt. So finden wir Fehler, können aber auch einheitliche Ansätze besser im Team verankern.

Einstieg über Bootcamp

Klingt nach viel? Kein Problem! Im Rahmen unseren Bootcamps bieten wir neuen Kollegen die Möglichkeit, den ganzen Technologie-Stack in einem mehrwöchigen Bootcamp kennenzulernen. Das Bootcamp wird von erfahrenen Kollegen als Paten begleitet und Übungsaufgaben stellen einen praktischen Bezug her. Die Paten bewerten die Übungsaufgaben in Reviews und geben wertvolle Tipps, stehen sonst aber auch für Fragen zur Verfügung. Das Bootcamp deckt Themen von git/npm/artifactory über HTML5/CSS3 hin zu Angular ab. Sehr wichtig ist bei uns auch der Einsatz von RxJS.