(Alternative title: concurrency and queueing is hard)
Cold pizzas at 4AM, so many queues, dirty cheats, jumping over seats, a touch of chaos and… some famous blood.
(Alternative title: concurrency and queueing is hard)
Cold pizzas at 4AM, so many queues, dirty cheats, jumping over seats, a touch of chaos and… some famous blood.
Late to the party, I recently bought a Nintendo Switch for my two daughters, aged 14 and 17, to play some “deeper” games than are available on iOS and because frankly they’ve run out of TV to watch in these trying times and they recently had fun playing a friend’s Xbox.
The Switch immediately showed me a glaring hole in Apple’s mobile/home ecosystem experience that I really hope they fix by pivoting the Apple TV experience a bit.
TL:DR; Apple should provide a wireless charging dock for iPad/iPhones that connects to your TV and automatically activates it when the device is put on the dock — just like the Switch does.
First off, I was amazed at how fluid this experience was with the Switch. They were playing a game, our TV was off. They put the Switch in the dock and the TV wakes up and there is the game on the TV. We grab the Switch again to go into another room and they’re still playing, and the TV has gone back to sleep. (Am I a CEC unicorn or have Nintendo just got this right?)
The user experience is so simple, so free of waiting and complication that it is pure Apple. Except it isn’t, it’s Nintendo. In my opinion this is the only thing interesting about the Switch (hence its name, in part) other than the quality of some of the games, which is a separate issue for Apple to try to resolve.
Nintendo/console lovers will say I’m missing the whole controllers issue but colour me unimpressed by the complex, fiddly and frankly uncomfortable to use array of gadgets and plastic crap that come with the Switch joy cons. It works, it gives you options, but it’s not great at all for many reasons not least ergonomics.
Apple want to be on your TV, that much is very clear whether its Apple TV+, Apple Arcade or “the future of TV is Apps” (hmm). The current experience however is vastly inferior to this simple “drop your iPad into a holder and boom” approach for TV content consumption and games. The whole multi-profile tvOS and ever-flakey AirPlay and rarely-supported external display APIs looks like a massive over-engineering of the problem in the face of the physically simple Switch solution.
To be clear here; I am not a hardcore gamer and I have not owned a console since Sega Megadrive in the 90s. I am very skeptical about the long term viability of console-grade games because of their high unit cost and amount of time investment for players. Casual iOS-style games are clearly a much bigger market. I am essentially “anti-console” as I think the iOS user experience, costs and multi-purpose nature of the devices is vastly superior.
However this Switch experience is just fantastic and shows AirPlay and Apple TV to be really poor relations.
Imagine dumping your iPad into a charger by your TV and the Netflix show you were watching just carries on playing on the TV. You grab a remote or controller and switch to a game.
You pick up the iPad and carry on playing with on-screen controls as you walk to the kitchen. This is all basic Nintendo Switch behaviour.
I think Apple missed a trick here and there would be great value in a device like this – whether or not it has an Apple TV “inside” or not is to some extent moot because iOS can do all the things tvOS can, even the new mouse support in iPad OS alludes to tvOS focus input methods. Obviously there remain controller issues for “console-grade gaming” but like I said that is not really what I’m talking about here.
In family situations where there are TVs in kids’ bedrooms and the kids have phones or iPads (but iPads in particular) this would be a no-brainer purchase for many. You could sell several per household and the whole family would be using the iPads even more, seamlessly on the TV or in their hands. No need for an iPad charging cable in their rooms.
I realised you can probably hack this up right now on the hardware side with a Lightning-to-HDMI adapter and a wireless charging pad – but on the software side you’d need better support for external displays and tvOS-style controls. Games that support controls might “just work”. The wireless charging is only available on iPhone of course… might be worth experimenting with though.
A lot of people in Stroud are telling anybody who wants to vote for Green Party candidate Molly Scott Cato that they are going to result in us having a Tory MP again.
It seems obvious, until you dig into the facts and the current opinion polling numbers. Make up your own mind based on the truth, not the UK’s old self-sustaining two-party politics.
I made a short video to explain it to anybody who is concerned. Please share this widely!
If you are at all unsure about voting for Molly you really must go and see her speak and one of several free events in the run up to the election. What have you got to lose? OK, well there is Climate Emergency…
I’ve not been to a hustings before, and I thought I’d write up my impressions of it.
The candidates attending are:
The first very significant thing is that in Stroud we have three female candidates and only one male! This is a sign of progress whatever you think of the party policies.
One of a series of posts about our next app as we make it. It’ll include some details about our technology and design choices and challenges.
Since I added some functionality to Bloop that uses Flint, we have been getting Flint’s detailed logging for free. You can however have too much of a good thing.
By default Flint’s logging will let you know when every action you perform starts and completes or fails. As I have added actions for some of the on-screen controls that show in our content player, the console output has become a bit too noisy.
Flint’s logging lets you toggle logging levels per-topic (a Feature is a topic) at runtime, so all I had to do was call this for the features that are too noisy and set the log level to warning
on those, as I want debug for everything else in the app at the moment.
What we were getting was a mix of our on-screen controls logging as well as output from Flint’s internal workings.
🐞 16:58:18.428 Debug • main | Activity 'Dispatch' | OSDFeatures/PlayerOSDFeature/#ShowPlayerOSDAction | Starting | State: XXXXXX
🐞 16:58:18.428 Debug • main | Activity 'Dispatch' | OSDFeatures/PlayerOSDFeature/#ShowPlayerOSDAction | Completed (success (not closing action stack)) | State: XXXXXX
🐞 16:58:18.428 Debug • N/A | Activity 'Intent Dispatch' | FlintFeatures/SiriIntentsFeature | Action completed but did not return an intent to donate: Request 5 for PlayerOSDFeature action ShowPlayerOSDAction
The fix was very simple, but I had forgotten my own Flint API for this and hadn’t yet written up Flint documentation for it, so I added it. I changed my code so that the App delegate does this:
FlintFeatures.setLoggingLevel(.warning)
OSDFeatures.setLoggingLevel(.warning)
All features that are sub-features of those feature groups are now quiet as a mouse. All the other features of the app retain the default logging level.