Swift – Die eine Programmiersprache für „alles“ ?! – Teil1

tl;dr

  • Swift eignet sich bereits jetzt zur Entwicklung einer produktiven verteilten mobilen Anwendung (Client-App + Backend-Webservice)
  • Proof-of-Concept Beispiel: verteilte App mit Shared Code
  • Deployment des Webservices via Docker-Container
  • Große Vorteile für Developer, DevOps, CTOs, CIOs und die zentralen Stakeholder/Kunden
  • Update: links und libraries-Empfehlungen

Apples Swift und Open Source

Im Juli 2014 hat Apple der Öffentlichkeit die neue Programmiersprache Swift vorgestellt. Zunächst wurde auf den eigenen Plattformen die Software-Entwicklung mit dieser Sprache realisiert: von der kleinen Smartwatch appleWatch (watchOS), über die Set-Top-Box appleTV (tvOS), auf ihren mobilen Geräten iPhone/iPodTouch/iPad (iOS) bis hin zu ihren Desktop-Geräten MacPro/iMac/MacBookPro/… (OSX).

Vor etwa einem halben Jahr (Dezember 2015) ging Apple dazu über, Swift als Open-Source Projekt der Öffentlichkeit bereitzustellen. Apple war mit diesem Schritt derart entschlossen und überzeugt, dass sie die Vorteile von ihrer aktuellen Programmiersprache Swift -z.B. die Flexibilität und die Skalierbarkeit (von Command-Line-Tools über Software für ‚kleine‘ embedded IoT-Geräte bis hin zu Server-Systemen und Betriebssystemen), die maschinennahe performate Ausführung  der damit erstellten Software (kompilierter/nativer Binär-Code !), sowie die modernen Features und Sprachkonstrukte- der gesamten Developer/IT-Community bereitgestellt haben wollten. Das ausgesprochene Ziel Apples: Durch die verändernden Software/IT-Anforderungen heutiger Systeme und Anwendungen, die in die Jahre gekommene native Programmiersprache C (bzw. auch C++) als de-facto-Standard mittelfristig abzulösen. Ein sehr ehrgeiziges Ziel -wie man ruhig finden darf- das nur durch Offenlegung und die Beteiligung der großen Entwickler-Community überhaupt erst machbar sein kann.

Weiterlesen

Beacons Testlauf auf dem CC Day 2015

Beacons
Im Sommer 2013 wurden sie offiziell vorgestellt und so langsam kommt die ganze Sache auch ins Rollen. Die Rede ist von der Beacon Technologie. Beacons (Signalfeuer) sind kleine Bluetooth-Sender, welche an einem Ort angebracht werden können und in regelmäßigen Zeitintervallen ein Erkennungssignal aussenden. Dieses Signal kann dann von einem Beacon-fähigen Gerät wie einem Smartphone oder Tablet empfangen und in ortsabhängige Informationen umgewandelt werden. Die Anzahl an Anwendungsgebieten ist dabei grenzenlos. Meistens werden Beacons mit typischen Einsatzgebieten wie …

Weiterlesen

Galaxy Gear mit dem iPhone koppeln – möglich?

Die Galaxy Gear von Samsung ist eine Smartwatch, die neben „Classic Bluetooth“ auch „Bluetooth Low Energy“ unterstützt. Leider funktioniert die Uhr ausschließlich mit einer Hand voll Samsung eigenen Geräten.

Eine Kopplung mit dem iPhone wäre also eine echte Bereicherung und in Verbindung mit ANCS ergeben sich schöne Nutzungsmöglichkeiten. Wir haben uns daher ein paar Uhren besorgt und gleich begonnen Android Test Applikationen zu schreiben.

Weiterlesen

Warum ist das Thema „Mobile Computing“ eine Chefsache?

Wir befinden uns alle in einem grundlegenden technologischen Wandel. Der Personal Computer klassicher Prägung verliert seine dominierende Stellung, wenn es um die Nutzung digitaler Angebote, Medien und Dienste geht. Weiterlesen

Smartphones & Tablets – Wie kann man Bedenken ausräumen?

Vielfach werden bei der Diskussion in den Unternehmen über die konsequente Nutzung dieser neuen mobilen Gerätekategorien eher die Risiken thematisiert als die Chancen. Deshalb hier die fünf häufigsten Meinungen über Smartphones & Tablets die in unserer Praxis auftauchen: Weiterlesen

