Archive for the ‘tvOS’ Category

Apple TV: Exploring physical activity

Incorporating, or more accurately trying to incorporate, physical activity into a tvOS app isn’t easy. Apple TV is no Kinect or Wii. At this time, about the best you can do with “native equipment” is wave a Siri remote around in the air or pop it into a pocket and use it as a kind of pedometer when walking on a treadmill or in place.

I spent a bit of time reviewing some of the “greatest hits” of physical TV gaming from walking companions to boxing/cheerleading games (would be much better with a secondary nunchuck) to yoga/balance and so forth. The best of these look at a lot more than a single arm-action point of control.

If you don’t mind going cross-system, of course, you can use motion features already on iOS and project them (directly over AirPlay or indirectly through Bonjour, etc) to a tvOS app but we’re already now talking bigger, bulkier, more planning, less impulse use, and less tvOS “app” design.

In theory you can use a wrist strap of some kind with the Siri remote and rely on arm motion to model physical activity. The chances of flinging the remote remain quite high unless the remote is physical tied down to a forearm, requiring a well-designed physical adaptor.

Conclusion? At this point, Apple is wasting a strong health branding component with its Apple TV product. Between the watch, iOS Motion, and Health Kit, Apple TV should be much more proactive than apps limited to logging meals (still easier to do on an iOS device) and offering coaching advice.

Opportunity wasted, premature entry onto the market, or simply wrong aim/branding?

Apple TV Store update: Commerce watch

So, after about 6 sales total, I made my app free. 3 sales days later of 6 total sales days, and I have sold a total of 41 units. Total proceeds to date: US$8.14.

Screen Shot 2015-11-16 at 2.11.38 PM

I averaged about 2 sales a day (paid) before going free and about 10 sales a day after.

So how does this massive sales surge affect my chart standings?

Still not in TR:

Screen Shot 2015-11-16 at 2.16.59 PM

But HEY! I made it into TRI! Woo.

Screen Shot 2015-11-16 at 2.16.49 PM

And with TRIV, I’m basically SMOKIN’. Look at me there in position (2,2).

Screen Shot 2015-11-16 at 2.16.36 PM

So this is apparently what 10 sales a day gets you on the Apple TV app store.

I didn’t see “Triviata” in the Top Free Apps on Apple TV itself, but according to Slide To Play, I’m #77 on games:

Screen Shot 2015-11-16 at 2.21.33 PM

tvOS dev: Removing “transparency” for top shelf image

Have you gotten an odd complaint message about image transparency for your decidedly non-transparent top-shelf image? Do this:

  1. Open the file in Preview.
  2. Choose File > Export
  3. Select PNG
  4. Uncheck Alpha
  5. Save

Screen Shot 2015-11-15 at 2.50.30 PM

This creates an RGB  version vs the original RGBA version. Use Finder’s Get Info to view the difference.

Screen Shot 2015-11-15 at 2.55.30 PM

Replace your old image with the new one and Xcode stops complaining.

Weekend Posts

New github repository, Triviata price update, and more about app discoverability

After a couple of days of “sales”, Triviata has not proved to be a huge success on the tvOS App Store. I’m shocked, I tell you, shocked.

Screen Shot 2015-11-13 at 7.35.30 AM

Even worse, Triviata has dropped several places on the “TRIV” store search due to new competing products.

Well to hell with that.

I’ve decided to take the classic route of dropping the price to free for a while to see if it can gain store position. (Good thing this isn’t a serious business investment and is more a way to explore the store because…golly.)

Please grab a free copy and let’s see if I can push this baby up the charts. For science! And kittens! And feels!

After updating my pricing details on iTunes Connect, I spent significant time checking whether the listing had updated. That of course was a major pain. The Apple TV app store is not, how shall we say, “friendly”.

So I used my “link opener” opener, which I described in this post to jump directly to the app listing. Because why not jump with a single “Go” button rather than laboriously typing T, then R, then I, then…you get the picture.

Since I’m probably not the only person who will ever be doing this, I’ve put the link opener utility on github. And then I got inspired. What if I could just put a search term in instead and see the search results without the whole scrooooooooollll click scrolllllllllllllclick search routine.

