How to get Picture in Picture Multitasking Working with YouTube

Permalink ∞

picture in picture on the iPad

Ever since the picture in picture multitasking mode got introduced for the iPad, I’ve been really frustrated with Google refusing to update their YouTube app to support the feature. But even worse: Safari supports the feature for HTML5 video, but YouTube actively hides the controls to activate it on their website.

Not much we can do about their app, but the website must surely be fixable, right?

If you google for the problem, you will find this Reddit post offering a bookmarklet, that will turn the native video controls back on. I tried that, but I couldn’t get it to work. The native controls did show up, but only for half a second, then YouTube turned them automatically back off. I guess they really want you to use their custom controls.

Nothing that more (or at least different) javascript can’t fix:

javascript:document.getElementsByTagName("video")[0].webkitEnterFullScreen()

Create a bookmark and replace its address with this javascript.

When pressed it will activate the full screen mode for the first video that it can find on a website. The native video controls will be visible in full screen mode, including the picture in picture button.

The bookmarklet will work with any website that uses HTML5 video. Hope it helps.

Swift Syntax Highlighting with Jekyll

Permalink ∞

I just spend a few hours trying to find out how to embed swift snippets in my blog posts. I use Jekyll for this site, which already comes with Pygments for syntax highlighting. So adding a code block with some Swift code, already worked. The result looked something like this:

highlight1

As a webdeveloper I always used TextMate (or later Sublime Text) with the Twilight theme. I ported that to Xcode when I got into iOS development and have been using it there ever since. Xcode highlights the code like this:

highlight2

Shouldn't be too complicated, right? Get into the CSS file, adjust a few things. Well here is how that turned out:

highlight3

Seems like the Pygments swift highlighter that you get with Jekyll is kind of old. It only detects a couple of keywords but not even all of them. The Jekyll configuration did point me to the Rouge highlighter.

So I did a gem install rouge and added the following to my _config.yml:

highlighter: rouge

And here we go, much better:

public func hello(name: String) -> String {
  return "Hello \(name)"
}

println(hello("world"))

Here's an more complex example:

/// just some class that doesn't do much
public class SwiftHighlightExample {
  private let exampleNumber: NSNumber

  public init(intValue: Int) {
    exampleNumber = intValue as NSNumber
  }

  public var stringValue: String {
    return exampleNumber.stringValue
  }

  public func printNumber() {
    println("Number: \(self.numberAsString)")
  }
}

let example = SwiftHighlightExample(intValue: 5)
example.printNumber()

While this example doesn't do anything meaningful, it should at least demonstrate the highlighting. It is not perfect and I had to add a few css hacks, to achieve some of the details that the highlighter wouldn't support otherwise. Still, unlike Xcode the highlighter can only guess if something is a class name, a function name or what ever.

You can have a look at css here in case you are interested. Feel free to steal it.

Let’s be bloggers

Permalink ∞

A few days ago Ash Furrow told me to get back into blogging. He really did. Kind of. My blog doesn’t do footnotes, which is a bit unfortunate. If my blog supported footnotes, I could put one right here. In that footnote I could hide the unimportant detail that Ash Furrow did in fact tell a whole crowd to get into blogging, the crowd at UIKonf that I just happened to be a tiny part of. But I don’t have footnotes and while I could have gone ahead and implemented footnotes, I would have been back in my old pattern where I’d spend lots of time updating or rewriting my blog engine and only little time blogging. And that was not what the talk was about. So I decided not to do it, and no, Ash Furrow wasn’t specifically interested in my writing, but was rather pointing out that blogging was a useful thing for any developer to do. Fine. Still. I thought the talk was really inspiring, and since I had this unused blog lying around anyway, I thought I might as well go ahead and write something.

So let’s see. Quite a few things have changed since my last few blog posts. I do even less web development these days and concentrate solely on iOS and Mac development, mostly Swift (and some legacy Objective-C stuff if I can’t avoid it). I have been writing at least two apps from the ground up for my current employer, contributed to a third and I am about to finish another one in (hopefully) just a few weeks. So the last two years have been extremely busy and full of learning and struggling with architecture and best practices and all of the stuff that engineers like to do. So attending UIKonf made me realize two things:

  • There are a lot of people out there trying to figure out all the same problems and many of the things that they end up with are often really similar to the things that I ended up using
  • Consuming what they have to share has been working out pretty well, so maybe I should return the favor and share my own struggles and findings. After all it seems to be a really nice community to be a part of.

After figuring out how to do something in a clever way, my first impulse has usually been to be content with things working well and skipping the sharing part. Maybe I can fight that impulse.

We’ll also see, how well writing in English will work out, but that’s a whole other topic.

Anyway, meta blogging posts are boring. I don’t like reading them so I’ll stop writing one.

It’s Time to Dump Photoshop and Embrace Sketch

Permalink ∞

Designing UI in Photoshop is like using a chainsaw to cut paper when all you need is a pair of scissors

