Using Drafts and Workflow as a clipboard manager.

As I continue to play this little game I’ve created for myself in which I try to use and install fewer apps while discovering new ways to use the ones I love, my latest run is based on replacing a dedicated clipboard manager app. While I do really like Copied and other apps like it, the truth of the matter is that I don’t need an app solely devoted to holding and managing snippets of information like this. I do occasionally have this need, and so it’s something I like the idea of having, but it’s almost only for text/links, which I can do in a variety of ways.

The trick is storing the snippets, but also making them accessible and easily retrieved, and because of the way iOS works, we’re limited in a few ways. Any app that does this can only run in the background for so long, and even if you’re using a widget for this, there’s only so much room in the UI to account for the things you can do without launching a full app UI. But since my specific needs are limited, I’ve experimented with pairing Drafts and Workflow together: one as the snippet storage and one for the quick access to my most-used bits of text.

A quick note: I think it goes without saying that if you use an app like Copied for images and other rich media, this wouldn’t really work for you. This is really centered on text, and the impetus for this was restoring my iPhone recently and for the millionth time not having my iCloud text expansions appear. Given that my needs are fairly limited anyway, I’m giving up on that broken-ass bullshit and building a replacement with the tools that I know will work. I still don’t understand how this far along and with all it can do having iCloud remember a three-letter shortcut for my email address and making it available on new devices consistently is such a fucking Herculean task.


Drafts as the library

I used to use TextExpander. I also used to have a million snippets I couldn’t remember. Then I decided to simplify and keep only the stuff I could. Once I realized this was a relatively small number of items, I decided to use the native iOS keyboard expansion for shortcuts. As you can see from my above comment, when it works, this is more than adequate for my needs. However, all too often I restore a device or set one up and I never get the shortcuts. Or they show up a month later.

But Drafts is always there. Building on my thinking for how I was using filters to move tasks out of my inbox, I created a filter to separate these text snippets out too. I liked the way Copied allows you to have a title for the snippet, so I created that same structure in Drafts. I just added a tilde to the end of the title line.

Along with that, I needed an action that would copy the body text but ignore the title line. Drafts has just such an action built in; just use the clipboard replace action, and instead of the draft tag, use the body tag. This takes everything but the first line and sets the clipboard.

From here you can go wherever and slap it in. You can even search right within the filter if you have a lot of these.

Workflow for quick access

So that takes care of the storage and the occasional browse to find a thing you want. The other time I need this ability is when I’m doing something in another app, and the easiest way to do this is with a widget. I headed over to Workflow and built a very simple list of some frequent snippets that loads right in the widget body, replaces the clipboard, and can be dismissed immediately. I noticed that 15 lines is the max I can fit in one of these on my iPhone 7; any more beyond that and you won’t see everything. Again, my needs are simple, so this is fine. What I’ve done is build a multi-step action that first asks which list you want to display, and then displays the snippets in that list.

The simplest way to get started is to just do a basic text list, add the exact text you want, and have it replace the clipboard. But you could also use the text list to show a label, and then add “Replace Text” blocks for each one, and then send the replacement to the clipboard. This would work better if you had bigger blocks of stuff that you weren’t going to see anyway, or if you just like things looking tidy. (This was Tim’s idea, I like it; I like tidy things.)

What I’ve described is two separate sets of actions that manage this content. Now you can can get Workflow to talk directly to Drafts by using the “Get Contents of Draft” action. This requires you to copy the UUID of the draft you want and place it in the action. This would be true automation, and way more fun. Unfortunately, when you do this, Workflow can’t grab the content directly from Drafts without first switching to the app, so you leave the widget and do a quick round-trip, which defeats the whole purpose of having a widget action in the first place. So I chose a few of my most-used snippets for access within the widget and spent the time up front to save it later.

Now, you might be thinking: boy, that seems like a LOT of dumb work to do just to get the same functionality that a single app can provide, and you’d be totally right! It is. I will not argue this, not even a little. But, there are two reasons I like this.

  1. I always have both of these apps installed, which means they’re always on every device anyway, and it’s one less app to install/manage in addition to that.
  2. Every time I do this kind of thing, I figure out new things. In many cases, these dumb little experiments end up allowing me to refine something else I might have been doing already. This feels good.