I tried (and I mean really tried) to hack together a solution for searching the store from an app but could not come up with anything. While URLs based on MZSearch.woa are legal and recognized by UIApplication, they lead nowhere meaningful. You get an App Store icon, a spinning wheel, and then nothing.

In similar matters, I have yet been unable to find a way to scrape Apple TV top charts and search results yet. And no, you can’t just sync a Bluetooth Keyboard to your ATV, a decision that completely mystifies me.

Oh well.

In any case, let me know if you find the repo useful and please do download a free copy of the app. I want to run more experiments and I can’t do that when my app isn’t even visible. Thanks!

tvOS: Designing for Groups and the Living Room

For the most part, and I don’t mean to be overly critical, there are better ways to pass your time than with most tvOS App Store offerings. This weekend, I decided to put together a small game. More specifically, I wanted to create a game that highlighted a few key design points.

Realities

When it comes to tvOS, you must accept a few basic realities:

  • Users sit relatively far away from the TV. It’s vital that you test your app from across the room and not just at your computer.
  • Users cannot touch the TV. Well they can but it isn’t part of your app interaction and it gets the TV dirty.
  • Users will at a minimum have a remote control on hand, probably a Siri remote. All apps must be written with that as a common denominator. Given Apple’s controller policies, I don’t really see hardcore gaming taking over the Apple TV platform any time soon. I made sure that my game worked with the old style Apple remote as well as the Siri remote.
  • Users may get up and go grab a soda or hit the bathroom at any time. It’s nice when the game waits for them to come back.
  • There may be several people in the room at the same time. An app shouldn’t be single-user centric. I see far more opportunities for integrating the platform into family and social situations, even for single-remote apps.

It’s these social situations in particular that got me thinking about living room play, and how some lessons of Wii Party/Mario party might transfer to tvOS. With multiple people present, you’re never going to fully immerse yourself in a game, but that’s not really a bad thing. I love apps that bring people together and enable them to interact both with the app as well as each other.

Slow Gaming

I decided that I wanted to write a slow game. I first heard about “writing slow” when doing background research for a write-up about A Dark Room. Although I don’t think tvOS is well suited for the kind of play-by-waiting game that A Dark Room represents, the notion of programming around time and its passage really grabbed me.

So I started thinking about what it took to slow down my trivia game to make it more suitable for playing in the living room with other people around, allowing time for talk and debate. I added a lot of “wait fluff”. To pick a category, you spin a wheel.

Screen Shot 2015-11-11 at 2.31.14 PM

Each question is delivered into place by a helper. Questions don’t just pop onto the screen:

Screen Shot 2015-11-11 at 2.31.24 PM

Questions slowly fade into view and when you answer, the answers fade to reveal your results. After that, the continue button takes a second or two to appear, letting you absorb before moving on.

Screen Shot 2015-11-11 at 2.31.29 PM

Designing for Discussion

As a big motivation, I didn’t want this to be a single player game. When testing it with my kiddos, I observed their “skinner box” impulses of “answer/reward/answer/reward” and designed against it.

As I introduced each pacing change, the game itself changed for us. It was still a bunch of trivia questions but now we started talking about the possible answers, which ones we thought were right, and weighing our choices because we were no longer under any pressure.

I also opted to eliminate all scoring and “rounds”. Nothing ties you into to this app. You can hop in, play some questions, and hop right back out. It’s stateless: much more like a deck of trivia cards like the ones you might carry along for a car trip than most of the other offerings on the app store.

That casual in-and-out makes it a lot easier with social situations. “Wanna play a few rounds of trivia” creates a much lower entry point than “Let’s play a fully structured game”. In this, the game serves the people playing it, and not the other way around.

Simplified Interaction

Unlike touch-based apps, I wanted Triviata input to be as simple as possible. I was in a mindset of “be the remote, respect the remote, limit the remote.” In fact, I reduced the entire interaction language to clicks. There’s a lot of clicking in this app.

Screen Shot 2015-11-11 at 2.30.57 PM

Of the six buttons in my app, two of them are automatically selected for you. They never feel like “real” buttons, such as the “Click to Play” on this screenshot, which uses a custom button style to avoid highlighting.

