Swift 3 - The Good, the Bad and the Ugly

Swift 3 - The Good, the Bad and the Ugly

Mit dem Release von Xcode 8.3 und Swift 3.1 schneidet Apple alte Zöpfe ab und verweigert Swift 2-Anwendungen jeglichen Support. Aus diesem Grund beschäftigen wir uns aktuell intensiv mit der Migration bestehender Apps und halten unsere Erfahrungen mit der aktuellen Version der Apple-eigenen Programmiersprache fest:

Neuerungen

  • Swift Package Manager erlaubt das Teilen von Code über mehrere Projekte ohne Cocoapods oder Carthage
  • Neue Code Konstanten (Float.pi, CGFloat.pi)

Änderungen

  • Funktionsparameter sind Konstanten
  • Alle Funktionsparameter (auch der erste) werden nun benannt: array.removeAtIndex() wird zu array.remove(at:)
  • Inkrementoperatoren ++ und -- wurden komplett durch += und -= abgelöst
  • Redundante Bezeichnungen werden gestutzt: stringByAppendingString wird zu appending, NSBundle.mainBundle() wird zu Bundle.main
  • der NS-Präfix verabschiedet sich und damit eine der letzten Überbleibsel von NeXTStep, einem Betriebssystem, das unter Steve Jobs in den 80er Jahren entwickelt worden war: NSBundle wird zu Bundle, NSFileManager wird zu FileManager
  • Grand Central Dispatch mit Swift-Syntax: dispatch_async(dispatch_queue_create("Queue", nil) wird zu DispatchQueue(label: "Queue").async
  • lowerCamelCasing statt UpperCamelCasing bei enums und const: UIStatusBarStyle.LightContent wird zu UIStatusBarStyle.lightContent

Probleme

  • Das automatische Konvertieren von Swift 2 nach 3 funktioniert nur bedingt und ignoriert so manche Konvention
  • Das Core Framework bietet nach wie vor zahllose obsolete Datentypen an, die händisch konvertiert werden müssen
 
Bei all den Deprecations fühlt sich sogar Guardlet Johansson wie eine leere Hülle

Bei all den Deprecations fühlt sich sogar Guardlet Johansson wie eine leere Hülle

 

Der Aufwand ist dieses Mal erheblich größer als noch von Swift 1 auf 2, allerdings halten wir den Großteil der Änderungen für sinnvoll.
Und dann wartet mit Swift 4 ja schon das nächste große Update um die Ecke.

Android Wear 2.0 verzögert sich erneut

Android Wear 2.0 verzögert sich erneut

Eigentlich wird Android Wear 2.0 bereits seit Februar auf die Geräte einiger weniger Hersteller verteilt. Nun sorgt ein Fehler im Betriebssystem jedoch für eine weitere Verzögerung. Google lässt den Zeitraum für das finale Update noch offen:

"We have started rolling out the Android Wear 2.0 update to Fossil Q Founder, Casio Smart Outdoor Watch WSD-F10 and Tag Heuer Connected. For other devices, the update is currently being delayed due to a bug found in final testing. We will push the update to the remaining devices as soon as the issue is resolved." - 9to5google.com

Android Wear 2.0 erlaubt eine direkte Netzwerkverbindung der Smartwatches ohne den Umweg über ein gekoppeltes Smartphone. Hierfür wird eine angepasste Version des Google Play Stores auf den Uhren vorinstalliert, um das Betriebssystem möglichst autark zu gestalten. Der Play Store listet dann ausschließlich solche Apps, welche für Android Wear 2.0 angepasst wurden. Weiters werden der Google Assistant und zusätzliche Eingabemöglichkeiten vorinstalliert, u.a. eine Bildschirmtastatur sowie Handschrifterkennung mittels optischer Zeichenerkennung (OCR). Komplikationen können nun unabhängig vom Watchface angezeigt und über dieses gelegt werden. Und nicht zuletzt findet auch das von Smartphone und Web bekannte Material Design Einzug auf die Uhren.

Wir bleiben gespannt auf Android Wear 2.0 und hoffen, dass diese Generalüberholung die Basis für einen gesunden Konkurrenzkampf auf dem Markt der Smartwatches bildet, welcher aktuell stark von Apple dominiert wird.

Android O: Erste Developer Preview

Android O: Erste Developer Preview

Es scheint, als würde Android N schneller in Vergessenheit geraten als man "Nutella" sagen kann, denn während dessen Distributionsrate noch bei unter drei Prozent liegt (sieben Monate nach Release), wurde nun sein Nachfolger angekündigt.

Android O präsentiert sich erstaunlich früh und folgt damit einem Credo, das Google im letzten Jahr eingeführt hat und hoffentlich auch weiterhin fortführen wird. Die Developer Preview wird seit dem 21. März 2017 verteilt und gibt einen ersten Einblick auf kommende Neuerungen. In erster Linie richtet sich diese Version an Entwickler und ändert dementsprechend viel unter der Haube. Die kompletten Changenotes finden sich in der offiziellen Dokumentation.

Schriftarten sind ab sofort vollwertige Ressourcen, die - analog zu String, Drawable oder Style - in XML Layouts verwendet werden können. Das neue Autofill Framework richtet sich an Passwortmanager, welche aktuell noch als Bedienungshilfe im Betriebssystem laufen. Adaptive Icons gehen einen Schritt weiter in Richtung Responsive Design und erlauben es, Icons abhängig vom Zielgerät zu maskieren.
Mit den Backgrund limits führt man fort, was unter Android 6 mit Doze und App Standby begonnen wurde: Akkulaufzeit erhöhen und Performance verbessern. Hierfür müssen Apps angepasst werden, die Background Services nutzen und deren Target auf API 26 oder höher gesetzt ist.

Picture in Picture (PIP) ist eines von zwei Features, die sich direkt an Endnutzer richten. PIP ist eine spezielle Form des aus Android N bekannten Multi Window. Diese erlaubt das Übereinanderlegen zweier Apps, z. B. um ein Overlay mit Videoplayback darzustellen, wie man es bereits von Android TV oder aus der YouTube-App kennt.
Des weiteren fallen uns die Notification Channels auf, welche eine Kategorisierung von Benachrichtigungen erlauben. Entwickler legen hierbei für jede Benachrichtigung fest, in welchem Kanal sie gesendet wird. Folgende Einstellungen können dann vom Nutzer einzeln für jeden Kanal getroffen werden: Ton, Vibration, LED-Signal, auf dem Sperrbildschirm anzeigen, "Nicht stören"-Modus überschreiben. Dies sollte das Leben vieler erleichtern, deren Partner Fans von mobilen Aufbauspielen sind. Deren Entwickler bieten nämlich nur allzu selten eine Möglichkeit, solche Störgeräusche zu minimieren, ohne das komplette Gerät stumm zu schalten.

Dies sind nur einige der Neuerungen von Android O und wir sind gespannt, was sich bis zum finalen Release noch ändern wird. Dabei hoffen wir stets auf eine weitreichende Integration in die Support Library, damit die neuen Features ohne Verzögerung auf so viele Geräte wie möglich ausgerollt werden können.
Genauso neugierig sind wir auf den Alias der neuen Betriebssystemversion. Welche Süßigkeit wird es diesmal? Oreo? Oatmeal Cookie? Ontbijtkoek? Es bleibt spannend.

Notifications Channels unter Android O

Notifications Channels unter Android O

x-game three - und täglich grüßt das Murmelspiel

x-game three - und täglich grüßt das Murmelspiel

x-game three komplettiert unsere Match-3-Spieletrilogie, die branchenfremden Unternehmen einen schnellen und kostengünstigen Einstieg in das Thema Gamification gewährt. 

x-game three ist eine zuckersüße Variante der beliebten Bubble-Shooter-Spielmechanik und damit das perfekte Spiel für zwischendurch. Diesmal werden runde Spielsteine aufs Spielfeld geschossen, um Ketten aus gleichfarbigen Kugeln zu bilden und abzuräumen. Messe Dich mit Spielern aus der ganzen Welt im Leaderboard und teile Deine Erfahrung mit Freunden über soziale Netzwerke. Begleite uns auf einer Reise durch mehr als fünfzig herausfordernde Level und erhasche einen Blick hinter die Kulissen der mobilen App-Entwicklung.

Zu Gast beim Google Chrome Team

Zu Gast beim Google Chrome Team

Das MunichJS Meetup gastierte gestern Abend bei Google München zu den Themen:

Das Google V8-Engine Team erläuterte seinen Ansatz der Performancemessung und damit verbundene Probleme. Eine interessante Anekdote war hierbei, dass noch keine reale ECMAScript2015-Anwendung in-the-wild existiert - ein klassisches Henne-Ei-Problem. Im persönlichen Gespräch mit dem V8-Engine-Team debatierte man über Benchmarks im NodeJS- und Mobile-Hybrid-Szenario und den schmalen Grat zwischen Performance und Akkulaufzeit. Danach demonstrierte man eine Workflow-Engine, welche Eingaben kombiniert und diese in verschiedenartige Ausgaben transformiert - zum Beispiel in die Logos diverser JetBrains-Produkte. Der abschließende Vortrag hatte zum Thema, mit mehreren JavaScript-Workern parallel einen geteilten Speicherbereich zu bearbeiten und wie man diese Atomics absichert.

Der Andrang zu Veranstaltung war groß: 70 Leute standen auf der Gästeliste und über 200 auf der Warteliste.

They see us rodeln, they hatin'

They see us rodeln, they hatin'

Freitag Abend, achtzehn Uhr, zieht man sich Skijacken an.
Es geht fünfzig Kilometer weiter zur Kala Alm und ihrem Hang.
Der Aufstieg ist weder schwer noch beschwerlich,
die Gespräche sind lustig - aber seien wir mal ehrlich -
vom Nerdhumor fangen wir besser gar nicht erst an.

Nach einer Stunde kehrt in besagter Alm man ein,
das Schönramer fließt - und Alkoholfreies natürlich auch, denn bei uns trinkt keiner allein -
bevor man sich an das eigentliche Ziel, den Abstieg, macht
und das aber nicht zu Fuß, mit Ski oder Snowboard, nein,
es wird geritten, ohne Protektoren und zu Schlitten.

Die Geschwindigkeit ist hoch, die Streckenbeleuchtung nicht die beste,
aber Spaß macht es großen und darauf kommt es an.
Wer zu langsam ist, bleibt womöglich im Dunkeln,
denn nur Zwei von uns Sechs dachten daran,
mit Stirnlampen über den Weg voraus zu funkeln.

Nach und nach treffen die Kollegen am Fuße des Schneebergs ein,
mancher ging unterwegs verloren, aber kameradschaftlich, wie es scheint,
haben wir uns lauthals darüber geärgert, damit wir leicht zu orten sind,
denn auf dem Rückweg dort zum Abhang hin,
they see us rodeln, they hatin'.

Ingwer Shots und Apfelkerne

Ingwer Shots und Apfelkerne

Nachdem uns die Apfelkerne bereits im Winter mit Plätzchen versorgt haben, brachten sie uns diesmal eine Flasche mit einer ganz besonderen Mischung vorbei: Ingwer und Zitrone bilden die wohl gesündesten (alkoholfreien) Shots der Welt - genau das Richtige für unsere koffeingetränken Entwicklerköpfe.

Wir bedanken uns herzlich und kippen noch ein paar Stamperl - Prost!

App-Entwicklung für Agenturen

App-Entwicklung für Agenturen

Ihr seid eine Agentur, egal ob Werbe-, Kreativ- oder Full-Service, und seid gesettelt in Eurem Revier? Am Rande zur App-Technik jedoch fehlt das gewisse technische Etwas? Hier setzen wir an und unterstützen Euch mit jahrelanger Erfahrung, die durch tägliche Programmierung aufgebaut worden ist.

Jeder macht genau das, was er am besten kann.

Wir sehen uns nicht als Konkurrenz zu Euch, sondern als Partner. Wir klinken uns nahtlos in Euer Agentur-Team ein, beraten Euch und übernehmen in enger Abstimmung die technische Umsetzung und Verantwortung bis hin in die App-Stores. Bei größeren Herausforderungen sind wir in der Lage, ein Gesamtsystem inkl. Backend, Schnittstellen und Servern sicher und skalierbar aufzubauen und betreiben zu können.

Wir unterstützen aus und für ganz Deutschland, aus Rosenheim in der Nähe von München. Wir haben keine versteckte Hinterzimmer-Mannschaft im Nearshoring, kein Offshoring und keine Sprachbarrieren. Genießt den direkten Draht und die nahtlose Integration – unabdingbar bei komplexeren Themen. 

Hier erfahrt Ihr mehr - oder nehmt direkt Kontakt zu uns auf.

x-game two - ein Spiel, das verbindet

x-game two - ein Spiel, das verbindet

 

Nach unserem ersten Paukenschlag in Sachen Gamification - x-game one - geht nun unser zweites Spiel an den Start: x-game two ist eine Abwandlung des bekannten Connect-Three-Spielprinzips, in dem gleichartige Spielsteine zu möglichst langen Ketten verbunden werden. Wieder gilt es, Highscores in insgesamt hundert Levels zu knacken und Euch mit Euren Freunden im Leaderboard zu messen. In insgesamt 100 herausfordernden Levels erhascht der Nutzer zusätzlich einen Blick hinter die Kulissen der mobilen App-Entwicklung.

Genau wie der Vorgänger dient dieses Spiel als Kostprobe für den Bereich Gamification und soll branchenfremden Unternehmen einen schnellen und kostengünstigen Zugang zur Spielebranche gewähren. 

x-game two ist ab sofort kostenlos für iOS und Android erhältlich. 

Feuer und Flamme - nicht nur für Software!

Feuer und Flamme - nicht nur für Software!

Wir sind nicht nur Entwickler!

Der Christopher zum Beispiel verbringt seine Freizeit unter anderem mit der Kunst der Feuerjonglage. Seine Erfahrung stellte er bereits einige Male zur Schau - zuletzt auf der Weihnachtsfeier. Unsere Impressionen seht Ihr unten in der Bildergalerie.

Weihnachten über Brannenburg

Weihnachten über Brannenburg

Alle Jahre wieder steht Weihnachten vor der Tür! Gute Tradition ist es, in geselliger Runde das Geschäftsjahr Revue passieren zu lassen und sich fernab vom Schreibtisch in entspannter Atmosphäre zu treffen. Nach der Rosenheimer "essbar" zum letzten Weihnachtsfest verschlug es uns diesmal in rustikalere Gefilde nach Brannenburg.

Zu später Stunde fanden sich unsere 21 KollegInnen und ihre Begleitungen am Fuße des Sulzbergs ein und wanderten im Fackelschein hinauf zur Wallfahrtskirche Schwarzlack. Nach einer guten halben Stunde und etlichen Höhenmetern erreichten wir unser Ziel und konnten das wunderschöne Brannenburger Panorama unter einem klaren vorwinterlichen Nachthimmel bewundern. Einige Meter weiter wartete ein kleines Lagerfeuer auf uns, um bei Glühwein und Punsch die frostigen Temperaturen zu vergessen und uns dabei an das zurückliegende Jahr zu erinnern:

 

"2016 war vor allem ein Jahr der Investitionen und der Wagnisse: In Dresden haben wir unsere erste Zweigstelle eröffnet, um von dort aus neue Kunden kennen zu lernen und Aufträge zu gewinnen. Drei neue Projekte sind entstanden, unter ihnen unser erstes Spiel, das x-game one. Weitere befinden sich noch in der Entwicklung. Für die Adler Mannheim haben wir eine erste Watch-App veröffentlicht, welche alle Neuigkeiten der Eishockey-Mannschaft direkt aufs Handgelenk wirft..."

Im Anschluss kehrten wir ins gemütliche Berggasthaus Schwarzlack ein und liessen uns die leckeren Speisen und Getränke munden. Hierbei wurde auch die Tradition des Wichtelns beibehalten, bei der man den Kollegen allerlei Schabernack, kleine Perlen und große Ideen zukommen lässt. Wie immer blieben Inhalt und Ideengeber der Geschenke geheim, um die Spannung so unerträglich wie möglich zu gestalten. Einige kennen bis heute die Identität ihres Wichtels nicht! (Selfiestick, woher kommst Du?)

So ging der x-root-Weihnachtsabend bei lockeren Gesprächen langsam seinem Ende entgegen, bis schließlich gegen 2 Uhr die letzten Gäste des Abends ihren Weg zurück ins Tal fanden. Wir haben gelacht, viel geredet und uns köstlich amüsiert. Der Aufstieg hat sich auf jeden Fall gelohnt und wir alle freuen uns nun auf ein fröhliches und besinnliches Weihnachtsfest.

Nachtrag:
Mittlerweile hat sich auch der Wichtel des Autors gefunden. Wie das Schicksal es wollte, war es der Empfänger des Selfesticks selbst, der den Wichtel zu dessen Kauf inspirierte. Karma lässt grüßen.

HolidayCheck Coding Dojo

HolidayCheck Coding Dojo

HolidayCheck luden zum Meetup in München und wir waren dabei. Der Abend stand ganz unter dem Motto "Functional JavaScript". Hierzu wurden in kleiner Runde sanctuary-js sowie Elm vorgestellt.

sanctuary-js zeigt, wie man, nach den Vorbildern Haskell und Purescript, funktional in JavaScript programmieren kann. Sehr beeindruckend war die integrierte Runtime-Typechecking-Engine.

Elm beeindruckte mit einem intelligenten Compiler, der fast jeden potenziellen Bug findet und anschließend auf eine mögliche Lösung hinweist. Das Compiler-driven-development begeisterte die Teilnehmer, weil Elm nicht nur JavaScript abdeckt, sondern auch CSS.

Alles in allem war der Abend sehr inspirierend und hat uns durchaus dazu animiert, selbst Hand an diese Technologien anzulegen.