Hybride Lokalisierung für iOS und Android

Hybride Lokalisierung für iOS und Android

Ein Grundpfeiler unserer Dienstleistung ist die Entwicklung von Apps für iOS und Android. Die meisten Projekte entstehen zeitgleich für beide Plattformen. Eine Herausforderung hierbei ist die Lokalisierung von Texten bzw. deren Synchronisierung. Die Texte werden für iOS in einer Localizable.strings und für Android in einer strings.xml gehalten, wobei sich Format und Featureset grundlegend unterscheiden.

Docker Meetup in der x-root

Comment

Docker Meetup in der x-root

Im September startete eine Meetup-Reihe in Rosenheim für Softwareentwickler und Dev Ops. Die x-root Software GmbH organisierte gestern eines dieser Meetups zum Thema Virtualisierung mithilfe von Docker-Containern.

Nico Meisenzahl von panagenda begrüßte die knapp zwanzig Teilnehmer, bevor die Vorträge starteten. Tobias Jonas von der innFactory GmbH schaffte in “Introduction to Docker” ein gemeinsames Verständnis von der Virtualisierung mithilfe von Docker-Containern und schaffte damit einen guten Einstieg. David Steinkopff vertiefte dieses Wissen anschließend in “Von der virtuellen Maschine zum Container-Netzwerk mit docker-compose”. Anschließend ließ man den Abend ausklingen bei einem lockeren Kommunikationsaustausch bei Drinks & Snacks.

Wir bedanken uns bei allen Teilnehmern und freuen uns schon auf das nächste Meetup!

Comment

Vaadin DevDay Munich 2018

Comment

Vaadin DevDay Munich 2018

Wir waren auf dem Vaadin DevDay in München und haben uns dort auf den neuesten Stand hinsichtlich des Webframeworks für Rich Internet Applications gebracht.

Comment

Die x-root auf der IKORO 2018

Comment

Die x-root auf der IKORO 2018

Die IKORO ist die Industrie- und Kontaktmesse der Hochschule Rosenheim. Die zweitägige Messe feiert in diesem Jahr ihr 25. Jubiläum und begrüßt rund 180 regionale und überregionale Unternehmen. Natürlich dürfen auch wir nicht fehlen und haben uns mit zweien unserer Softwareentwickler auf den Weg zur Hochschule Rosenheim gemacht. Mit im Gepäck haben wir einige Referenzen aus unseren Schwerpunkten Backend Development und Mobile Applications sowie Stellenangebote für ebendiese.

Wir freuen uns auf euch!

Comment

JavaLand 2018: Eine Achterbahn der Entwicklergefühle

Comment

JavaLand 2018: Eine Achterbahn der Entwicklergefühle

Rollercoaster & Java – eine Kombination, die gewöhnlich Spieleprogrammierern vorenthalten ist. Doch in Europas größter Java-Konferenz wurde dies für mehr als 1.900 Java-Enthusiasten zur Wirklichkeit - auf der JavaLand 2018, die heuer ihr fünfjähriges Jubiläum feiert. Unser Team Kiska durfte, neben diversen Achterbahnspektakeln, die aktuellen Neuheiten und Entwicklungen rund um die Technologie Java genießen.

Der Newcomer und Softwareentwickler Felix Schumacher demonstrierte in seinem Vortrag „Generierung von Regressionstests für Legacy Code“ einige interessante Konzepte zur Steigerung der Codecoverage von Legacy-Anwendungen. Diese „historisch gewachsenen“ Anwendungen lassen oft nur schlecht Erweiterungen zu. Um ein mögliches Refactoring zu gewährleisten, werden Regressionstests generiert, die bis zu einem gewissen Grad die Testbarkeit gewährleisten. Randoop und Evoseite sind Beispiele für solche Tools, die in diesem Rahmen vorgestellt wurden.

100% Code Coverage sind in Java Enterprise Anwendungen oft nur schwer zu erreichen. Stefan Macke, Softwarearchitekt und Anwendungsentwickler der Krankenversicherung Alte Oldenburger zeigte verschiedene Vorgehensweisen, wie übliche Komponenten einer Java-EE-Anwendung ohne großen Programmieraufwand isoliert voneinander getestet werden können. Von "einfachen" Unit-Tests mit JUnit 5, Spock und Mockito über leichtgewichtige Integrationstests mit Derby und Jetty bis hin zu kompletten End-to-End-Tests mit Arquillian, Selenium und WireMock wurden diverse Möglichkeiten für automatisierte Tests von Java-EE-Komponenten vorgestellt.