The other four buttons (the answer buttons) use strict up-and-down selection. I could have built much more complex gestures but I needed interaction to be brainless and intuitive. I wanted to deliver lightweight access to the questions and answers.

I ended up chopping out a lot of code that didn’t make the final cut. I’ve got some nice work done on other interaction styles that I may end up using elsewhere (for example, rotating the controller to pick from a dial — this can also be used to “drive” the remote when held sideways as a steering wheel). I’m not at all upset that I ditched everything. I think there’s a lot to be said for simple.

Whitespace

I also went simple, simple, simple with each screen. Lots of whitespace, few on-screen elements. As a point of comparison, consider this screenshot from a competing app. This is a ready-for-gameplay presentation.

Screen Shot 2015-11-11 at 2.07.03 PM

Imagine trying to read that from a normal couch distance. I’ll give credit for their Jeopardy set-up for structured gameplay but even this felt way too busy:

Screen Shot 2015-11-11 at 2.43.12 PM

I like the design on this one a lot more but again, think about those small text features when placed across a room:

Screen Shot 2015-11-11 at 2.39.56 PM

This next app opted out of multiple choice. You have to “think” or shout your answer before it’s revealed. That’s actually an intriguing way to involve group dynamics…

Screen Shot 2015-11-11 at 2.41.42 PM

Of the apps that aren’t actually my app, this is probably my favorite presentation. They went with timed questions. I went more zen. I do however like the clean setup and the gray “whitespace”.

Screen Shot 2015-11-11 at 2.44.55 PM

Wrap-Up

In the end, I expect to sell all of about 6 or 7 copies of my app. (Thanks for the coffee money!) It really was more an exploration of design and interaction principles than full-blooded app development, even if I think the end-product is fun to play.

If enough people buy the app, though, I promise to use some of the money to buy better trivia packs. I used public domain ones and some of these questions date back to the neolithic periods and not in a good way.

Got feedback about my app in particular or tvOS design in general? Let me know.

Generating and Redeeming tvOS Promo Codes

Generating Codes

Navigate to iTunes Connect > My Apps > Your App > Features (top tab) > Promo Codes > Generate

Redeeming Promo Codes

Don’t even dream of redeeming these on Apple TV. Just hop into iTunes or if you’re on iOS, into App Store, and redeem them as if you were working with an iOS app.

Then, return to Apple TV, open the App Store, and find the listing for the app in question (see previous post about how annoying this is Update: Or just use Robert Jen’s genius approach: Look under  Purchases/Recent Purchases). It will be ready for you to install.

Finding Triviata on the App store: a discoverability quagmire

Triviata went live overnight, so today, I thought I’d explore how hard it is to find. Thanks everyone on Twitter who helped out as well.

Obviously the best way to promote discoverability is going to be through a partnered app on iOS but I thought I’d explore things from the perspective of a tvOS-only app.

Following Links

iTunes Connect does provide “View on App Store” links. For example, you can try following this Triviata link but if you open it on a Mac, you get this:

Screen Shot 2015-11-11 at 9.34.47 AM

Oops.

Talking to Siri

Since I anticipated that Apple TV store discoverability is pretty low, I decided to try working first with Siri. And, unfortunately, Siri is not going to help. Can Siri find a trivia app? No, she can’t.

Screen Shot 2015-11-11 at 9.12.43 AM

To get this far, you must say”Siri, what can you help me search“. This is the magic phrase that pays. You cannot say:

  • What kinds of things can you find?
  • Can you help me find a trivia app?
  • Search for trivia in the app store

Screen Shot 2015-11-11 at 9.15.19 AM

Nor can you try to go in sideways by searching the web:

Screen Shot 2015-11-11 at 9.37.07 AM

But you can say “Find Trivia” and it finds you this.

Screen Shot 2015-11-11 at 9.16.44 AM

Great, Siri. That’s exactly what I was looking for.

Update: Hunting around through the Apple TV internals, I found this:

Screen Shot 2015-11-11 at 10.20.58 AM

So clearly App searching with Siri is something that has been thought about if not implemented. (Right now you can use Siri to launch apps but not search in App Store as far as I can tell.)

