Archive for the ‘Mobile Programming’ Category

Macoun 2016

Sunday, October 2nd, 2016

Prima Talks, nette, interessante Gespräche und wieder einmal eine sehr wohnzimmernahe Atmosphäre. Prima!

 
Es fehlt mir eigentlich nur noch das spezielle Macoun-Shirt des jeweiligen Jahres (als collector’s item). 😉

WWDC 2016

Monday, June 13th, 2016




Amazing. 😉

Ein wenig Statistik

Thursday, March 10th, 2016

Auch wenn das Fünfjährige schon etwa her ist, hier doch nun ein paar Statistikdaten zu meiner kleinen XING-Gruppe Xcode – Programmieren für Mac OS und iOS. Damals hieß OS X noch Mac OS. Die Bezeichnung Mac (ehemals Macintosh) hat sich der nette Lifestyle-Konzern von nebenan dann geklemmt.
  

Über diese Gruppe

Gegründet:      03.11.2010
Mitglieder:       1632
Sichtbarkeit:    offen
Beiträge:         331
Kommentare:  261

Na dann bin ich mal auf die nächsten 5 Jahre gespannt. Die Anzahl der UNIX-Systeme hat Apple ja schon verdoppelt und ebenso die relevanten Sprachen. Nur Xcode ist nach wie vor DIE relevante IDE auf dem Mac für den Apple-Kosmos geblieben!

In diesem Sinne: Happy Xcoding!

😉

Macoun 2015

Thursday, October 29th, 2015

Das Klassentreffen der 474 Apple-Entwicklernerds aus 9 Ländern.

IMG_0316.JPG

Die Macoun ist im deutschsprachigen Raum einmalig. Vielleicht sogar im europäischen Vergleich. Hier trafen sich am Wochenende 24./25.10.15 Entwickler, Nerds und Freunde des Apfels zum 8. Mal in Frankfurt am Mainufer in der dortigen Jugendherberge, um an zwei Tagen mit umfangreichen Talks, Kaffee und natürlich legendären Kirschkuchen ein Stelldichein unter Freunden vegetarischer UNIX-Systeme zu zelebrieren.

Es hat nicht nur den Anschein eines jährlichen Klassentreffens, es ist wahrlich so, dass sich viele Entwickler seit Jahren kennen und zum Termin in Frankfurt gerne und zahlreich zusammenkommen. Dass die Preisgestaltung des Macoun-Teams um Chris Hauser und Thomas Biedorf sehr moderat und äußerst fair ist (so stieg er Preis des Early Bird Tickets für Einzelpersonen nur um einen Euro auf 79 Euro), zeigt sich schnell, wenn man hier etwa Preise der JAX oder WJAX heranzieht. Die Macoun ist einfach unschlagbar günstig bei durchaus guten bis sehr guten Vorträgen und einem (noch) familiären Charme.

IMG_0287.JPG
IMG_9934.JPG

Chris Hauser und Thomas Biedorf führten wieder durch die Keynote. Dabei durfte ein wenig Statistik nicht fehlen, die mal sinnenhaft (Teilnehmer aus Ländern) und mal nur der Unterhaltung diente, etwa die 1864 getrunkenen Kaffeebecher der letztjährigen Macoun. Dass die Veranstaltung erwachsen und etabliert ist, beweisen die 130 Vorträge und 60 Sprecher bisher. Dieses Jahr gab es 44 Sprecheranmeldungen, wovon es 24 auf das Podium schafften. Die Veranstalter bedauerten, dass keine Frau dieses Jahr unter dem Sprechern ist und appellierten an eben jene und junge Entwickler, die Chance zu nutzten, damit nicht nur die alten, etablierten (“die alten Säcke”) Vorträge halten.

IMG_9935.JPG

Thomas Biedorf erläuterte noch das Problem des Payments beim Kartenkauf und die ungünstigen Auswirkungen auf die Macoun GbR, die zeitweilig deutliche Außenstände deswegen hatte.

Ein Novum in 8 Jahren Macoun-Geschichte – freies WiFi in der gesamten Jugendherberge – wurde abschließend noch erwähnt, ehe die einzelnen Channel mit den Talks starteten.