Finally, I figured I needed a quick way to make adding snippets easier, so I created a basic Workflow that asks for input or grabs the clipboard (assuming I’ve copied what I want), asks for a title, and uses Tim’s nifty Auto-Archive action to dump the filtered draft in the right bucket.

Needless to say, since Tim and I go back and forth on this stuff all the time, I’ll drop an idea on him, and he’ll latch onto it and improve the flows.

So he figured out how to construct the text as a dictionary, and have Workflow present the list and pull the right text that way. Which means you can build a single text file in whatever app you want containing the labels and links/snippets/etc. and then just drop it into the leading text block in the workflow. This makes things very easy and nice. Here’s the template for that.

And then sometime later I went to bed. But he didn’t.

I woke up to a long message and a few links. One to a new Drafts action and one to a Workflow that’s called by that action. Basically, since Workflow can’t get the info directly out of Drafts in the background, he thought to create a text file that Workflow could access in the background, and stuck it in its iCloud folder. Within that text file is the dictionary, containing the names of the text snippets, and the corresponding values for them. You can store these files in Drafts, and update them whenever you need to. Save the file again to that same folder in Workflow’s iCloud storage, and it’ll overwrite. The next time you run the workflow, it calls the new information from that file. It’s still not quite directly linking the two apps the way you’d think you should be able to, but it’s damned creative, and I told him so. And it’s way easier to edit the dictionary within Drafts than in a tiny box within Workflow.

As far as I’m concerned, that’s the best way to do this: maintain a text file (or a series of text files for whatever you want) in Drafts, save out changes to Workflow’s iCloud folder, and the updated versions are always available when you want them. If you want to keep this in the widget, you’re still limited to the row number, but if you don’t care, you can have a list as long as you want.

I realize it seems circuitous and somewhat silly, but the whole point of all of this is to play and learn. The game of reducing apps has a direct benefit in that every time I restore or set up a new device, it takes less time to get up and running. But these small excursions also allow me to think through problems and find new ways to solve them. Some people engage their leisure brain with crosswords or sudoku. These are the little puzzles I like to solve.

Update 2017-01-13: I realized a week too late that I was mistakenly referring to dictionaries as arrays. So I corrected this egregious mistake. Sorry about that.

Using Drafts, Reminders, and Slackbot as a task management system.

I know, this sounds like a fever dream. Stay with me. I promise it’s headed somewhere.

Over the summer, I made the decision to split my work and personal tasks between two separate systems for a lot of reasons. It’s stuck, and I’m really happy with that decision.

I also decided that in terms of thinking about personal tasks, a basic hierarchy is all I need. There are things that need to get done by a certain time, and then there’s everything else. I was using OmniFocus for this to great success.

But if I’m honest with myself, I’m still over engineering things. Work stuff, ok, there’s other people and dependencies, and lots of other things at play. But my life? At home? I essentially need lists, and that’s about it. Simple, basic lists. With the occasional nudge to do something once in a while.

I’ve also been (re)drawn to the idea of using as much of the stock OS as possible, which means I’m looking at Reminders for things. I’ve been down this road before.

Reminders is great because of what it does, which is exist on all your devices without a bunch of extra effort and mostly capture things in a reasonably expedient manner. But what it doesn’t do is allow you to make changes to those items easily and quickly. Or sometimes sync reliably (I had weird duplication of tasks, and stuff marked as done come back from the dead multiple times). All it takes is a few cracks in the facade, and I’m running. So while in principle, having all those unchanging things (bills, medication alerts, household stuff) always available on any new device via iCloud, it just didn’t feel like enough to take the throne.