Ein weiterer sehenswerter Talk war der Vortrag von Lars Röwekamp mit dem Thema „Mittendrin statt nur dabei: Offline-first-Architekturen“. Dabei ging es um Webanwendungen die auch ohne stabile Internetverbindung richtig funktionieren. Im Gegensatz zum Always-on-Paradigma traditioneller Webanwendungen ist beim Offline-first-Ansatz eine permanente Netzwerkverbindung nicht Pflicht, sondern Kür. "Act locally, sync globally" statt dem bekannten Request-Response-Modell diente als Fazit des 40minütigen Talks.

Als herausragend stellte sich der Talk „Fallacies of Doom - Lessons Learned from Porting Doom 3 to Java“ von Mahmoud Abdelghany heraus. Dieser junge Programmierer portierte vor einigen Jahren den Egoshooter Doom 3 nach Java. Neben den Grundlagen der Spieleentwicklung wurde auf wesentliche Unterschiede und Hürden im Vergleich zur Entwicklung von Spielen mit C++ eingegangen.

Die JavaLand ist mit ihrer ausgefallenen Location für jeden Java-Entwickler und Rollercoaster-Fan auf jeden Fall einen Besuch wert. Wünschenswert wäre eine Erhöhung der Vortragsdauer der einzelnen Talks. Viele Sprecher mussten aus zeitlichen Gründen immer wieder Folien überspringen.

Comment

MobileTech 2018: Internet of Things, Voice Assistants, Augmented Reality

Comment

MobileTech 2018: Internet of Things, Voice Assistants, Augmented Reality

Die Münchener MobileTech 2018 führte seine Teilnehmer durch die Welt des Mobile Development. Wir waren mit zwei Leuten vor Ort und haben uns interessante Vorträge über das Internet of Things, Voice Assistants und Augmented Reality angehört. Viele dieser Vorträge haben uns neue Denkanstöße und Tipps geliefert, wie wir unsere tägliche Arbeit als Softwareentwickler verbessern und erleichtern können.

"Flutter - Yet another cross-platform solution?" von Alexander Frank (arconsis IT-Solutions GmbH) und Benedict Pregler (Schweizer Radio und Fernsehen) weckte unser verloren geglaubtes Interesse an plattformübergreifenden Lösungen. "Beautiful native apps in record time", verspricht Google und liefert mit Flutter ein Framework, welches native Apps auf Basis der hauseigenen Programmiersprache Dart erzeugt. Wir werden ein waches Auge auf die Entwicklung des, sich aktuell noch im Beta-Stadium befindlichen, Frameworks richten.

Alexander von Below von der Deutschen Telekom entführte uns in die Welt des Machine Learning in seinem Vortrag "I am Electro: My brain is bigger than yours! - Machine Learning in der Theorie. Die Praxis auf iOS" und kommentierte dieses mit zwei schlagfertigen Onelinern: "Korrelation entspricht nicht Kausalität", mahnt davor, Zusammenhänge aus unzureichenden Informationen abzuleiten. "Garbage in, Knowledge out" bekräftigt, dass Machine Learning nicht die Antwort auf alle Fragen ist. 

Christian Schwendtner (PROGRAMMIERFABRIK GmbH) präsentierte eine Query language for your API in seinem Vortrag "GraphQL - forget (the) REST?". GraphQL bildet eine interessante Alternative zu REST und identifiziert sich als Bindeglied zwischen schemalosen und schemabasierten Webservices - ohne den Overhead eines SOAP mit sich zu bringen.

Dass 2018 den Voice Assistants gehört, ist seit dem Raketenstart von Amazon Alexa kein Geheimnis mehr. Peter Friese (Google) demonstrierte die Implementierung eines solchen in seinem Vortrag "Building high quality for Google Assistant" und schaffte damit ein gemeinsames Verständnis von den Vorteilen und Fallstricken eines Voice Assistants.

Wir freuen uns über das geballte Wissen, das an diesen zwei Tagen in knapp dreißig Vorträgen konzentriert wurde und danken den Veranstaltern der MobileTech herzlich! Bis zur nächsten MobileTech!

Comment

Concat Konferenz 2018 in Salzburg

Comment

Concat Konferenz 2018 in Salzburg

Wir waren am Samstag, den 3. März 2018, auf der zweiten concat in Salzburg. Diese von Mitarbeitern und Studierenden der FH Salzburg veranstaltete Konferenz befasste sich mit den Themen Web und UX. 

Ungewöhnlich war der Einstieg mit einem zutiefst technischen Vortrag zu den Interna von Googles JavaScript Engine V8. Hier hätte der geneigte Zuhörer vermutlich eine Keynote über über die Kompatibilität von Webbrowsern erwartet, die dann später von Ola Gasidlo vorgetragen wurde. Ein Vortrag über die serverseitige Anwendung von Swift war vor allem für unsere iOS-Entwickler interessant, allerdings fehlt es hier noch etwas an Reife. Einen schönen Einblick in die Entwicklung von Mozilla gewährte uns Ursula Sarracini, die die Herausforderung von alter und neuer Codebasis unter dem Dach von Firefox darstellte.