Wer jetzt erwartetet hätte, etwa vorab am Programm orientiert, dass viele, vielleicht sogar sehr viel Beispiele in Swift vorgetragen würden, der sah sich getäuscht. Die Tendenzen, die der TIOBE-Index oder RedMonk aufzeigen, spiegeln scheinbar nicht ganz die Wirklichkeit der Macoun-Sprecher wider. Klar es gab die Swift-Talks wie „Swift Reflexion für Value Types“ oder „Funktional mit Swift entwickeln“, aber viel der anderen Vorträge nutzten als Sprache eben doch noch Objective-C.

Die Armbanduhr

IMG_0293.JPG

Ortwin Gentz stellte mit “Entwickeln für die Uhr” die beiden gebräuchlichsten Smart Watches in Apples Kosmos vor: Natürlich der Apple eigene Handschmeichler und die Pebble. Neben den betriebswirtschaftlichen Motivations-faktoren für diese Geräte zu entwickeln, ist es sicher auch bei Apples Uhr die Notwendigkeit im „Uhrenstore“ auch vertreten zu sein. Die Pebble ist deutlich günstiger zu haben, so dass hier der Spielfaktor sicher auch eine Rolle spielen kann. Wenn auch bei der Pebble keine Entwicklerlizenzen fällig werden, so ist es mit der IDE bei dieser Smart Watch nicht so komfortabel wie bei Apple. Vom reinen Texteditor und Bauen im Terminal über Pebbleex in Xcode bis zur “Webentwicklung” mit Cloud Pebble kann hier alles gewählt werden. Wobei, das ist anzumerken, die Pebble im guten alten C programmiert wird.

IMG_0290.JPG

Bleibt festzuhalten: Die beiden Smart Watches bedienen unterschiedliche Zielgruppen, so dass beide Plattformen sinnvoll und ihre Berechtigung haben. Aber auch hier ist die (fast) perfekte Integration bei Apple deutlich besser.

To sync or not to sync?

Dem durchaus lästigen Thema Synchronisieren stellten sich Frank Illenberger und Kai Brüning. Nachdem sie die theoretische Herleitung mit den verschiedenen Arten, wie man Synchronisieren kann, dargelegt hatten, brachten sie entsprechende Beispiele, die mal mehr oder weniger gut funktionierten.

Schlagworte wie konsistentes Mergen, Intentionserhaltung oder offline Kollaboration fielen in diesem Zusammenhang. Alleine die Fragegestellung, wie vorgegangen werden soll, wenn an einem in Kollaboration bearbeiteten Dokument Änderungen zurückgenommen werden (Apfel-Z-Modell), ist nicht ad hoch zu beantworten. Hier taten die netten Folien mit dem Kirschkuchen, seinem sich ändernden (geplanten) Gewicht und weiteren Macoun-Parametern einiges, um das doch sehr trockene Thema interessant rüber zu bringen.

Das Fazit der beiden: Es gibt keine allgemeine Sync-Lösung. Hier bleibt der Rat, nach programmatischen Lösungen zu suchen, ggfls. die Businesslogik anzupassen, auf unique Contrains zu verzichten und das Ganze gestaltet sich eher schwer und langwierig, als dass schnelle eine Lösung erzielt wird.

Pimp my App

Wie man mit Core Animation richtig nette Animationen für die bisher vielleicht eher spröde App erstellen kann, zeigte Thomas Wolters in seinem Talk. Die vorgestellten Codesegmente waren allesamt in Objective-C gehalten und wurden im Simulator ausgeführt. Die Transitions wurden entsprechende überarbeitet, so dass bei bei Falscheingabe beim Login der ganze Button Feuer fing und abbrannte. Möglich machte das der Einsatz von SVG mit entsprechendem Framework.

IMG_0292.JPG

Der Schlüssel zum Glück

Klaus M. Rodewig stellte keine Techniken für glückliche Apps vor, sondern Basics, wie Glück entstehen kann, da Apps sicher sind. In sofern ist dieser Vortrag essentiell wichtig bzw. das dargelegte Handwerkszeug für jeden Entwickler.