Schöner Artikel, der bei mir offene Türen einrennt. Zusammenfassung: Benutzt Sketch. Ich hatte noch keine Zeit mir Sketch genauer anzusehen, aber es scheint mir ein sehr gut designtes Vektor-Grafikprogramm zu sein. Die perfekte Ergänzung für Pixelmator vielleicht?

Dynamic Type

Permalink ∞

Mit iOS7 kam ja unter anderem Dynamic Type als neues Feature hinzu. Dynamic Type führt eine Schieberegler für die Schriftgröße in den Systemeinstellungen und Apps können darauf reagieren indem sie ihre eigene Schrift darauf anpassen. Technisch ist das natürlich noch ein bisschen komplizierter, vor allem wenn man nicht die Systemschrift nimmt, aber das muss einen ja als Nutzer nicht weiter interessieren.

Tatsächlich ist das unter Entwicklern scheinbar kein sehr populäres Feature, zumindest habe ich bisher noch nicht viele Apps gesehen, die das unterstützen. Andere Apps haben eigene Steuerelemente für die Schriftgröße, um diese individuell nur für die App einzustellen.

Bisher hatte ich keine klare Meinung dazu, welchen Ansatz ich besser finde. Jetzt komme ich darauf, weil die objc.io ihre Artikel jetzt auch als Newsstand-App vertreibt. Und diese implementiert nun Dynamic Type, anstatt eine individuelle Schriftgröße nur für diese App zu unterstützen. Und ich hasse es. Vielleicht ist euch ja an dieser Seite schon aufgefallen, dass ich große, lesbare Schrift mit ordentlichem Zeilenabstand bevorzuge. Und die Dynamic-Type Standard Einstellung für Fließtext ist für meinen Geschmack viel zu klein.

Aber will ich deswegen jeglichen Text in Apples eigenen Apps auch größer haben? Ich hab auf meinem iPad mini mal die Schriftgröße auf Anschlag. Das Magazin ist jetzt gut lesbar, könnte aber immer noch mehr Zeilenabstand vertragen. Die Schriftgröße ist natürlich auch für Email-Texte in Ordnung. Da aber auch der Text in der Mail-Liste größer wird, wird diese auf einmal ziemlich eng.

Ich bin mir nicht sicher, was die richtige Lösung wäre. Zumindest bei Magazinen, RSS-Readern und ähnlichen Programmen würde ich auf jeden Fall eine mächtigere individuelle Einstellungsmöglichkeit bevorzugen, wie sie andere ja auch bieten.

Pixelmator 3.0 FX

Permalink ∞

Zusammen mit der Veröffentlichung von OSX Mavericks gab es auch ein neues Update für Pixelmator, ein Programm das ich schon seit einigen Jahren beobachte, als Alternative für Photoshop. Wenn man Photoshop kennt, fühlt man sich darin direkt zu Hause, es hat den gleichen Aufbau. Ebenenpalette, Werkzeuge, Filter. Im Gegensatz zu Photoshop verwendet Pixelmator aber eine native Mac-Oberfläche, ist rasend schnell und nicht ganz so überladen.

Natürlich kann es was Features angeht nicht mit Photoshop mithalten, aber die wichtigsten Sachen sind da und mit diesem Update kamen mit Ebenen-Effekten das unter anderem letzte große Feature, das mir noch gefehlt hat. Pixelmator kann auch eure bestehenden Photoshop Files öffnen, wobei ich nicht weiß, wie es da mit Kompatibilität aussieht, wenn man da in Photoshop ein paar abgefahrenere Features benutzt hat (Smart Objects? Kann Pixelmator nicht, denke ich). Schaut es euch mal an. Wenn euch das Featureset reicht, dann ist es eine großartige Alternative zu einem Preis, zu dem man Photoshop über Creative Cloud keine zwei Monate bekommt. Selbst wenn euch noch was fehlt, lohnt es sich ein Auge darauf zu haben, es wird seit Jahren kontinuierlich weiterentwickelt und holt weiter auf.

Macoun 2013

Permalink ∞

Am Wochenende war ich in Frankfurt auf der Macoun und ich kämpfe noch ein richtiges Fazit zu finden.

Anders als der Name vermuten lässt ging es nicht so sehr um Mac Entwicklung sondern war ganz auf iOS fokussiert. Die Qualität der Vorträge war durchwachsen. Das liegt zum Teil daran, dass scheinbar wohl doch nicht alle Entwickler geborene Sprecher sind. Das kann ich ihnen nicht vorwerfen, schließlich bin ich das auch nicht und umso stärker respektiere ich das, dass sie sich trotzdem vor die Menge stellen.

Auf der anderen Seite richteten sich viele der Vorträge eher an Anfänger. Einer der besseren Vorträge war die Einführung in Cocoapods, kompetent und interessant vorgetragen. Dann ist das Thema aus meiner Sicht auch nicht wirklich schwierig und eine Umfrage am Ende hat ergeben, dass ein Großteil der Teilnehmer das ganze bereits einsetzt. Ich frage mich wie viele wirklich etwas neues daraus mitgenommen haben?