iOS 10 seems to have fixed a lot of the weird behavior I noticed previously. Also, if I’m not forcing Reminders to be a system it’s not–i.e., using it for what it’s actually good at–I can actually derive an incredible amount of value from it. Here’s what it does well: it reminds you to do stuff. If an alert fires, and you don’t dismiss it or complete it, it hangs out on your lock screen until you do. Every time you look at your device, it’s there, like “hey, yeah, hi, don’t forget this thing”. Simple, quiet, persistent. I like this behavior.

So anything with a date/time/location goes in Reminders. Easy enough. But what about this part:

what it doesn’t do is allow you to make changes to those items easily and quickly

Well. I had a good think about this, and realized that if I’m using this tool correctly, chances are I’m not making changes, but I do still need a little flexibility in assigning those dates and times. So as always, I turned to Workflow. In minutes, I had built an “add reminder” action that I can trigger anywhere from the widget that asks for input and either presents a list of my most common times for an alert or one of three most-used locations (home, office, pharmacy).

I can add a new reminder, with the right alert, in about half the time. It’s freaking great.

That brings me to all the stuff that doesn’t need an alert, but has to get done at some point, or at least should. From that same post:

More disappointingly, even though I adore Drafts more than life itself, it really isn’t the place for me to house my tasks and take action on them. The idea of a single Markdown list of the things I want to do was intoxicating, but it didn’t fit with my mental model of how I manage things I actually need to do.

Once again, I was trying to make a tool do something it shouldn’t. So I changed the way I thought about these lists. I need to keep these lists handy, and they don’t always require action but I need to remember to check them (in GTD, this is a “review”) occasionally. I’m in Drafts all day long, for a million reasons. I’d never tried filters before, so I decided to give this a whirl.

Not one list, but a few key ones. See, if these things are always accessible, in a tool I’m already using all day, I think I’m more likely to idly scroll through and do several quick reviews, and potentially cross some things off. This is definitely the big variable in this new system, and I’m waiting to see how it feels. So far, so good.

Drafts doesn’t have line spacing controls, and one of the other things I wanted was a little more padding in the list views for ease of reading while I scan quickly. So I added a very basic Unicode character that creates a little bit of space between lines, allowing for a nicer view. I added that to an action key, and made an action list to send the draft to the right list.1 This is also good because I can filter against that same Unicode character, and keep things where they belong, keeping my inbox cleaner and actionable.

Within the lists themselves, I can use the native link mode and line re-ordering functionality Drafts has to move items around (or delete them when complete) or view a URL I add to a task. Works pretty well.

But what happens if I have an item in this list that I decide I need a nudge for? I took that same Workflow action I’d built, and modified it slightly to take a selected line of text from Drafts and send it through the same flow. It kicks it over and runs the same super fast steps and dumps it into Reminders for me, to ping me at some future point.

So I’ve covered basic lists and the escalation point where I need an alert to move something along. I also mentioned Slackbot. My love for Slack is well-documented at this point. I’m always looking for different ways to use it. I decided to try using Slackbot for a certain class of nudge that is absolutely not mission-critical—one that I didn’t feel like seeing in a list every time I opened Reminders—as a test. So I have a handful of recurring reminders I’ve asked Slackbot to yell back to me every now and then.

I have a “home” list of stuff we need to do around our house. Totally not urgent, has no time sensitivity. Every Saturday at 9am, Slackbot goes “hey check your home list and see if you can do anything today”. I don’t need to mark anything as done, and if I want to hear about it again, I can defer the reminder for later or the next day. This is only for stuff I kinda don’t really care about, but still want a poke for occasionally. So far, so good. And you can review what you’ve told Slackbot to track with a simple /remind list slash command. I’m still exploring this one, but it’s been fun so far. I’m currently trying to think of other little nudges that I don’t necessarily need to take action on, but that I’d like to see now and again.

That’s pretty much it for now. For… now. Every time I change this system up, I feel like I’m losing my mind a little more, but I also feel like in restructuring everything, I keep learning about what’s important to me at different times in my life. And I’ve decided that this is my hobby. I really do like playing with these things. I have almost no free time, and a busy work and family life, and this stupid crap actually makes me happy. It’s not getting in the way of doing stuff, and that’s the important thing.