IMG_0298.JPG

Zunächst bedauerte auch er, dass keine Vorträge von Frauen dieses Jahr auf der Macoun zu hören seien und ermunterte ebenso dazu, dieses doch nächstes Jahr einmal zu probieren.

Da er nur Objective-C-Beispiele benutzte, kam dann auch die entsprechende Swift-Bashing-Folie.

IMG_0295-0.jpg

Am echten Beispiel einer auditierten Firmen-App zeigte er die Tücken und Fallstricke, wenn unbedarft vorgegangen wird. Dass SHA-1 und MD5 als gebrochen und damit unsicher gelten (Rainbowtables), ist sicher weithin bekannt. Dass sich aber durch Salten deutlich mehr Sicherheit erzeugen lassen, da dann gegebenenfalls die ersten Bytes des Cipher nicht unverschlüsselt bleiben (kein entsprechendes Padding), war schon in der Demo sehr interessant zu sehen. Auch Keychain, NSFileProtection, TLS Certificate Pinning und TLS 1.2 wurden erklärt und mit Inhalt gefüllt. Das Ganze dann natürlich immer mit praktischen Ausflügen in Xcode.

Auch der Verweis auf BSI TR-02102 Kryptographische Verfahren: Empfehlungen und Schlüssellängen fehlte nicht.

Alles Retro

IMG_0294.JPG

IMG_0308.JPG

In der 30-Jahre-Macintosh-Ausstellung des Verein Digital Retro Park, die auch in diesem Jahr wieder mit zahlreichen nostalgischen Unikaten aus dem erweiterten Apple-Universum bestaunter war, konnte man nicht nur nette alte Hardware bewundern, sondern sein Spielglück auch an einem alten Atari-Spielautomaten testen.

IMG_5873.JPG

Wer sich etwas die NeXT Cube genauer ansah, der konnte neben der User Experience des UI klar erkennen, dass viel von NeXT in OS X eingeflossen ist. Ein kurzer Blick in das About des Workspace Managers zeigt, dass auch Bertrand Serlet schon zu NeXT-Zeiten dabei war.

IMG_0305.JPG

IMG_0309.JPG

IMG_0313.JPG

IMG_0311.JPG

IMG_0306.JPG

Party by Macoun und DREIMANNZELT

Die schon legendäre Macoun-Party fand wieder im benachbarten „Lokalbahnhof“ statt. Die Bedienungen hatte – gerade anfangs – mächtig viel zu tun. Die Gunst der Zeitumstellung und der Umstand, dass am Sonntag die Konferenz erst um 11:00 Uhr begann, ließen Raum für viele Gespräche (und das ein oder andere Bier).

IMG_0300.JPG

IMG_9932.JPG

IMG_0303.JPG

Im Gegensatz zum letzten Jahr war der Macoun-Bereich mit Obergeschoß und Zelt draußen etwas eng, so dass wohl nicht alle Platz fanden. In 2014 half natürlich der Kalender (die Macoun war im September) und somit das sommerliche Wetter der Draußenparty enorm, das Ganze gut zu verteilen.

Ich glotz TV!

IMG_0302.JPG

Am Sonntagvormittag stellte Alexander von Below nicht nur das Apple TV 4 (oder auch schlicht „the new Apple TV“ im Apple-Speak) vor, dass sicher jeder schon gesehen hat (und sei es nur im Apple-Konferenzvideo). Überraschend war die „Ausbeute“ auf die Frage, wie viele denn nun der anwesenden Entwickler ein Gerät „gewonnen“ hätten (die obligatorischen 1 US-$). Es waren ca. 30 – 40 Anwesende.

Als Aufhänger hatte er ein Job’s Zitat zum Apple TV (Fernseher gemeint) aus der offiziellen Isaacson-Biografie genommen, in dem Jobs sagte, das Thema Fernseher vergeigt zu haben. Zusammen mit der Parallele des Intel-Mac-Prototypen (Transition Kit aus 2005) und dem Umstand, dass die “verlosten” Apple TVs die ersten Vorabmodelle seit einer Dekade sein, stelle er die Frage in den Raum, ob das nicht etwas ganz großes sei?

