Archive for November, 2015

I just bought a subscription to Cloak VPN

It’s that time of year. All my services subscriptions are either ready to renew or it’s about time I review what I’m paying for year-round. I currently have three especially problematic services:

  • VPN (hard to connect to, iffy  service, interference with Google),
  • Offsite backup (Java engine that completely destroys my Mac and creates a wind tunnel — I’ll probably be switching to Backblaze soon), and
  • An Internet provider whose service degrades if more than three people look at my site at once (I’ve heard good things about Digital Ocean, if you have alternate recs I’d love to hear them).

I’ve been with all three current providers for years and years. As of today, I’ve now managed to ditch at least one of them. Today, I threw my credit card at Cloak VPN. I’ve been testing the service for the last week and I’m hooked.

It’s a very Apple-aware iOS-designed provider. (I haven’t used the OS X component because my daughter, as you might have read here, has appropriated my laptop so I’m currently laptopless.) Most importantly, the service just works. When I connect to an untrusted WiFi network, the VPN service automatically switches on. When I’m home to my recognized WiFi, it switches off. Cell service is automatically trusted as a default setting.

In my daily life, I’m surrounded by attwifi and xfinitywifi hotspots. Now, my iPad knows that it can automatically connect to these and switch on my VPN cloak. Yesterday, as I was sitting at the car shop, I suddenly noticed that my iPhone was getting unusually good response speeds. Turns out that it had connected to a recognized big-name hotspot provider and sure enough, cloak was already there and protecting me.

This morning, Cloak got my money.

Service plans start from $2.99/month for 5GB bandwidth but if you consume a lot of data, for example with a laptop or at home, there’s an unlimited plan at $9.99/month or $99.99/year. The plans extend to an unlimited number of devices but they are one-person each. The company politely requests you don’t buy a single plan for an entire family, company, or dorm.

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

Review: em notes for Dropbox

I continue to struggle with “work on the go”. Daughter has taken my laptop (although that itself was not an ideal solution), leaving me with just an iPad and keyboard to work with away from the house.

When your brain and fingers are absolutely wired for Emacs editing, it’s a frustrating experience to have to work on the iPad, with all its touching. As a touch-typist, any time I have to move my hands away from the keyboard, it feels like I have failed.

After some searching around App Store, I eventually downloaded a few Emacs-style editors. Of these, em notes (about five bucks) offered the best solution. It links with your Dropbox account and enables you to edit text in an application folder there, ensuring you can load and work on documents and have them available as well in the “real world”, aka anywhere you’re not working on an iPad.

The app by Daisuke Kawamura is not entirely ported to English. Expect to find a few non-localized menu items and help write-ups. Despite that, and despite its Engineer-looking bare-bones design, it represents the best I could find for now although I hold out hope for better.

The fonts are adjustable, it integrates well with the system pasteboard, and you can disable the alternating blue and white lined background which caused me irrational anger. The key bindings are settable to either True Emacs or Mac-style, which is a really nice touch.

I could not get rid of the carriage return symbols which continue to haunt and irritate me and the app doesn’t respond to Command-N to create new files. Argh.

There’s a cool little feature for renaming files that I discovered by accident, by the way. Just tap the name on the navigation bar and it transforms into a name editor. Nice.

If only, the app could export a keyboard for other apps that supported Emacs key entry as well, it would come close to ideal. As it stands em notes isn’t pretty or perfect but I’m glad I forked over the money for it.

A few unrelated points:

While I’m writing about keyboard entry, I’d like to point out how frustrating keyboard-based iOS spotlight is. You can hop into it using Command-Space, just like on a Mac, but it’s slow as anything and if you’re trained to follow that launch with the text you’re searching for, 99% of the time, it will type into the currently active program instead of Spotlight because, yes, Spotlight launch really is that slow.

Once in Spotlight, there’s no way to navigate search results by the keyboard, so you have to reach around and touch the screen to pick the item you’re hunting for. So annoying.

As I was testing text entry today, I realized how far away I  keep my monitors. The relatively small size of the iPad normally doesn’t bother me because I  interact with it much nearer than I would with a proper monitor.

Using a stand and keyboard made it almost unusable for my eyesight because the iPad was pushed back so far. I think this is one of my major issues with laptops in general too. I tried setting up the iPad to my left to get it closer but it just gave me a sore neck.

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.