Wirklich umgehauen hat uns der Vortrag "Build bridges, not walls - Design for users across cultures" von Jenny Shen. Sie verdeutlichte die Unterschiede zwischen verschiedenen Kulturen anschaulich und führte dem Publikum unbewusste Stereotypen in unterhaltsamer Weise vor. Hierdurch lernte man von Implikationen, die für eine gute UX zu berücksichtigen sind.

Die Konferenz war insgesamt sehr gut organisiert, auch wenn wir uns für das nächste Mal längere Vortragsdauern als zwanzig Minuten wünschen würden. Vielleicht könnte man sich hier an der NordicJS orientieren und die dritte concat auf zwei Tage verteilen, um den einzelnen Referenten mehr Zeit zu gewähren.

Comment

Building Evolutionary Architecture

Comment

Building Evolutionary Architecture

Softwarearchitektur ist ein abstraktes Konstrukt: am Anfang definiert man am Whiteboard verschiedene Komponenten sowie deren Zusammenspiel und schreibt möglicherweise umfangreiche Dokumentation. Während der folgenden Umsetzung merkt man früher oder später, welche Aspekte man selbst oder der Kunde vergessen hat. Dann werden Prozesse und Methodiken benötigt, um den notwendigen Anpassungen gerecht zu werden. 

Anlässlich dieses Themas veranstaltete man vergangenen Donnerstag, den 15.02.2018, eine Buchvorstellung in München. "Building Evolutionary Architecture" wurde von zwei der drei Autoren, Rebecca Parsons und Neal Ford, vorgestellt. Wir waren dabei und hörten uns bekannte und unbekannte Erfahrungen zur praktischen Weiterentwicklung bestehender Softwarearchitekturen an.

Das Fazit dieses Abends deckt sich mit unseren Erfahrungen: Architektur ist und bleibt die Summe seiner Trade-offs.

Comment

Android Smart Lock for Passwords and its pitfalls

Comment

Android Smart Lock for Passwords and its pitfalls

Recently we convinced one of our customers that Smart Lock for Passwords would be a neat feature for his app.

At the moment users have to enter their credentials on every login and every new device. We could and should increase customer satisfaction by offering a seamless transition from one installation to another.

Smart Lock for Passwords is a password management system that Google introduced in 2015. It stores third-party credentials in its safe and offers them to users who authenticate via Google, Facebook, Twitter or other accounts. Smart Lock is an alternative to Dashlane, Kaspersky Password Manager, LastPass and other password managers.

We are not talking about the entirely different Smart Lock, an intelligent screen lock, which was integrated into the Android operating system from version 5.0 onwards.

During the implementation of Smart Lock for Passwords we met several problems surrounding its container, the Google Play Services.

This blog post serves as a documentation as well as a guide for other developers that may stumble upon the same problems.

  • Google Play Service 11.8.0 and ProGuard
    Upgrading from version 11.6.2 to 11.8.0 comes with one grain of salt: Changes in the default shrinker lead to build breaks with a ProGuard configuration parser error. The solution is to downgrade to version 11.6.2 (more on that later) or to enable ProGuard for debug builds - set minifyEnabled and useProGuard to true - increased build times included (Instant Run to the rescue). Read More
     
  • Android O and AutoFill
    AutoFill shares the same keystore as Smart Lock for Passwords. It is therefor the default method for password convenience on devices with Android O and higher. This clashes with Smart Lock for Passwords. The Google Play Services 11.8.0 brought forceEnableSaveDialog() to disable this default behavior. Sadly there is no public method to set this flag on lower versions, other than using reflection or other dirty hacks. Read More

At the end we decided to stick with Smart Lock until Android O reaches a wider audience (as of January 2018 its distribution rate is less than one percent). Since we have to deal with AutoFill, we upgraded to the Google Play Services 11.8.0 and enabled ProGuard for the debug build. AutoFill is still on our todo list but at the moment we decided to deactivate it for the app by setting setImportantForAutofill.

Comment

droidcon 2017

Comment

droidcon 2017

Die droidcon London öffnete zum neunten Mal ihre Vorhänge und lud damit Android-Entwickler aus aller Herren Länder in das Business Design Centre ein. Die x-root nahm zum ersten Mal teil und schickte zwei ihrer Ingenieure über den Ärmelkanal. Hier konnten wir uns am 26. und 27. Oktober ein Bild davon machen, weshalb diese Konferenz als eine der bedeutendsten im Bereich Mobile Development gilt.

