Re-examining great design and technology end-of-life support.

This post originally appeared on lucasmcgartland.com

“Hey Siri, can you play audio from an aux input?”
“I’m sorry Luke, I’m afraid I can’t do that.”

Like a radioactive isotope, we’ve reached the HomePod’s first half-life.

Apple’s announcement to discontinue the original HomePod hardware yesterday was jolting, but not surprising for many HomePod owners. This was a moment expected from the beginning.

Launched in 2018, the original HomePod smart speaker had limitations that only the most loyal Apple fans accept. Apple’s subscription music service, Apple Music, and AirPlay (a closed-source, proprietary P2P streaming protocol), were the only two ways to play audio on HomePod, with no way to connect an aux or Bluetooth input. …


A jukebox in the cloud

Beats Music, we hardly knew ye. A music streaming service ahead of its time, Beats Music was unceremoniously replaced by Apple Music after Apple acquired Beats in 2014. I’m a huge fan of the design and user experience, and I think it holds up well despite being nearly four years old.

For a talk I recently gave about developing user interfaces with React, I thought it would be fun to use React Native to recreate the Beats Music interface, specifically the “Sentence” feature.


Illustration made with Paper by FiftyThree

GraphQL is an amazing way to query and manipulate data. You describe your data, ask for what you want, and get predictable results. The problem is, GraphQL only handles serializable data out of the box—there’s no way to upload files directly as part of your mutations.

But what if there were a way to combine the power of GraphQL with the ease of uploading files in a multi-part request? @jaydenseric has come up with a solution: graphql-multipart-request-spec

If you just want the code to make this work, jump to the end of this article to find JavaScript and Python implementations…


Note: This guide assumes you’re living in the walled garden of Apple and are using macOS and iOS devices, but the principles are the same for Windows and Linux.

If you’re like my amazing friend Sarah Kassel and hosting your own Facebook Live comedy show — sometimes a single smartphone camera setup for Facebook Live isn’t enough. What if you want to show different camera angles, cut to the audience, or overlay graphics? Using open source software, you can create a studio level experience and increase the production value of your Facebook Live streams.

Stream to Facebook Live from OBS Studio


How to write an iOS, Android, and web app simultaneously while managing a design system (and throwing in some virtual reality fun for good measure).

Imagine this: You’re an engineer at a small startup. You’re in charge of both designing and developing the front-end user interface for your product. And your product relies on being available to everyone on every device as part of its value prop. How are you supposed to build a platform with so many targets?

The Bee App

The Bee App is a digital VIP pass for your favorite brands. It allows brands to deliver stories, host contests, and release exclusive products directly to their top tier fans (think the Nike app for every brand).

Regardless of how a user accessed Bee, our…


Apollo Client 2.0 provides many great features out of the box

If you use GraphQL, you’ve probably heard of Apollo Client. Apollo is fantastic for React projects because it can be incrementally adopted, has a great community, and great documentation. However, with the release of Apollo Client 2.0, there were some breaking changes, including the method of extending the interface to support your own access token/refresh token authentication flows.

A common method of authentication on the web is JSON Web Tokens (JWT). A user logs in using their username and password, and gets an access token and refresh token in response. The client then uses the access token for any requests…


In previous versions of Apollo, a Redux store could be used as the caching layer for Apollo Client. However, this no longer works with Apollo Client 2.0 as Redux support was dropped as to remove the dependency for developers who didn’t want to have to use it. You can read more about that decision here.

To use Redux and Apollo Client 2.0 together, you simply have to wrap your Apollo Provider with a Redux Provider like this:

<Provider store={store}>
<ApolloProvider client={client}>
<YourComponent/>
</ApolloProvider>
</Provider>

Integrate both providers with Wix Navigation using Higher Order Components

You can use a Higher Order Component (HOC) to reuse the logic wrapping your component with…


One of my favorite features of my phone is that it automatically measures my steps without me ever having to open an app. Recently though, I’ve been wanting a metric for measuring upper body activity and performance that can be automatically counted like pedometers can for steps. I use a lot of bodyweight exercises in my workouts and realized an automatic counter for push-ups and pull-ups would be extremely helpful for tracking my progress. Thus went the ideation for “Swole”, a pedometer for pushups. …

Lucas McGartland

Inaugural class @USCIovineYoung • Co-Founder, CPO @thebeeinc • Innovation/design @viasatinc • www.lucasmcgartland.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store