ANCS (Apple Notification Center Service)

Vereinfachte Anbindung von Smartwatches und anderen Bluetooth Gadgets an iOS und Android.

Das Apple Betriebssystem iOS bringt in der aktuellen Version 7 den Apple Notification Center Service (ANCS) mit sich. Dieser Service ermöglicht Bluetooth LE Geräten den Zugriff auf Benachrichtigungen die vom System erzeugt wurden.
Weiterlesen

iBeacons: Was steckt dahinter?

iBeacons sind gerade in aller Munde. Die ersten Ladengeschäfte von Apple wurden bereits ausgestattet http://www.ifun.de/apple-store-ibeacon-bluetooth-51548/ und auch in Deutschland beginnen die ersten großen Ketten, diese Technik einzusetzen.

Leider gibt es in den offiziellen Meldungen meist nur nette Bildchen von tollen Geschäften, die den geneigten Käufer auf potentielle Schnäppchen hinweisen sollen. Was wirklich hinter der Technik steckt und was damit alles möglich ist sagt dabei keiner.

Wir haben uns die Technik daher genauer angesehen und eigene Versuche mit selbst gebauter Hardware unternommen, um die Chancen und Möglichkeiten besser bewerten zu können.

Weiterlesen

Bluetooth 4.0 Low Energy und Android

Mit der Android Version 4.3 (Jelly Bean) wurde die Bluetooth API des Google Betriebssystem Android um Bluetooth 4.0 Low Energy erweitert. Leider ist Android-Gerät nicht gleich Android-Gerät, sodass bisher nur wenige Geräte wie das Nexus 4 und das neue Nexus 7 (2013) von der Erweiterung Gebrauch machen können.
Weiterlesen

Asynchrones Laden von Bildern in Listen – Lösungsansätze und Best Practices (Teil 2)

In meinem letzten Beitrag hatte ich bereits generelle Schwierigkeiten im Zusammenhang mit asynchronen Ladevorgängen in Listen dargestellt. Anhand eines einfachen Szenarios hatte ich die Komplexität dieses Use-Cases herausgearbeitet, ohne dabei zu sehr ins Detail zu gehen.

Diesen Artikel hingegen möchte ich in eine etwas technischere Richtung lenken – und damit meinem Versprechen nachkommen, einige Best-Practices und Kniffe Preiszugeben, die sich in unseren Projekten bewährt haben. Ich möchte aufzeigen, wie sich relativ einfach flüssig scrollende Listen implementieren lassen und einige hilfreiche Tools vorstellen, die einen dabei unterstützen können. Zwischen den Zeilen werde ich einige divergente Lösungsansätze ansprechen, die allgemein hin empfohlen werden, jedoch mit nicht ganz unerheblichen Problemen behaftet sind.

Weiterlesen

Asynchrones Laden von Bildern in Listen – und wieso dies alles andere als trivial ist (Teil 1)

Es gibt bei der Entwicklung von Android Apps wohl kaum ein zweites Szenario, das so häufig Anwendung findet, so trivial zu sein scheint – zeitgleich jedoch so unglaublich herausfordernd zu implementieren ist, wie das effiziente und asynchrone Laden von Bildern in eine ListView. Unzählige Threads auf Stackoverflow, sowie ein unlängst von Google veröffentlichter Ratgeber über Best-Practices für den Umgang mit Bitmaps, unterstreichen diese Aussage. Gründe hierfür sind zum einen, dass das Android SDK zu diesem Zweck kaum vorgefertigte Hilfsklassen bereitstellt, die einem mit vertretbarem Entwicklungsaufwand eine brauchbare Lösung ermöglichen. Aber auch einige architekturelle Gegebenheiten, wie beispielsweise die grundlegende Funktionsweise eines Adapters, oder das Single-Thread-Modell (hier insbesondere die Tatsache, dass Views nur aus dem Main-Thread heraus manipuliert werden dürfen) sind einer einfachen Lösung wenig förderlich. Dabei könnte für den Entwickler doch alles so einfach sein, hätte er nur eine Methode setImageFromWeb(URI) – oder nicht? In diesem Artikel möchte ich darauf eingehen, wieso uns diese brillante Methode bislang vorenthalten wurde. Ich werde den Versuch unternehmen, die Komplexität des Problems etwas zu veranschaulichen und Gründe nennen, wieso das asynchrone Laden von Bildern in eine ListView alles andere als trivial ist. Weiterlesen