Archive for the ‘tvOS’ Category

tvOS and iOS: Some thoughts

Two questions to start with. And I promise you they’re not trick questions.

  1. What is the greatest commonality between tvOS and iOS?
  2. What is the greatest difference?

p.s. There is a second page of this post. Bonus points if you can find it.

More thoughts on tvOS development

The more time I spend in tvOS and on Apple TV, the more I find that it’s an environment better suited for the “big guy” crowd than independent developers. Its app store is hard for anyone who isn’t a preferred partner and the price points Apple’s partners have launched with won’t sustain a much reduced customer base for anyone who isn’t big to begin with.

I see ATV doing best for successful brands and products who want to extend from iOS rather than introduce new tvOS-specific products. In such cases, ATV offers Apple-watch-like extension of functionality instead of a standalone system.

You can advertise the features directly within an app, and offer tvOS support for free or low costs without compromising your bottom line. The real money remains on iOS and tvOS apps add value. This helps skip any issues of app store discovery.

You cannot compete with built-in content like weather, traffic, schedules, reminders, media access, and so forth. And the tvOS SDK doesn’t offer lightweight glances and complications that would be the best way to supplement media consumption.

When it comes to games, ATV is suffering in several ways. First, it doesn’t offer an Apple branded game controller — it’s all third party. The Siri remote kind of sucks when it comes to interactions, although I have created some Wii-like proofs of concepts for using the remote sideways as a steering wheel.

Real gaming needs more than an accelerometer and the Siri remote doesn’t have the buttons or hand-feel that would win. That means purchasing real controllers and building games that properly leverage those controllers. Those are two serious barriers to surmount. (Plus I should note that games must work with just the Siri remote, according to current Apple guidelines and cannot depend on controller purchases.)

Unfortunately, ATV also has a mission issue. It’s a media center that can also play games. It doesn’t have a big game selling point, whether physical movement like Kinect or Wii or “best games available exclusively” like other consoles.

That said, Apple’s sweet spot has always been health (from jogging with your iPod to HealthKit and ResearchKit). It would be great to see Apple introduce some kind of physical interaction features (like a wii fit board, or whatever) that could build on this “Get Moving” brand and get kids up and off the couch for more physical gaming.

Right now, if kids want to vegetate, they can already do that with their iPads and  in any room of their house and in a car. The iPad’s touch screen offers a lot more potential than the TV’s “kind-of-point-at-stuff” interaction. I also think most learning titles are still better on the iPad and with touch interfaces. Think Khan Academy type stuff.

The big question for current ATV apps outside of controller-based-games is “can this kind of be a TV channel?” and if the answer is anything other than a clear “yes”, then tvOS is probably not the right platform.

For example, think of a “Home Control” channel, where you tie into security cameras, garage door states, and thermostats. It’s a great way to integrate existing Apple frameworks with tvOS opportunities.

Life coaching products in particular would also benefit from tvOS check-in and review. It’s a natural fit to extending app flow into the living room. While traditional games have received the most press, I see a real target of opportunity here for display on a screen that’s likely quite close to the kitchen (calorie tracking) and your track sneakers (exercise tracking).

Right now tvOS and ATV feel like they haven’t entirely been realized: as if they’re still more hobbies than products. There’s a lot in these new products to like but I think Apple has to think through this push into applications to better define the niche or niches it intends to fill.

Apple TV Siri Remote Care and Feeding Guide

  1. Do not drop from heights. Do not immerse in water. Do not feed after midnight. Remote does not like bright lights.
  2. Rough-side swipe sensor goes up and away from you. It is super-easy to hold upside down by mistake. Especially in the dark. As when watching TV in a dark room. Then you accidentally swipe with your palm when trying to adjust the volume and end up jumping forward or backward in time. Not good.
  3. Do not get potato chip grease on the swipe sensor — good thing people rarely eat chips in front of the TV. If you do, baby wipes fix all ills
  4. Lightning for remote. USB-C for dev main unit work. Do not cross the beams.
  5. Keep an old style remote or two around. They work, they’re reliable.
  6. Siri still has a great sense of humor

Screen Shot 2015-11-03 at 6.45.50 PM

  • And remember, Siri loves you:

Screen Shot 2015-11-03 at 6.49.14 PM

Setting up your new headless Apple TV Development unit