So yeah, that’s this month’s experiment. I’ll let you know how it goes.

  1. And naturally, Tim improved it by combining everything into one action, so if you want to play with this stuff, just use his instead. It’s tight. 

An update on how I’m using my private Slack team.

Almost a year ago, I began using Slack by myself, having created a private team with a bunch of purpose-based channels. If you want to know more about how that experiment started, check out that post.

People ask me from time to time if I’m still using it, and the answer is a resounding “yes”. In fact, Slack continues to improve and offer great integrations with lots of other services, and it’s even easier than before to send information into a Slack channel from almost anywhere. It’s blossomed into an indispensable organizational tool that I spend a great deal of my day in, browsing, working, and pushing information into and out of the team.

The addition of Safari View Controller to the app has made a lot of these things I’m pulling in faster to access, and provided a more centered experience. I’ve refined my channels a little bit since I started, and added some new ones, centered around other topics of interest.

Here’s my current roster.

#alerts – high priority notifications, Google alerts I’ve set up for various things,1 and I watch a specific Dropbox folder for collaboration alerts, since they usually show up a few days late or not at all.

#blogposts – each time I post something, the link to that post is dropped into this channel. Mostly just a quick reference if someone asks for one.

#clipboard – multi-device snippets and pasteboard sync. Still love it and use it constantly.

#daily – this is a new thing I’m trying. I’ll explain in a minute.

#deliveries – I mostly just buy things on Amazon, so I don’t use this all that much, but I will occasionally throw a tracking number/link in here if I need to refer to it, eliminating the need for a dedicated app.

#ebay – if I’m searching for something, it pops up in here as it appears on eBay.

#edc – RSS entries on cool gadgets from I have a problem with small tools, and this is how I indulge myself.

#home – I have some shared lists in Wunderlist with my wife, and I get the update notifications sent here.

#photo – I have a few different RSS feeds pointed here, with the simple goal of seeing nice things on a semi-regular basis. Currently, NASA’s photo of the day (via IFTTT), and Unsplash (love this site.)2

#pricedrops – alerts on app sales from MacStoriesDeals and AppShopper.3

#reading – this is my “read later” channel. I toss random links I plan to read here and come back to them whenever.

#rss – I keep a small collection of low-volume feeds that I want to ensure I read each day, so they don’t get lost in the din of other news and the RSS combing I do for work. Blogs by friends, and a few other sites I enjoy.

#snippets – a channel that just holds blocks of text, links, images, etc. I may use frequently or not so frequently. I don’t use this channel all that much, but I like that it’s here.

#starwars – a channel devoted to Star Wars news, articles, and general nerdery.

#town – alerts from the local police department about events, hazards, etc. Supremely–and surprisingly–useful.

#twitter – since effectively abandoning the network on which I used to set fire to piles of my personal time, I created a channel for a handful of accounts that I’d still like to see updates from, without subjecting myself to the misery funnel that Twitter’s become in many ways.4 I also get notified here if someone mentions me, or if certain search terms hit a match.

#video – think “read later” but for stuff you’d watch. YouTube links, etc.

#weather – forecasts and severe weather alerts.

#workflow – a channel devoted to iOS automation, piping in new items from r/workflow and the Drafts Action Directory as they appear. I think I might have a few other things pointed here as well too.

#yankees – news and info on the baseball team I grew up with.

So that’s the current run, and I’m still thinking of new ones.

Which brings me to the idea behind #daily. I have a pretty standard routine (I’d imagine many of us do at this point) of waking up, grabbing for my iPhone, and beginning the Early Morning Badge Clear Game. What often ends up happening however, is that I get into my work inbox, or start reading something I don’t have time to finish in the news, or whatever. You get the idea. The #daily channel was supposed to be an experiment to collect things that I would definitely want to see first thing in the morning, all in one place, give me a jump on my day, and get me mentally prepared for what I need to do–quickly.

