(yeah, I know I said I was taking a pause from conferences, and I shouldn’t be pushing myself during what’s been the worst 12 months of my life, but what can I say, I like doing CocoaConf)
I developed two new talks for CocoaConf DC, and those are the same ones I’ll be doing in San Jose.
Firebase: Totally Not Parse All Over Again (Unless It Is)
One of the reasons I wanted to take a break from speaking was that I was doing too much “learn something for the sake of doing a talk on it”, a phenomenon that Janie noted recently too. The Apple Watch media APIs talk I did last year was a pretty bad offender in that department (although at least now I know why there aren’t any apps to sync podcasts to your watch: Watch Connectivity is a nightmare!).
So I wanted to do talks where I already knew and cared about the topic. Working on MathElf, we’ve been using Firebase for parts of our cloud data store, and I realized it would be interesting to do a talk on. For a lot of people, the appeal there will be just not running your own database and syncing, but it’s actually got some other interesting features. The sync between the various observers of a Firebase is surprisingly fast, so much so that we can use it live to sync freehand path drawing and picture drag/stretch/rotate:
Aside: that’s the tutor’s iPad on the left (captured from a device) and the student running in the emulator on the right. What’s not in this demo is that the tutor and student are connected by voice chat throughout the tutoring session. Anyways, MathElf is basically Uber for high school math, and people don’t really get it until they see it in action (maybe that’s why we haven’t been featured by Apple? dunno, but it sure would help).
The Firebase sample app for CocoaConf is a lot simpler — just a browser of conference sessions, with the ability to mark favorites — but it sure plays well with the room when I edit the database in the web console and it immediately syncs to the app. I saw a lot of positive feedback about Firebase in the session feedback, so I think this is a pretty good topic to be on top of.
Building a Streaming Apple TV App
My other talk for this CocoaConf was inspired by something I noticed from last year’s Apple TV Tech Talks (which schedule conflicts prevented me from attending, alas). The talks had lots of stuff about design and making games, and a little bit about playing video, but effectively nothing about streaming the video to the Apple TV. I think that’s a pretty big blind spot, especially as streaming media seems to have eclipsed gaming as the primary value of the platform in the year it’s been out.
So, this is similar to some of the other streaming talks I’ve done in the past, as it introduces how HTTP Live Streaming works, both for video-on-demand (browsing episodes of already-created content) and live streaming (watching a live event like sports, breaking news, Twitch gaming, etc.) I think the live streaming is the interesting part — obviously — so I spend a lot of time on that.
This time around, I’ve been demo’ing Open Broadcaster Software (OBS), which is an open source livestream production suite that now has a Mac version, and competes with my beloved Wirecast, obvious advantage being that you can try out OBS for free. Downside is: it doesn’t seem work with the Wowza streaming server when I’ve tried it, so you can’t round trip to your own Apple TV app with it (although I have livestreamed to YouTube with OBS, so it’s not that broken). I should probably file a bug with one side or the other before SJ and see if they can get it working.
Both of these talks need a few more updates from the versions I did in DC. The streaming talk could afford a little more time about other backend issues you should plan to take care of (user authentication, sending available content as JSON or XML, etc.), and the Firebase talk skipped user authentication because I didn’t have time to get it working in the demo app, and I really should.
Still, I’m pretty happy with these two presentations, and hope we have a good turnout for the last CocoaConf of 2016. See you there?