Am meisten hatte ich mir erhofft von dem Vortrag "96% Testabdeckung" von Maxim Zaks, vor allem weil ich schon länger mit einigen Teilen in meinen Anwendungen kämpfe, die eher schwierig mit Unit-Tests abzudecken sind. Allerdings ging es einen großen Teil darum, wie man die Testabdeckung tatsächlich misst, woran ich nicht wirklich interessiert bin und der Teil wie man bestimmte Problemstellungen beim Testen löst kam viel zu kurz. Interessant war der Vortrag trotzdem, nicht zuletzt wegen des Einblicks in die eigene Arbeitsweise und Organisation die der Sprecher nebenbei gab.

Der gefühlt meist-besuchte Vortrag war der von Chris Eidhof über Schlanke View Controller. Der war ein wirklicher Augenöffner - zumindest wenn man seinen Artikel auf objc.io vorher noch nicht gelesen hatte. Was ich hatte. Mist. Der Vortrag ging noch ein wenig mehr in die Tiefe und war natürlich trotzdem interessant.

Größte Enttäuschung war aus meiner Sicht direkt der erste Vortrag über die Börse Frankfurt App. Die haben eine relativ umfangreiche App und ich hatte mir erhofft darüber zu erfahren, wie sie mit der Komplexität umgehen. Technisch haben die ein paar ganz interessante Sachen gemacht. Die App baut eine TCP-Verbindung zu einem Push-Server auf, um in Echtzeit Kursänderungen zu erhalten. Die Implementierungsdetails, die sie dann gezeigt haben, wirkten aber alle nicht sonderlich sauber (wirklich? Programm-Logik in UITableViewCells? Während zwei Vorträge später ausführlich beschrieben wird, warum das bäh ist und wie man das vermeidet?) und wenn es um den Einsatz von den etwas moderneren Features von Objective-C und dem iOS-SDK ging, dann haben sich die Vortragenden eher konservativ und ablehnend gezeigt. Storyboard-Segues? Autolayout? Es mag ja gute Gründe geben, beides nicht zu mögen und zu benutzen. Aber das einfach nur abzulehnen weil es neue Technologien sind, finde ich unangebracht, wenn man vor einem Raum voller Entwickler über das Entwickeln von Apps redet. Dass die Demos alle nicht funktioniert haben, hat auch nicht geholfen.

Naja, ich will nicht auf jeden Vortrag eingehen. Da waren noch ein paar wirklich interessante Themen dabei und in einigen Fällen hätte ich eher ich mir eher eine der anderen parallelen Veranstaltungen anschauen sollen. Mit dem Drumherum war das ein lustiges Wochenende und die lockere Atmosphäre und die Organisation haben mir wirklich gut gefallen. Und auch die zugehörige App, die nicht nur den Zeitplan enthielt sondern über die auch regelmäßig nützliche Informationen (es gibt Kuchen!!!) gepusht wurden, war Klasse. Persönlich habe ich aber inhaltlich nicht viel neues mitnehmen können, was mich bei der Arbeit weiterbringt. Schade.

Angemalt

Permalink ∞

Ich weiß nicht, ob ich jetzt plötzlich wieder anfange regelmäßig zu bloggen. Aber zumindest habe ich das Design mal etwas schlanker gestaltet. Das ganze ist immer noch mit Jekyll gebaut, aber alles ein wenig schlanker. Keine Kategorien mehr, kein Archiv mehr. Der ganze Kram, den ich nie benutze, ist also rausgeflogen. Nur noch der Inhalt. Das muss reichen.

Eels live in Hamburg

Permalink ∞

Nina war schneller mit dem über Eels-Bloggen als ich. Oder vielleicht hab ich mir auch einfach extra Zeit gelassen, weil ich tippfaul bin.

Ich liebe die Eels jetzt ein bisschen mehr und das obwohl 80% der gespielten Lieder keine Lieblingslieder waren, zuviele neue Lieder gespielt wurden und die kleine Arroganzpause ein bisschen zu lang gedauert hat war das hier eines der besten Konzerte des Lebens! Ehrlich! Besonders weil man ja meint, dass wenn das Licht an geht wäre die Show vorbei. PUSTEKUCHEN! Kay und ich waren fast draußen, da fangen die wieder an zu spielen. Arschlochband ey <3 Ganz großes Kino. Geht zu den Eels Leute.

Sehr viel mehr gibts auch gar nicht zu sagen. Eels sind live wirklich gut und die ganzen Lieder, die man bei den Alben immer überspringt sind dafür da um live besonders viel Spaß zu machen.

CGPGrey Youtube Channel

Permalink ∞

Falls euch mal langweilig ist, kann ich euch diesen YouTube-Channel empfehlen. Da findet ihr wirklich lustige Videos mit Erklärungen zu allen möglichen Themen aus Politik, Wissenschaft und dem ganzen Rest. Allerdings müsst ihr dafür schnell gesprochenes Englisch verstehen können. Da, ein Beispiel.