The first thing I did was move the morning weather forecast from #weather into this channel, since I always want to see the forecast for the day first thing in the morning. Then since I’m old and can’t always stay up late anymore because kids are soul vampires being a parent of small children can often leave one very tired, I sent the RSS feed for Meh in there, so I can see what stupid thing they decided to sell overnight. This doesn’t work so great for when they have those freakout sales on Fukubukuro boxes of nonsense, but since they’re tweaking the way they do things, may prove more useful to me as time goes on.

But what’s really useful is seeing what I need to focus on that day. My tasks, calendar, etc. all shoved into a nice little summary. A daily brief. That’s where my mad scientist friend Tim comes in.

We’ve been going back and forth on this idea, and we’re in the middle of creating a Workflow5 that will take a whole bunch of personal information (calendar, tasks), add a field for impromptu notes, and throw the weather forecast in for the day, format it in a decent way, and send it directly to Slack. I do this before bed, and the next day, I just scroll up and read through the brief I sent, and then anything else that wound up in the channel overnight. I’m thinking about maybe using Workflow to insert some news headlines6 and other things that can get my brain going while I’m laying in bed, wishing I was still asleep.

Tim has done a lot of work tweaking this idea and building functionality into it, so check out his post. He’s got a bunch of explanation and links to multiple variations on the Workflows.

I’m really into this daily briefing idea. It’s new, and I think it has some legs. I plan on exploring it a lot more.

There’s a theme throughout my use of Slack, and my ideas for what I can do with it, and it’s similar to how I think about Workflow. I’m most interested in using these tools to either a) pull information to me in some useful way so I don’t have to look for it, or b) replace a single-use app of some kind with a similar and (hopefully) comparable set of functionality. Those two use cases continue to drive my experimentation with both apps, but primarily with Slack. Using dedicated channels in an app I already have installed, I can replicate the primary functionality of a handful of small apps that I would have otherwise installed. Will it do everything those apps do? No, not by a long shot. But for the major use case(s), it’s almost always good enough, and that continues to drive me to think of other ways to extend it. The more I use it, the more I want to use it, and find new ways to do so.

The other thing I’ve come to enjoy is the separation of topics of my interest (or functionality) by channel. Instead of an RSS app with a bunch of feeds in folders, I can send different feeds to different channels, and mix that content with other notifications and integrations to create a new experience. This level of flexibility is what gets me really excited about continuing to explore the tool and talk to other people who are thinking along similar lines.

Slack has become an integral part of my day, and continues to deliver a ton of value for me on a personal level well outside of its intended business-based use cases. Having a team all to myself is really fun, and gives me a great outlet to fiddle with iOS automation and web services without too much fussing. I’ve seen other people exploring this kind of thing too, and they’re doing some great things as well.

If you’re doing something cool with Slack outside of work, I’d love to hear about it.

  1. You can create an RSS feed for a Google alert and then use Slack’s RSS integration to get it into a channel. 
  2. If you have any other suggestions for things that send nice pictures, please do let me know. I love this channel and want more of it. 
  3. IFTTT has a channel that does this too, for AppZapp, but I found it to be too high volume (even with my tweaking) and not relevant to my general interests. YMMV. 
  4. I’m still way happier not being there, in case you’re wondering. 
  5. I had the idea, Tim is actually doing all the heavy lifting, because he’s like, WAY better at Workflow than I am. 
  6. But if I’m being honest, this almost sounds like a terrible idea, because it’s usually just more misery, and I can do without that first thing when I get up. 

Dalliances and deviations.

So I returned my iPhone SE.

I know, I know.

I was so into it. Last time I talked about it, my mind was made up, I was forging ahead, I had everything I needed and my resolve was strong.

To be honest, it was a great few weeks. I really like that phone a lot. It is an incredible, compact, able little thing. And I would absolutely recommend it to anyone who asked about it. There is absolutely nothing wrong with that phone. I truly adored it while I was using it.

But after watching the WWDC keynote, my mind started wandering. Although I wasn’t much into 3D Touch this time around, it seemed to be extending in pretty interesting directions. The iOS 10 UI made me pause too. I looked at the changes to layout, fonts, and other elements and realized that while it would work on a smaller screen, it wasn’t designed for a smaller screen.