Für ganz groß sind aber einige Unannehmlichkeiten dabei – etwa kein WebKit und oAuth so nicht möglich (wobei es mit Alternativen mit Credentials oder 3-Party-Devices gibt), keine Notifikationen. Die Einschränkungen wie nur 200 MB Cache, kein Persistieren (nur per CloudKit). Wer jetzt in Hifi-Gedanken an den fehlenden TOSlink denkt, wird sicher auch nicht wirklich glücklich sein.

Auch die Ablehnungen von App-Einreichungen, sei im Moment durch Apple absurd (O-Ton Alexander von Below), da etwa die Human Interface Guidelines vorschreiben, dass ein Pause-Button unterstützt werden müsse. Eine entsprechende App, die das tat, wurde aus eben diesem Grund abgelehnt.

Alexander von Below hat seine Demos dann in Swift gehalten, aber er beließ es nicht alleine beim Simulator. Das Live-Coding eines recht kruden Pong-Spiels (umgesetzt mit SpriteKit) und Ausführung dieses direkt auf dem Apple TV, war schon sehr interessant. Zumal das Publikum manche Typos erst nach Compilerfehler korrigierend aus dem Auditorium einwarfen, doch Alexander von Below – ganz routiniert – ließ sich davon nicht beirren.

Siri sei für viele Spiele keine Alternative, ist im Moment auch nicht wirklich vorstellbar, wie man Siri zur Steuerung eines Action-Games einbinden soll. Da aber Apples neue Siri-Fernbedienung gleichzeitig auch ein Gamepad ist, wurde dieses (und ein „echter“ Game Controller auch) programmatisch angesprochen, um Pong zu steuern.

Auch wenn eingangs klargestellt wurde, dass es keine WebKit-Unterstützung gibt, so stehen doch folgendes zur Verfügung: TVMLKit Framework, TVML und TVJS Framework. Bei letzterem ist die App nur ein Launcher für das JavaScript auf dem Server.

Drei Variationen über Webviews

Clemens Wagner zeigte Möglichkeiten, zu Webviews, um in Apps bestehende Webseiten anzeigen zu lassen – und das durchaus auch in Apps. Das kann sinnvoll sein, wenn bestehende Inhalte ohne viel Aufwand dargestellt werden sollen, es entsprechen einfach und bildet dazu bestehende Prozesse gut ab. Die oft beschworene Plattformunabhängigkeit ist ebenso gegeben.

Aktuell gibt es 3 Varianten:

UIWebKit -> ab iOS 2 (iPhoneOS 2)
WKWebKit -> ab iOS 8
SFSafariViewController -> ab iOS 9

IMG_0317.JPG

Bei der letzten Variante SFSafariViewController handelt es sich um die Möglichkeit, schnell in Apps Webseiten anzeigen zu können. Etwa in Mail in eine Webseite gesprungen (und die Navigation oben links „zurück zu Mail“). UIWebKit hat im Moment noch die Abgrenzung zu WKWebKit, dass Protokolle (also etwa HTTPS, FTP) genutzt werden können.

Wie viele Sprecher waren die Demos von Clemens Wagner in Objective-C gehalten.

IMG_0351.JPG

Für die drei Varianten war eine Demo-App als Mini-Wikipedia geschrieben worden, um zu zeigen, wie entsprechend die HTML-Seite gepimpt werden kann, damit sie mehr nach App aussieht.

Die Kunst bestand nun darin, das Erzeugen der Website erst zu verhindern, so dass das Markup entsprechen geändert werden konnte (mehr App-like gestalten) und dann an die Webview geben.

Wir coden uns unsere VR

Orculus Rift et al sind in aller Munde. 3D ist trendig und die Macoun wäre nicht Macoun, wenn nicht hier auch ein wenig Anregung käme. Diese Anregung und Kurzweile verschaffte Matthias Krauß den Zuhörern. Zunächst gab es etwas Theorie zur stereoskopischen 3D-Bilddarstellung, die aber mit netten Folien untermalt wurden.

IMG_0315.JPG