Die Konferenz wurde von Chet Haase und Romain Guy eingeleitet, die man aus dem Android Developers Backstage Podcast kennt. In dieser Keynote "Android: A Retrospektive", wie auch im höchst amüsanten "Comedy Talk" über eine fiktive Programmiersprache namens F.A.R.T., bewiesen sie ihr komödiantisches Talent, ohne jedoch den Fokus auf die harten Fakten und informativen Randnotizen zu verlieren.

Anschließend gaben sich Entwickler von Google, Facebook, Pinterest, xda developers und weiteren Softwarehäusern die Klinke in die Hand. Thematisch deckte man Android als Ganzes ab: Machine Learning, Reactive Programming, Android Security, API Development, Firebase, Git, Gradle und Lint. Der offensichtliche Star der Show war natürlich Kotlin, welches am zweiten Tag in einer Reihe von Vorträgen propagiert wurde. "Accessibility @ Scale" und "What's really new in Android Wear" beschäftigten sich hingegen mit Nischenthemen und erlaubten wichtige Blicke über den Tellerrand.

Am zweiten Tag betrat der eigentliche Star der Show die Bühne: Kotlin wurde im Mai als First-Class-Programmiersprache auf der Google I/O '17 deklariert. Mit Android Studio 3.0, welches wenige Tage zuvor freigegeben worden ist, erhält es offiziellen und tiefintegrierten Support. Die gut besuchten und zahlreichen Vorträge über Kotlin beweisen nun endgültig, dass es in der breiten Wahrnehmung der Android-Welt angekommen ist.

Die finale Keynote gab Jake Wharton, der die droidcon UK 2017 mit einem Blick hinter die Kulissen beendete: "Sinking your teeth into Bytecode" schaffte Verständnis dafür, was mit dem Code geschieht, den wir in Java und Kotlin hinterlassen, und wieso komplexe Tools wie ProGuard ihre Daseinsberechtigung haben.

Unser Fazit

Wir haben viel gelernt, tolle Menschen getroffen und viele Eindrücke in London gesammelt.
Daheim angekommen können wir es kaum erwarten, das neu Gelernte auszuprobieren und zu besseren Entwicklern zu werden!

Cheers!

Comment

Pixel all the way

Comment

Pixel all the way

Google präsentierte gestern eine neue Generation von Hardware in vielsagenden Farben wie Just Black, Clearly White und ... Kinda Blue.

Die Smartphone-Sparte Google Pixel erhält zwei Nachfolger: Das Google Pixel 2 von HTC erinnert mit seinen 5 Zoll noch stark an den Vorgänger und erhält die üblichen Detailverbesserungen. Einen größeren Satz nach vorne macht das Google Pixel 2 XL, welches seine 6 Zoll mit einem vergleichsweise schlanken Gehäuse kaschiert, wie man es bereits von den Edge-to-Edge-Displays eines Xiaomi Mi Mix, LG G6, Samsung Galaxy S8 oder iPhone X kennt. Darüber hinaus unterscheiden sich die Geräte lediglich in der Auflösung (2K in 18:9 statt Full HD in 16:9) und der Akkukapazität (3520 statt 2700 mAh). Der Klinkenanschluss wurde gestrichen und bleibt damit, ähnlich wie das drahtlose Laden, hinter neuen Standards und effizienteren Technologien zurück.
Neu bedeutet hier: Schnellladefunktion für sieben Stunden Akkulaufzeit innerhalb von fünfzehn Minuten und Bluetooth 5.0 für eine verbesserte Reichweite und Übertragungsgeschwindigkeit. Als kleines Highlight erwies sich eine Randnotiz: Das mit Project Treble gesetzte Ziel wurde ebenfalls erfüllt: Die Pixel 2 erhalten drei Jahre lang Betriebssystemupdates.

Die Bluetooth-Kopfhörer Pixel Buds fungierten in einer beeindruckenden Demonstration als Dolmetscher und übersetzten in Echtzeit zwischen Englisch und Schwedisch. Das erste Chromebook von Google hört auf den Namen Pixelbook und positioniert sich im oberen Mittelfeld aktueller Ultrabooks sowie vor seinem indirekten Vorgänger Pixel C dank Stiftbedienung und Chrome OS. Der Sprachassistent Google Home wird um den günstigeren Google Home Mini sowie den hochklassigen Google Home Max ergänzt.

Google Pixel Buds, Pixel 2 XL, PIxel 2, Home Mini, Home, Home XL, Clips, Daydream View, Pixelbook (v.l.n.r)

Comment