That’s when it hit me: going against the grain of whatever direction Apple is moving in is not a great idea.

I started to realize that if I wasn’t using the de facto hardware (read: 4.7″ and up), I was not going to be getting the best experience. The changes coming to iOS are built for new hardware, with a typical inclusive nod to the previous year, making the update almost fully accessible, minus whatever secret hardware features are lurking, waiting to be revealed in the fall.

Most importantly, I wasn’t planning on buying a new phone this fall, and even if I was, I couldn’t see Apple refreshing the 4″ size so soon, if at all. I’d like to think that it caught them a little off guard, given that it was a bit hard to get one if you were just strolling in to a store for a while there. Tim Cook even noted that the demand was “much beyond what we thought” during the Q2 earnings call.

Still, the phone I had wasn’t able to take advantage of all of iOS today, let alone tomorrow. So I made the call to go back up to the 6s, and that was that.

But like a pre-teen romance at summer camp, I’ll remember the few weeks we had together fondly. Preferably against an 80s-style montage of Peter Cetera and soft-focus shots of me holding the phone wistfully.

The similarity of differences.

Google held its annual I/O conference recently, and unveiled some extremely interesting developments for the year to come. Focused ever more heavily on data processing and machine learning, its AI initiatives are being inserted into many of their products, and creating some new ones in the process.

One of the most notable new additions is Google’s Assistant, which replaces the Google Now functionality. Available throughout Android and new products like Google Home, Assistant will use context to present you with relevant information across many apps and services, allowing users to have a more fluid conversation with their devices, using the natural language patterns they’d ordinarily use talking to people as opposed to specific syntax queries.

Quite honestly, it’s very impressive stuff. I watched the I/O keynote in its entirety this week when I found some time, and I was blown away by some of the things Google is doing, right now, today.

I know a lot of people who enjoy it and use it daily, but for me, Siri has been inconsistent at best, and infuriating at worst. I can attempt the same, simple operations on different days and get wildly different results. Features have been added over the past few years, and on paper, it looks terrific. In reality, it is a crapshoot as to whether or not the small task I need to perform will actually get done in any possible way that would be faster than me using my phone manually. Using it on the Apple Watch is an abject nightmare. Your experience with it might have been nothing but unicorns prancing through fields of wishes and dreams, but it’s a broken system as far as I’m concerned.

Consistency is a huge part of good user experience. If, as a user, I have doubt, or reservations of any kind that the thing I need to do isn’t going to happen the way I expect or want it to, that creates friction. Friction eventually erodes trust, and without trust, I cease to be able to do the things I want in the way I want them done. I’ll find another way.

Siri has long struggled to mature under Apple’s development since the technology was acquired several years ago. I’m sure there are many, many good people working on it, and it pains me to feel the way I do and say these things, but it is simply not something I enjoy using–or use at all for that matter, anymore. There’s been quite a bit of talk lately about Apple’s ability to deliver compellingly (and consistently) in this new, shifting, data-driven landscape. Now famously having taken a stance in favor of localizing personal data to the device and protecting it in every way possible (a stance I am quite fond of), lots of questions as to whether or not the company is even prepared to meet this challenge–one that Google has been tackling for many years now–have arisen.

So back to Google.

They’re pushing forward with machine learning, using massive amounts of collected data–data that Apple has said it won’t take and doesn’t want–to create entirely new user experiences. The more it works, the smarter it gets. In the aggregate, all this data and use strengthens the product and allows users to do more things. It’s not an app, it’s an entire layer within the OS, working around what you’re doing with your device, affording you additional skills and options.

Earlier this week, prior to watching the keynote, I was having a conversation with some friends in Slack. Using my high-level glances at what Google was doing, and without really thinking too deeply into it, I said the following:

AI/bots may or may not be the future of computing. But data analysis and the kind of power Google has with those capabilities most definitely is.

That’s where Apple can’t catch up. This isn’t about phones. This is about what software is becoming and where the things we do with software go.