Da Cardbords mit ca. 3 US-$ so angenehm günstig sind, sind sie für eigene VR-Experimente gut geeignet. Allerdings gibt es auch einige Fallstricke, wie etwa das farbliche Ausfransen von Objekten am Rand, die Kissenverzerrungen, etc. Da aber fast alle Plastiklinsen sehr ähnlich sind, gibt es hier schon gute bekannte Parameter.

Von Grund auf in mehren Micro-Sprint näherte sich Matthias Krauß einem durchaus annehmbaren Ergebnis – gemessen an der Kürze der Vortragszeit.

Dass das ganze Thema spannend ist, zeigten die sich im Anschluß an den Vortrag ergebenden ad hoc „Einzelgespräche“.

Prototypisch

Marco Köppel und Marius Bulla zeigten in ihrem Vortag, warum Prototypen in der Entwicklung (egal ob Hard- oder Software) ihre Berechnungen haben. Die beiden hatten eine recht lange Herleitung, mit den verschiedenen Arten von Prototypen, ihrem „7 Phasen der Prototypen“, das sich sehr am Agilen orientiert.

Ihr Prototyp, eine Werbeeinheit (an ein reales Projekt aus dem Automobilbereich angelehnt), die per BLE und einer iPhone App die Möglichkeiten der erweiterten Papierbroschüre zeigten, wurde mit Beifall aufgenommen, da es zunächst nicht funktionierte, aber mit viel verbalem Einsatz und entsprechenden Überprüfen dann doch noch an den Start gebracht werden konnte.
Der Verweis auf Cocopods fehlte natürlich nicht.

IMG_0323.JPG

IMG_0319.JPG

IMG_0322.JPG

Fazit

Die Macoun ist lange erwachsen, die Macoun ist ein Muß für jeden, der im Apple-Kosmos entwickelt und meint, an einem Wochenende Neues kennen und ausprobieren zu wollen, der eventuell auch Vor-Ort-Expertenrat im Rahmen der Werkstatt (hier geht es analog der Labs der WWDC um echte Problemstellungen und Lösungen hierfür) erhalten möchte und der vielleicht ein wenig Netzwerken (oder auch nur Wiedersehen) betreiben möchte.

IMG_0324.JPG

Es gibt einige Konferenzen zur iOS und OS X Programmierung, aber keine ist so wie die Macoun in Deutschland: Nett, spannend und doch so familiär. Sie gleich als kleine WWDC zu bezeichnen, wie das Christian Schmitz das tut, ist wohl (noch) etwas zu viel gesagt. Auf jeden Fall, und das steht fest, ist die Macoun 2016 im Kalender vorzumerken!

Apps World

Wednesday, April 22nd, 2015

Auf dem Weg zur Apps World Berlin.

Der Hauptbahnhof war relativ leer und recht gelassen, ein Fernsehteam des NDR hetzte durch die Reihen und ein Arbeiter fuhr mit einer Ameise durch die Bahnhofshalle – ein Unterfangen, das sonst nur zu nachtschlafender Zeit geht.

Der ICE sollte zunächst wie angeschlagen nur aus einem Zugteil bestehen, wurde dann aber doch noch gekoppelt und fuhr recht voll mit wenig Verspätung los. 

IMG_0413

Steve Wozniak auf der Apps World in einem Kamingespräch mit Patrick Beuth von Zeit Online zu erleben, war schon sehr beachtenswert. Das schöne war, dass 30 Minuten Interview-Zeit gegeben war und danach das Publikum die gleiche Zeit die Chance hatte, Fragen an Woz zu stellen.

Auf die Frage einer jungen Frau, ob Steve Jobs nicht seinen (also Woz) Erfolge durch seine Person und Aura im Wege stand, antwortete Woz ausführlich und gelassen, dass er insgesamt 3 Steve Jobs kennen gelernt habe. Den Steve der jungen, wilden Jahre (an dieser Stelle sei nur an die von Atari semigesponsorte Pilgerreise des jungen Jobs nach Indien erinnert) oder die Abenteuer mit dem Bau und Verkauf von Blue Boxes (vor Apple Zeiten), die das Gespann fast mit dem Leben bezahlt hätte.

