Über die Entwicklung der Leica FOTOS Companion App

Timo Josten
Timo Josten – VP Software Engineering

Auf der Photokina 2018 hat die Leica Camera AG angekündigt, was sich als Game Changer in der Branche herausstellte: Die Leica FOTOS App, eine Companion App für Android und iOS Smartphones, die mit fast jeder angeschlossenen Leica Kamera auf dem Markt funktioniert.

Jetzt, wo die App der Öffentlichkeit zur Verfügung steht, freuen wir uns, dass auch wir Ihnen einen Einblick in den Weg von der Idee einer Leica App bis zur ersten öffentlichen Version des Produkts geben können.

Die Kopplung der Leica Kamera mit dem Smartphone ist mit der Leica FOTOS App jetzt einfacher als je zuvor

Eine App nativ für iOS- und Android-Plattformen zu entwickeln, die mit 12 verschiedenen Kameramodellen funktioniert, ist, wie Sie sich vielleicht vorstellen können, eine ziemliche Herausforderung. Einerseits wollten wir eine atemberaubende Benutzeroberfläche schaffen, die sich auf Schlichtheit und Benutzerfreundlichkeit konzentriert und gleichzeitig subtile und natürliche Animationen bietet. Andererseits mussten wir die technischen Herausforderungen lösen, um sicherzustellen, dass die App für den Benutzer genau so funktioniert, wie es für jede einzelne Leica Kamera erwartet wird.
Mit unseren erfahrenen interdisziplinären Entwicklungsteams und unserem tiefgreifenden Wissen über smarte Produkte waren wir stolz und glücklich, uns der Herausforderung zu stellen, ein herausragendes Erlebnis für die Leica Camera AG zu schaffen.

Leica FOTOS Bildübertragung

Die Erstellung einer brandneuen App, die mit zahlreichen verschiedenen Kameramodellen funktioniert, erfordert sorgfältige Überlegungen. Zu Beginn des Projekts und während der gesamten Entwicklungszeit stellte unser Team von technischen Lösungsarchitekten Konzepte und Spezifikationen zusammen, mit denen unsere Ingenieurteams arbeiten konnten. Die erste wichtige Frage war, wie man das, was wir die Geschäftslogik der App nennen (die sich um alles kamerabezogene kümmert), effizient von der Benutzeroberfläche entkoppeln kann, und zwar so, dass sowohl Android als auch iOS davon profitieren können.
Der Antrieb für die Leica FOTOS Apps ist nun ein plattformübergreifendes Software Development Kit (SDK), das in C++ geschrieben wurde und so kompiliert wurde, dass es sowohl auf Android als auch auf iOS nativ verwendet werden kann, robust und leicht erweiterbar ist und somit eine solide Grundlage für die erste und natürlich auch zukünftige Versionen der Apps darstellt. Das SDK (wir haben es liebevoll libleica genannt) kapselt die Kamera- und Protokollspezifika der verschiedenen Leica Kameras und stellt der Anwendungsschicht eine einfach zu bedienende, konsistente und kameraagnostische API zur Verfügung. Ab heute ist dies die Leica FOTOS App auf Android und iOS.

Leica FOTOS Kameraeinstellung

Mit dem SDK konnten sich unsere App-Entwickler auf die Erstellung erstklassiger Benutzeroberflächen konzentrieren, die die besten nativen Funktionen der zugrunde liegenden Plattformen nutzen. Die gesamte anspruchsvolle Low-Level-Kommunikation, die jede Kamera benötigt, wird vom SDK gelöst und darin gekapselt. Dies führt auch zu einer sauberen Trennung von Problemen, der Vermeidung von doppeltem Code und einem deutlich reduzierten Testaufwand. Wenn man genauer unter die Haube schaut, war das Djinni Framework eine große Hilfe. Ursprünglich vom Dropbox-Team entwickelt und als Open Source zur Verfügung gestellt, vereinfacht Djinni die mobile, plattformübergreifende Entwicklung in C++ dramatisch und wurde als solches bereits in mehreren unserer Projekten erfolgreich eingesetzt. Es verfügt über eine einfach zu bedienende Interface Definition Language (IDL), die saubere API-Definitionen unterstützt, welche über alle Sprachen hinweg (C++, Java/Kotlin, Objective-C/Swift) verwendet werden. Djinni generiert automatisch Header- und Glue-Code aus den IDL-Dateien, die als API-Schnittstelle zwischen SDK und Anwendungsschicht dienen. Damit gehören Unannehmlichkeiten auf niedriger Ebene wie die Implementierung von und der Umgang mit JNI der Vergangenheit an.

Es ist also der plattformübergreifende SDK-Ansatz von grandcentrix, der letztlich das Versprechen “eine App für alle Ihre Leica Kameras” einlösen kann. Und das ist noch nicht alles! Da das SDK mit C++ gebaut ist, ist es natürlich nicht nur auf mobile Lösungen beschränkt, sondern kann auch auf anderen Plattformen kompiliert werden.

Klingt interessant? Wir freuen uns darauf, mit Ihnen über das Internet der Dinge und smarte Produkte zu sprechen.