When it comes to tvOS development, you don’t need a separate TV on your desk. Your best development set-up is already there for you on your main computer. Sure, there are a few weird “headless” set-up tasks where you kind of have to rely on faith and blind clicking but you can set up your system pretty easily and reliably without struggling with an extra monitor.

Before you start

Before you start: Make sure you have a USB-C cable to connect to Apple TV unit your computer. These cables are not included in all Apple TV boxes, so prepare in advance. You’ll also need an Apple TV remote of any generation and a recent iOS device.

I recommend using old-style Apple TV remote — you probably have a bunch already on hand. Setup goes smoother with these, and they’re ready to use without charging and pairing.


Just plug in your new Siri remote to charge somewhere with a lightning cable and get down to real work with an older remote. Remember: You do need to maintain line-of sight with IR remotes.

Going Headless

Originally, I set up my system to pass through an HDMI converter and then into Elgato’s EyeTV HD. This is a pretty bad solution as there are significant delays in presentation. Every time I click my remote, I’d have to wait for a full second before I could see the result of that interaction.

EyeTV HD does not support 1080p and there’s a bad bug in the early Apple TV 4th gen that doesn’t “remember” 720p settings. It keeps switching back to “Auto”, which means back to 1080p. My radar has been closed as a duplicate. So it isn’t just me.

QuickTime Player offers a better approach. Just keep your Apple TV connected through USB-C. It takes several steps to get this set up properly but feeding your Apple TV through QuickTime Player not only lets you skip extra monitors on your desk, it enables you to take screenshots and record usage videos. It’s super handy.

Most modern monitors (assuming you’re not working on an iMac) provide multiple HDMI-in ports. If available, you can use these during Apple TV set-up to see what’s going on onscreen. Consider using your display’s picture-in-picture features to multi-share your screen.

Using QuickTime requires that Apple TV’s HDMI port is connected somewhere. As @Rizwan noted on Twitter: “Not rendering UI for me as headless after setup on TV, unless HDMI active. No screenshots either.” So make sure that the HDMI port is connected. Mine always was throughout the entire dev preview period and it didn’t occur to me to disconnect to check in my initial  write-up, which I’ve updated in-place several times.

When available, you can always just throw the other end of an HDMI cable onto a spare port on the back of your display. The HDMI doesn’t have to actually be viewed just connected. You can also use a headless dongle that pretends to be a display to ensure your Apple TV is set up for dev use:

Connecting to a spare HDMI port on your monitor allows you to switch over to full-screen TV mode if you’d like. I should note, however, that from a consumer point of view, the 4th gen model is still greatly lacking in usability. I keep a 2nd gen next to my 4th gen and use it to watch movies because the 4th gen just isn’t up to the task.

Once you’ve got the HDMI port bit sorted out, you’re ready to get going.


Restore your device in iTunes. It helps to download the new firmware and put your device into recovery mode. (Press menu and play-pause until the white light repeatedly blinks) Option-Restore and select the firmware.

Here’s a quick reference to the old-style buttons from iClarified:



Once restored, your device needs to be activated. It’s easiest to do this with your Apple TV connected to a TV of some kind, however it is not at all required. I’ve become something of an expert at setting up my Apple TV without seeing it. Here are the steps I take.

First, enable bluetooth on a recent iOS device (I use a 5th gen iPod touch). Unlock it, place it on top of your Apple TV with the screen visible to you and the auto-lock disabled or set to a long timeout. Newer devices can simplify the Apple TV setup process and enable you to “type” on an iOS keyboard instead of the horror of using an Apple TV remote.

Gently press the main “OK” button on your remove (this varies by remote. I used an old silver model, where it’s at the top inside the round controls.) Repeat and wait. If memory serves, the first click selects “English” as the dev language, and the next few clicks select similar agreeable default settings.

At some point (after about 4-6 clicks or so), your iOS device will ask you if you want to set up your Apple TV because you’ve chosen to set up using a device. (Versus setting up manually with an Apple TV remote.)

Go ahead and perform all the steps to set up your iCloud account, App Store account, etc on the iOS device — don’t stray too far away from the Apple TV unit. Continue until your iOS device stops asking your for passwords and first born children.

My new-style Siri remote is a piece of crap and won’t hold a charge. I’ll be replacing it soon. Unfortunately, while I was planning on getting a few extras for better multiplayer testing, I’m now told that’s not going to be a possibility.