And I talked at length about why I thought this was true. I wasn’t spouting apocalyptic proclamations about Apple; they could set fire to piles of money today, every day for months, and still be in better shape than almost any other company on Earth. But I did express some real concern for the platform I enjoy and prefer not being able to keep up, and how the tradeoffs Apple is making to keep users safe (good) could potentially preclude it from delivering more compelling and timely experiences that people will come to expect from their devices (not so good).

Then I watched the keynote.

What became apparent to me, seeing everything myself and hearing the Google presenters talk about the technology, was that Google and Apple aren’t even competing in the same space anymore. Both companies are engaged in selling mobile devices, but they’re coming at personal technology from such different perspectives, they’re almost not even comparable. A few years ago, it seemed like the companies were at odds on the same field. But they’re not even playing the same sport.

If we’re going to distill it down to a focused, philosophical difference, I think it might look like this.

Apple’s world centers on hardware. It designs and builds amazing and transformative devices. Software is paired with hardware, and the integration points are tight, able to take advantage of hardware optimizations and tuning in crazy ways. Apple’s general perspective today on data is that they don’t want to know certain things, and want to obfuscate others. It’s a very individual-centered and -minded approach.

Google is all about that data. It eschewed hardware for its mobile OS initially, insisting that other companies provide it, following the Microsoft model of the recent past. It’s edged toward unifying software and hardware in a way similar to what Apple does, but doesn’t seem to be interested in pursuing that to its logical end. Hardware is a vehicle for software and data, passing in and out.

Apple and Google, in the eyes of the general public and many tech bloggers, have been at war for many years, and in vague terms, both companies sell fancy mobile phones. But the implications of those businesses are so far beyond the face value of what we see. And what I’ve realized is that they aren’t zero-sum or mutually exclusive. What I’ve come to understand is that the more the two companies seem to have been battling, the more the individual directions of each company become unassailably concrete.

Let’s use healthcare as an example, since that’s been the focus of segments in both companies’ recent presentations.

Apple: ResearchKit and CareKit. Centered around individuals, reporting personal data. Assembling tons of it, and allowing for better personal follow through on long-term treatment, and more individualized reporting for research purposes. Gathering of this data is done through traditional channels, but by allowing users to have agency in these processes, Apple affords people the ability to contribute to a large data set, but safely remain an identifiable component variable.

Google: machine learning to aggregate data against the treatment of extremely difficult ailments (diabetic retinopathy was the example presented in the keynote). Very few doctors can detect it accurately, and it’s very hard to do right/well. And this small number of doctors can’t be everywhere at once. But put enough data into a machine and it can pattern match the very intricate details–perhaps better than people, and everywhere at once (since people can only be in one place at a time). Throw incomprehensible amounts of information at an enormous amount of computing power and basically brute-force a treatment protocol that functions better than humans ever could.

Two fundamentally different approaches, two similar goals.

It’s a very interesting and important time in personal technology. Data moves through our lives like air. We want to protect it (some of us, anyway), but we want the value that sharing it can provide us. We want the future we were promised in our childhoods, but the changes we find occurring around us can be discomforting. This kind of change is everywhere, and it continues to move like perpetual motion, unstoppable. It’s beautiful and frightening. But it is inevitable.

I’m delighted that Apple wants to protect my information and is loudly standing up to the degradation of that idea in public and within the legal system. They may even be able to pull off the things I’m hoping for, without the compromises I’m looking to avoid. I’m also really excited to see what Google can actually do to advance the entire industry and provide new ways of solving serious problems. I think there are a lot of ways that these two approaches can exist together, in complementary layers, that can give us more of the future we’d hoped for. I’ve been becoming increasingly jaded about technology in the past few years, but I feel like I’ve been shown possibilities this week that may set me back in the other direction. Of course, there’s still time for things to go horribly awry.

The world will create a narrative of opposition because our nature is to set forces against one another. I no longer see this as a competition. And along with things like VR (which I have become obsessed with, in terms of non-gaming applications), for the first time in a while, I have real hope for things beyond my whatever my next phone might be.

That feels really good.