Latest Blogposts

  • One day project: Bookmarks

    Bookmarks ist eine sehr einfache iOS Applikation um Bookmarks zu speichern. Die Kernidee ist, dass der Inhalt der Webseiten archiviert wird und durchsuchbar ist. Die Frage nach der einen Webseite, auf der ich letztens war und auf der etwas über XYZ steht soll somit einfach beantwortet werden.

    weiterlesen
  • Fünf Jahre

    Im August 2013 war ich noch Student, TBO INTERACTIVE war noch in der Auguststraße und das Team bestand aus sechs schlauen Köpfen. Heute ist es die Torstraße und es sind 16 Köpfe. Am Freitag war mein letzter Arbeitstag und ich möchte mich für fünf grandiose Jahre bedanken.

    weiterlesen
  • Continuous Integration mit Jenkins

    Im September 2016 kündigte ein Blogpost auf jenkins.io Blue Ocean und damit die deklarativen Pipelines an, mit denen auch der build- und deployment Prozess im Repository verwaltet werden kann. Mittlerweile sind die entsprechenden Plugins ein wenig abgehangen und ergänzende Plugins wurden entwickelt bzw. die Kompatibilität hergestellt.

    weiterlesen
  • Swift Struct vs. Class Performance

    In dem Spiel, dass Michael und ich in dem Projekt derbe.cool entwickeln nutzen wir immutable structs, die bei jeder Nutzeraktion mehrmals kopiert und angepasst werden. In diesem Kontext habe ich mir die Frage gestellt, was der Performance-Unterschied im Vergleich zum kopieren einer Klasse ist.

    weiterlesen
  • TBODeveloperOverlay - Dinge, die jeder braucht

    Mit wachsender Komplexität eines jeden Softwareprojektes wächst auch die Komplexität beim Debuggen von Fehlern und Verstehen von Supportanfragen. Dabei gibt es einige Aspekte, die es einfacher machen die Situation zu verstehen. Ein gut gepflegtes Log kann sehr hilfreich sein. Genauso ist es wichtig zu verstehen auf welcher Version und mit welchen Parametern das Problem auftritt.

    weiterlesen
  • Swift Bitmasks - Dinge, die niemand braucht

    In der Objective-C Welt kennt man Bitmasken zu genüge. Schon wenn man einen einfachen UIButton konfigurieren möchte wird man mit einem UIControlState konfrontiert. Da gibt es dann plötzlich so Dinge wie UIControlStateHighlighted|UIControlStateDisabled. Und vor den Zeiten von Autolayout musste man sich noch mit UIViewAutoresizing rumschlagen. In Swift sind Bitmasken kein existierendes Konzept und das Erstellen einer eigenen Datenstruktur dafür ist nicht trivial.

    weiterlesen
  • Plan B - Was ich für mein Backup nutze

    Geht eine Nerdin zum Prophylaxe. Nach dem üblichen säbel, feil und putz kommt die unausweichliche Frage: Nutzen sie regelmäßig Zahnseide? Je nach Grad der persönlichen Zahnpflege ist das Eigentlich schon! mehr oder weniger ehrlich. Bei der Zahnseide verhält es sich wie beim Backup. Jeder weiß, dass es wichtig ist. Jeder nimmt sich vor es regelmäßig zu machen. Aber irgendwie macht man es dann doch nicht, oder nicht so oft wie es gut wäre. Als gute Zahnärztin wird natürlich nach jedem Essen Sortimennt der verschiedenen Zahnseiden herausgeholt und die passende gründlich ausgesucht. Genauso ist der Backup-Plan einer guten Nerdin selbstverständlich vielschichtig.

    weiterlesen
  • Brew Bundler - Das Gemfile für dein Homebrew Cask

    Reboot tut gut. So zumindest der alte Spruch der Windows Benutzer. Auf dem Mac wird jeder passionierte Steve Jünger behaupten ist das anders, aber ein Clean install ist nach ein paar Jahren doch ganz erholsam. Man muss nicht mühsam ausmisten, sondern installiert sich nach und nach die Software die man braucht und kümmert sich mit akribischer Sorgfalt um die Konfiguration und das Setup.

    weiterlesen
  • BRORM - SQLite Object Relational Mapping

    In vielen Projekten verwenden wir FMDB als SQLite Wrapper. FMDB ist sehr leichtgewichtig und trägt kaum auf. Eigentlich ist es nur ein Objective-C wrapper auf das C-Interface. Der Vorteil: Man kann alles machen, was man mit SQLite so machen will. Der Nachteil: Was auch immer man machen will, man muss SQLite Queries schreiben. An dieser Stelle setzt BROrm an. BROrm ist ein Object-Relational-Mapping, dass die einfachen Queries die man im täglichen Leben so braucht in schöne kleine Objekte mappt und dabei ein paar performance Optimierungen durchführt (lazysave, transactional save, …). zum Projekt auf GitHub

    weiterlesen