Moving to Xcode

In Xcode, you should now be able to open the Devices tab and take screenshots. (Until this point, you could not because the device was not activated).

Screen Shot 2015-10-30 at 5.35.30 PM

There are still several steps before you can start using Apple TV. Take screenshots and respond on your remote to each step, which will include enabling location services (why not?), enabling Siri (do it!), enabling the screensaver (lots of bandwidth), sending diagnostics (yes), sending analytics (your call), agreeing to terms and conditions (you gotta).

Screen Shot 2015-10-30 at 5.08.28 PM

Once you finally see the main menu on a screenshot, launch QuickTime Player.

Screen Shot 2015-10-30 at 5.08.43 PM

Moving to QuickTime Player

In QuickTime Player, select File > New Movie Recording. From there, select your Apple TV  as the camera and microphone.

Screen Shot 2015-10-30 at 5.09.37 PM

Your Apple TV unit should now be live and usable. You’ll probably want to hop into Home Sharing and get that set up. Don’t forget to use the “press-and-hold” shortcut to move between regular and caps letters when entering your password. If you’re using your Siri Remote, you’ll probably need to pair it so don’t freak out when Apple TV doesn’t respond to any of your interactions.

Screen Shot 2015-10-30 at 5.59.23 PM

Move your cursor away from the QuickTime screen to view the content without the QuickTime overlays shown in this screenshot.

You won’t be able to play and record movies because the QuickTime rendering doesn’t do HDCP copy protection stuff, but since this setup is primarily to enable application development and testing, that shouldn’t be a problem.

Congrats and welcome to the world of tvOS dev!

POLL: Which of these #swiftlang books would you pay for?

Some notes: The initial feedback on a tvOS book had low numbers and my Swift posts have massively outperformed all my Apple TV/tvOS posts. If I’m taking on a project, I really need a critical mass of readers to keep this business going. If you don’t see a topic in the following covers, that you think is hot, that needs documentation, and that has legs for potential sales, drop a comment, an email, or a tweet in my direction and let me know what topic it is and why it’s one I should consider writing about. Thanks all.

Why Apple TV

Was having a discussion today about what apps are suitable for Apple TV and I thought I’d share some thoughts.

  • Expect lower discoverability. I can’t imagine people will have as much tolerance for browsing on TV as they will on a desktop or phone/tablet.
  • Think living room. Focus on entertainment and information. I don’t think there’s going to be a huge demand for, for example, live earthquake listings or budget calculators versus games and traffic reports.
  • Consider motion. The remote has some accelerometer functionality built in. Think how your apps can engage customers in motion, the way that Wii was designed to get users up off the couch.
  • Design for the limits of the remote but don’t be boring. Frogger apps and sidescrollers take you only so far. Trivia challenges will work a lot better than pictionary ones with these limited input devices.
  • Supplement what people are already doing on Apple TV, which is primarily entertainment delivery. How about an app that makes rental suggestions?
  • Target kids. Being able to engage the family while parents read or prepare dinner is a really big opportunity for this new market.
  • Don’t try to out-siri Siri. Apple’s already building in features to answer questions, perform personal assistant tasks. This is not an area that’s going to be easy to compete in. Ditto for any kind of experiential screensaver stuff. Don’t take Apple on head first. You won’t win.
  • Simplify UIs. If you are going to build for the non-game market, limit the heck out of your interfaces. Avoid text and focus on a few well-chosen buttons.

Apple TV: Going Dark

Box just got here and since I am not a lawyer, I’m going to stop posting for a while about Apple TV development. While I’m pretty sure the details of software development are still okay to talk about, I really don’t want to accidentally step over any lines when it comes to the dev kit.

If you have any guidance, please share.

Apple TV: Strange fmt errors in simulator

Errors stating EXCEPTION thrown ('fmt?') popped up while trying to work with AVFoundation on the Apple TV simulator. A little searching and, I googled across this Stack Overflow post that suggested changing the input in System Settings might work.

It did.

I don’t have “Internal Microphone” in my Sys Prefs Sound > Input pane but I do have “Line In”. I chose that. My output was already set to Headphones. That one change got rid of the issue and my ATV app is now running with sound.

Thought I’d leave this here for future googlers.