Der zweite Jobs war einer, der es verstand, Innovationen voranzutreiben und daraus ein Business zu machen. Das war ihm möglich, weil er Geschäftsführer (in mehreren Firmen) war und somit über die nötigen Mittel verfügte. Wenn das in den Anfangstagen auch nicht immer zum Erfolg führte (Woz führt an, dass der Mac kein Erfolgsrezept war).

Der späte Jobs ist jemand, der nicht das am besten und meisten verkaufte Produkt erschaffen wollte, sondern er wollte etwas schaffen, das durch seine alleinige Anwesenheit das Bedürfnis schaffte, dieses und Folgeprodukte (gerne genannt: iPod & iTunes als Bundle für den Verkauf digitaler Medien) zu erwerben, zu nutzen und zu lieben.

Ganz klar stellt Woz heraus, dass Steve Jobs ihm gegenüber niemals (bis auf eine durch die Presse lancierte Aktion) unfair war. Er stellte ihn als fordernden, aber fairen Partner dar (ähnlich dem Grundtenor in “Becoming Steve Jobs” von Brend Schlendert und Rick Tetzeli).

Für den Ingenieur und Lehre war es immer wichtig, tolle Produkte zu erschaffen und andere zu unterrichten. Viel Geld verdienen stand und steht bei ihm nicht im Focus. Das macht ihn auf eine charmante Art und Weise sehr sympathisch.

Eines sei an dieser Stelle noch erwähnt. Viele von Steve Wozniak aufgestellten Thesen und Betrachtungen haben sich in der Rückschau als sehr treffsicher und richtig erwiesen. Beim Themenkomplex Moore’s Law, künstliche Intelligenz und die Macht der Computer (und die Ohnmacht der Vernunft, um einen Klassiker zu nennen) war es ihm wichtig, dass die von ihm skizzierte Dystopie der Macht der Computersystem über den Menschen, nicht Wirklichkeit wird. Da aber der Turing Test noch nie bestanden wurde, bleibt zu hoffen, dass Woz’ Dystopie uns nie erreichen wird.

MDC kompakt 2013

Tuesday, December 3rd, 2013

War ich doch Dank O’Reillys Ticketlotterie Mitte November in Hamburg zur MDC kompakt 2013.

Wie ich auch an anderer Stelle schon sagte, möchte ich mich nicht mit den Konferenzkarten bereichern, so dass das etwaige Autorenhonorar zu 100% an den Verein für krebskranke Kinder der MHH geht.

Ein Kessel Buntes

Tuesday, September 24th, 2013

book100-124a58893c5759d0-5209550f07d3b59dAuch wenn es schon ein paar längere Tage her ist, der Developer Channel hat meine kleine Programmierbücherübersicht zur OS X und iOS Programmierung veröffentlicht.

Dann muss ich langsam mal Gas geben, Xcode 5 mal wirklich zu benutzen. 😉

iCandle

Friday, May 18th, 2012

Mega cool, meine erste App im Simulator zum Laufen bekommen: iCandle (die 2 Millionste Ausführung dieser Trash App). Gestern failte der Build, da ich eine Storyboard-Datei angegeben hatte (Default), aber iOS 3.0 erzwungen hatte als Zielplattform. Das beißt sich natürlich. 😉

iX Developer Sonderheft App-Entwicklung

Thursday, May 10th, 2012

Bei Heise gibt es seit gestern das iX Developer Sonderheft zur App-Entwicklung als DRM-geschütztes PDF, welches man ab heute im Heise Shop als Tote-Holz-Ausgabe bekommen kann und ab dem 16.05.2012 im Handel.

Neben den üblichen Verdächtigen iOS und Androide sind auch die .NET-Fraktion mit WinPhone und Web-Apps als Universal-Apps (oder mit entsprechendem HTML5-based Framework wie etwa jQuery Mobile als quasi-“native” Apps) vertreten.

Als besonderer Schmankerl ist ein Kapitel aus dem Buch iOS Games von Patrick Völker enthalten. Ich kann es kaum erwarten, bis das Buch bei mir im Briefkasten ist. 😉