Searching in App Store

So I hopped into App Store to see what it took to find Triviata. You’re met with the horrible, terrible, miserable, no-good text entry field.

Screen Shot 2015-11-11 at 9.18.05 AM

Tip to the wise? Start your app names with ZZZ. Just do it. Because.. ugh. Regardless, I stupidly named mine Trivia. Let’s start typing.

“T”. Nope. Nothing there.

Screen Shot 2015-11-11 at 9.08.39 AM

“TR”.  Nope.Screen Shot 2015-11-11 at 9.08.44 AM

“TRI”. There’s now lots of trivia. But none of these are mine. How many people do you think are going to go for another letter? Nope, me either.

Screen Shot 2015-11-11 at 9.22.14 AM

“TRIV”. Oh there it is. Kind of. Bottom left corner. Hi there Triviata-if-you-scroll-down.

Screen Shot 2015-11-11 at 9.10.03 AM

And here’s its listing on the store:

Screen Shot 2015-11-11 at 9.31.02 AM

So it’s there if you can find it. Good luck finding it.

Hopping in Sideways

Next, I thought I’d try to use some lateral thinking. What, I thought, if there were an indy group helping to promote apps. Yeah, I know this has a zero chance of getting through Apple approval, but what if… So I wrote an app to test the concept.

Here’s the code:

Screen Shot 2015-11-11 at 9.54.51 AM

And here’s it running on Apple TV:

Not too shabby, right? Pity this has a zero percent chance of being a reality because it would be nice to be able to search on a Mac, send over a few URLs to a server, fetch them and navigate to them on Apple TV.

It is impractical, isn’t it? Let me know in the comments or a tweet/email.

I’ll be posting more about design philosophies, the limits of remote-only interaction, and how to generate promo codes in following posts. This one is already getting too long.

Lessons from Xcode: Don’t submit from El Cap beta

Screen Shot 2015-11-10 at 11.29.04 AM

Even if your toolchain is completely valid, compiling on the wrong OS can kill you. After figuring this out (thanks Twitter friends!), I ended up wasting a half day downloading App Store El Capitan, installing it, and then waiting a full hour to see if the newly compiled version passed the test. (Man, “processing” is slow these days.) It passed.

So in total, I spent half of Sunday, most of Monday, and half of Tuesday building Triviata, a little app for tvOS.  I figure about 2 days building the app. And then another half day trying to get the damned thing into App Store. By my calculations, that makes it:

  • 80% of the time building and testing the app
  • 20% of the time submitting it to iTunes Connect.

(My first all-Swift app by the way — finally decided what the hell, it’s small enough that language updates won’t kill me and if I need to, I can pull it.)

Thanks Geykel, Andreas Amann, and Denis Stas who pointed this out. I didn’t have the nerve to test the following, but thanks to @hirakujira too.

Screencasting AppleTV with join.me

Today, it occurred to me that I could use a web tool like join.me to share the contents of my headless Apple TV unit by broadcasting the QuickTime window I use. The free version of join.me offers reception for up to 10 people in an ad-hoc meeting, so I sent out a call for help and got a few people to pop in and offer feedback.

You join the meeting using a link supplied by the website. It took most testers a minute or two to hop in.

According to those testers, the results were fairly low quality and occasionally choppy. “It was clear at all times other than the choppiness,” one tester told me. Another said he got about 4fps at best. Artifacts were particularly noticeable during animation sequences:

Screen Shot 2015-11-09 at 6.44.55 PM

But during quieter moments, the screens were pretty readable:

Screen Shot 2015-11-09 at 6.46.00 PM

All in all? Not ideal, but promising.

Broadcasting a QuickTime screen this way isn’t limited to AppleTV, of course. QuickTime can render any iOS device screen for most modern lightning-based devices. So if you have an iPad app or iPhone utility you want to demonstrate in real circumstances using realworld interact, this is an interesting way to do so.

If you do give this approach a try, drop me a note and let me know how it goes for you. I suspect this will work best for screens that do little animation and are primarily text-based.

Thanks ajfoul, Lyle, Jonathan, David, August