WWDC 2017 Wish List

Tomorrow, Apple will host their annual World Wide Developers Conference. Only Tim Cook knows for sure what they’ll announce, but I’ve got a long wishlist. Here’s what I’d like to see:

Siri Speaker

This is the hot one getting the most buzz this year. It’s been around the rumor mill for a while now, but the time seems right for the announcement. Amazon pioneered the category with the Echo, and continues to push the state of the art. Apple will be able to grab a big chunk of the market based solely on their brand loyalty, but to beat Amazon, Siri will need to get a lot smarter.

In a nutshell, I want Jarvis from the Iron Man movies. A super-smart assistant that knows virtually everything about me and the world around me. It remembers the things we discuss. It learns over time. It can control the environment around me, and it makes my life easier.

Siri is a long way from being Jarvis. But for Siri 2.0, I’d like to see a lot of incremental improvements:

  • Speed and Accuracy. Siri needs to work every time – with no lag – and understand a wide variety of voices without a lot of training.
  • Deeper Integration. Today, Siri still feels limited in ways that seem arbitrary. For example, she can read me an unread text message that came in an hour ago, but can’t re-read the one that I looked at 5 minutes ago. Why? If Siri has access to my messages, calendar or email, why limit it? I want to be able to say “Read me the last message from Shannon” or “Read me the email Scott sent yesterday”.
  • Grammar Awareness. If I say “Ask my wife if I should bring home dinner”, Siri should add a question mark at the end of the sentence. I shouldn’t have to say “Ask my wife if I should bring home dinner question mark.” Same goes for commas, colons and periods.
  • Individual voice recognition. Unlike Amazon, Apple supports relationships between their user accounts. Thanks to Family Sharing, my wife, kids and I can share things like apps, music and movies while retaining individual notes, mail and calendars. Siri 2.0 should recognize the unique voices of each family member, and manage their information accordingly.
  • A Screen? This one is tough for me. I love that you can do everything on the first-gen Echo by voice. By contrast, Siri often just says “Here’s what I found …” and dumps a paragraph on the iPhone screen. That’s not very useful when you’re working hands free. My fear is that a Siri Speaker with a built-in touchscreen will let Apple cop out and continue showing text rather than reading me the answer I want. On the other hand, maybe there are features I’m not thinking of that are only possible visually.

Apple TV

A year and a half ago, Apple released the 4th generation of the Apple TV. It featured an app-centric approach to content consumption and a (limited) unified voice search. It was a good incremental step forward for the time, but now Apple needs to do more. A faster processor and 4K support are obvious feature bumps, but I’m hoping for a lot more:

  • Siri 2.0. Anything the new Siri speaker can do, this box should be able to do as well.
  • First party game controller. Yes, this is something everyone has asked for since day one, but I’m still hopeful. And since I’m asking, please make it as fantastic as the PS4 controller.
  • Amazon Video. It’s the last major hold out. Just make the deal.
  • First run movies. This may be daydreaming a bit, but if anyone can negotiate a deal, Apple can. I want to rent it and watch movies that are still in the theater. Charge me $40, I don’t care. I want to watch brand new movies at home, not in a theater.


The software that drives the iPhone and iPad now has a version number in double digits. It’s time to start making some serious productivity enhancements and user improvements.

  • Bug Fixes and Reliability Updates. Selfeshly, I would be happy if they did nothing more than just make AirDrop work reliably. I can put my iPhone six inches away from my iMac, and it’s still a 50/50 crapshoot whether I can get them to see each other. That needs to be rock solid, every time.

    While we’re looking at bug fixes, let’s talk about a few other annoyances:

    • AirPlay. I have an HD phone, an HD TV, an HD AppleTV and 802.11n. Why does AirPlay fail half the time, and look like a TV show from the 50’s the other half of the time?
    • Handoff. I can copy text on my Mac and paste it in my iPad two seconds later – no problem. Try doing the same thing in reverse? Copy text on my iPad and try pasting it on the Mac? Never works. Why???
    • Messages. Sometimes my iPhone and Mac are completely in sync. Other times it’s like they’re two different accounts. No idea why.
    • iCloud Drive. Let’s match features with Dropbox. Shared folders and public links would be a great start. Also some level of indication when things have synced and what’s left to do.
    • Storage. How about getting 128GB of storage when you buy a 128GB iPhone instead of a measly 5GB?
  • Drag and Drop. We’ve already got split-screen apps. Please let us easily share between them.
  • Split Screen. While we’re on the subject, please just do what Federico Viticci demonstrated in his mockup video.
  • Home Network. Please don’t ask me to unlock my devices when they’re on my home network. I only need a passcode when I’m away. At home, please give me the option of dropping the security in favor of speed.
  • Vector Graphics. This applies more to developers, but in this age of multiple screen sizes and pixel densities, it sure would be nice if I could use an SVG for my icons, backgrounds and images rather than including multiple copies of every image at different sizes.


This platform is the oldest Apple product, but it still needs some TLC. Mostly just touch-ups to keep pace with iOS:

  • Messages. I’m not a big fan of all the apps and stickers that got added to Messages on iOS last year, but I know a lot of people are. Apple should keep both platforms in lock step in terms of features.
  • Notes. This year I took the plunge on notes. I ditched Evernote and just started using Apple Notes for all my work … well … notes. So far so good, but there are a handful of features it really needs. Tags and attachments are the most obvious. Historically, this is the type of app that Apple will revamp one year, then never touch again for ages. I really hope that’s not the case here.
  • Photos. It would really be nice if sharing in photos knew about my family and made it a lot easier for all of us to have one large pile of photos instead of 4 separate groups. Letting me put my Photos store on a NAS instead of the local drive would be nice too.
  • Mac App Store. Wow. Great idea, but its languished for about 5 years. Time to rewrite, reinvest and  complaints users have had for years.

Apple Pay

I love Apple Pay. Honestly, there are just two things I’d like to see improved this year:

  • Send Cash. Let me send money to any other Apple Pay user ala Square Cash or Venmo.
  • Pervasiveness. This is a tougher one. Apple has done a fantastic job of getting banks onboard, but retailers are still lagging. They need a major PR push to get more stores to adopt and promote the service.

That’s a long list, but all of these seem achievable. Apple is on top right now, but they absolutely cannot rest on their laurels. They need even more focus on every aspect of every platform. Keep pushing!

How to display a PDF in React Native

As I move up the learning curve on React Native, I thought it would helpful to share a few tips and tricks I’ve learned.  One of the more challenging things I’ve come across was how to show a PDF file in your app. I couldn’t find any tutorial to demonstrate how to do this across both iOS and Android, so I thought I would write my own:


This one is fairly easy. The WebView in iOS has native support for PDF rendering. It’s just a matter of tell it where to find your PDF:

render: function() {
  return <WebView source={{uri: 'Your.pdf'}}/>

The one trick part is that you need to include Your.pdf into your project in Xcode and make sure it’s added to your build target.

Just copying it into your React Native project folder isn’t enough. It has to be part of the Xcode project itself.


This one took a bit more work to figure out.

It appears that Android did not provide a native PDF viewer until version 5.0 (Lollipop). To provide a solution with broader support for older Android devices, you will need to make use of three key techniques:

  1. Pull the PDF out of my APK bundle and store it in the files folder for your app. This Stack Overflow answer was very helpful in accomplishing this:

Android: How to copy files from ‘assets’ folder to sdcard?

I tweaked the code a bit so that the file wasn’t going to an sdcard but to your app’s files folder. Here’s what to add to your MainActivity.java file:

protected void onCreate(Bundle savedInstanceState) {

  AssetManager assetManager = getAssets();
  String[] files = null;

  try {
      files = assetManager.list("pdf");
  } catch (IOException e) {
      Log.e("tag", "Failed to get asset file list.", e);

  if (files != null) for (String filename : files) {
      InputStream in = null;
      OutputStream out = null;

      try {
        in = assetManager.open("pdf/" + filename);

        File outFile = new File(getFilesDir(), filename);
        out = new FileOutputStream(outFile);
        copyFile(in, out);
        Log.e("tag", "Copy was a success: " + outFile.getPath());
      } catch(IOException e) {
        Log.e("tag", "Failed to copy asset file: " + "pdf/" + filename, e);
      finally {
          if (in != null) {
              try {
              } catch (IOException e) {
                  // NOOP
          if (out != null) {
              try {
              } catch (IOException e) {
                  // NOOP

private void copyFile(InputStream in, OutputStream out) throws IOException {
    byte[] buffer = new byte[1024];
    int read;
    while((read = in.read(buffer)) != -1){
      out.write(buffer, 0, read);

Make sure to place your PDF file in the assets/pdf folder under android/app/src/main

  1. Next you’ll be using the react-native-fs package to get the absolute URL to your PDF, which is now in the files folder:
    var RNFS = require('react-native-fs');
    var absolutePath = RNFS.DocumentDirectoryPath + '/Your.pdf';
  2. With all of this in place, use react-native-pdf-view to actually load and display the PDF:
    import PDFView from 'react-native-pdf-view';
    render: function() {
      var absolutePath = RNFS.DocumentDirectoryPath + '/Your.pdf';
      return <PDFView
        ref={(pdf)=>{this.pdfView = pdf;}}
        style={ActharStyles.fullCover} />

Not exactly dirt simple, but it works well enough.

So there you go!  You can now display a PDF file in your React Native project on either iOS or Android. FYI, I also wrote this up as an answer to my own Stack Overflow question. If you have suggestions for how to improve the technique, you may want to post them there.

WWDC 2015 Predictions

We’re only a week away from WWDC, so it’s time to speculate on what we’ll see:

Apple Watch – This one is a no-brainer.  Expect the Apple Watch to be the star of WWDC 2015.  We already know that Apple will announce a native SDK for the watch, so expect to see a parade of featured partners showing off their native apps.  I suspect we’ll see a few new watch band announced during the keynote, and perhaps even a couple more Disney themed watch faces as well (Minnie?  Donald?).

Apple TV – Rumors about a new TVKit exploded across the blogosphere a few weeks back, so I expect that it will be one of the big announcements at WWDC.  Hopefully this will mean full-blown native TV apps and not just WebKit shells that just grab content from out on the Internet.

What I would really like to see is Apple make a major commitment to this platform, including:

  • A comprehensive offering for cable-cutters.  Something that addresses local news, live sports, all of the popular network shows and maybe even gives equal footing to new-media offerings like popular YouTube channels and video podcasts.
  • Gaming.  Apple has systematically put themselves in position to take on Sony, Microsoft and Nintendo (remember them?) in the console battle.  They’ve got robust development tools (Xcode), a distribution platform (the App Store), gaming frameworks (SpriteKit, SceneKit and Metal), hardware controller support (GameController Framework), a match-making service (Game Center) and tons of developers.  All they really need is access to your television and headset support.
  • New hardware.  Imagine a new box with an A8 processor and a half terabyte disc.  It’s got the app store, all your favorite movie, tv and streaming content, and a ton of games from all the big name publishers.  Sound compelling?  Well here’s how it could get better – Bluetooth game controllers.  Maybe not bundled with the box itself, but $30 or $40 extras.  Now you can play games with your iPhone as the controller if you wish – giving you all the touch and swipe gestures you’re already used to – or you can have the joystick and shoulder button gaming experience that hard-core gamers demand.  That’s an offering that I think millions of people would love.

Beats Music – Not exactly sure what to expect here, but probably something like a Spotify clone with Apple / Beats branding.  This is Apple hedging its bet.  You want to buy music?  We’ve got you covered. You just want to stream it?  We’ve got that too.

HomeKit – I wouldn’t be shocked if this one drops out of the keynote, but it’s been a year since it was originally announced without much in the way of progress.  It could be as simple as a bunch of partners showing off their gadgets with HomeKit support, or maybe there’s a hardware hub that ties everything together.  It might even be the new Apple TV box – further adding to it’s utility.

iOS 9 – This prediction is about a risky as saying that the sun will rise tomorrow.  I’m sure there will be one or two snazzy new features to keep us talking, but mostly I expect a few visual flourishes and a lot of bug fixes and performance improvements.

OS 10.11 – Second verse, same as the first.  As with iOS 9 I suspect this will be a lot of tweaks and adjustments (WiFi anyone?), but nothing too Earth-shattering in terms of features.  Just keep the motor running.

What don’t expect I to see?

iPad Pro – This is an intuition thing, but I just don’t see a larger iPad being released yet.  The Apple Watch is the bell of the ball right now.  I suspect that Apple will want to let it breathe a bit before introducing another new portable device.  If anything, they may do another hint but don’t reveal move like they did with new iPhone sizes last year – reveal iOS features that would be useful in a huge new iPad (side-by-side apps?), but not actually show off the physical hardware yet.

So there you go, my predictions for WWDC 2015.  Feel free to bookmark this page and tell me how foolish I was once the announcements have been made next week.  Regardless, it should be a lot of fun to watch!

Apple Shows Its Metal

Inside Metal: How Apple plans to unlock the secret graphics performance of the A7 chip

Recall that when Apple first introduced the iPhone 5s’ advanced A7 chip, it was first greeted with media skepticism wondering if it was even “truly 64-bit,” followed by a communal (and wholly incorrect) story that suggested 64-bit mobile chips didn’t matter until devices had “4GB of addressable RAM,” and that, in the most extremely ignorant coverage, the A7 was “marketing fluff and won’t improve performance.”

We’re only just beginning to see the fruits of Apple’s purchase of P.A. Semi back in 2008. For $278 million (or 1/70th the price Facebook paid for WhatsApp), Apple was able to take control of its technological roadmap and ensure it would have the most power-efficient CPUs in the mobile industry.  With the help of Metal, they’ve now shown that the A7 might be the fastest GPU in the industry as well.

The A7 is both literally and figuratively a game changer.

Samsung paying for favorable product reviews

Samsung payola in action

The close relationship between Android licensees like Samsung and journalists covering the consumer electronics industry has grown increasingly sketchy. During this year’s Consumer Electronics Show in Las Vegas, non [sic] other than the Associated Press inked a deal with Samsung that allowed the Korean conglomerate to tweet out sponsored messages as part of the official Associated Press news stream.

Sounds ethical…

CNET reportedly accepted funds from both Samsung and Microsoft to republish and promote positive reviews of their products, including a gushing CNET “editor’s choice” that called Samsung’s Galaxy S4 the “everything phone for (almost) everyone.”

Paying for good reviews is a hell of a lot easier than just making products consumers love.

The iPhone’s Place in the Fortune 500

The iPhone Is a Bigger Business Than Coca-Cola and McDonald’s Combined

iPhone sales in the last year exceed all revenue to Microsoft, Amazon, Comcast, or Google. The iPhone alone outsells Coca-Cola and McDonald’s, perhaps the world’s two most famous brands, combined.

In case anyone still doesn’t understand how important Mobile is to the future of the web, take a look at these graphs.  If the iPhone were spun off into its own company, it would be #26 on the Fortune 500.

Wow, you’re a real PC.

Microsoft Commercial

I think Microsoft vastly overestimates the perception of the term “PC”.

In their latest commercial, Microsoft snarkily has Siri saying “Wow, you’re a real PC” to the competing Windows tablet.  I suspect most of the general public would associate the term “PC” with complication and frustration however.  A PC is that clunky thing that never works like you want it to.  That has problems printing the document you need right now.  That runs slower and slower day after day.  That constantly nags you to update this or confirm that.

Is that really the image you want for your new product?

I think Microsoft is on the right track by trying to show the strengths of their platform versus Apple’s, but the folks in Redmond still have their heads in the 90’s.  The PC is no longer cool or innovative.  It’s the old clunker we’re all buying tablets to replace.

What is Microsoft’s mobile strategy?

Answer these three simple questions:

  1. What is Apple’s mobile strategy?

    To boost their hardware sales by making the worlds best mobile devices and software.

  2. What is Google’s mobile strategy?

    To boost their advertising revenue by featuring their services on as many mobile devices as possible.

  3. What is Microsoft’s mobile strategy?


Not so easy, is it?

I’ll make it a bit easier.  Microsoft does so many things that it’s hard to describe their motivations in one succinct statement.  Let’s break the company in to pieces:

What is Microsoft’s Mobile Cloud strategy?

To provide the best backend computing platform for mobile developers.

This was fairly easy.  By most accounts, Windows Azure is a solid platform for supporting mobile developers.  It has strong support for Android and iOS, and it leverages open source software like Linux, PHP and NodeJS.  In other words, it’s not a typical Microsoft “.NET or get out” approach.  Well done.

What is Microsoft’s Mobile Office strategy?

To create the best office productivity software for every most a few mobile platforms devices.

Ugh.  This should be the easiest question to answer, but it’s not.  The Office division of Microsoft should operate like an independent company.  Their goal should be to create the best productivity suite available anywhere.  On Windows.  On Mac.  On Linux.  On iOS.  On Android.  On Windows Phone 7 Mobile .NET Enterprise SP4.  On every platform with a significant marketshare.

Office Everywhere.

Instead, their motto seems to be “Support Windows, and then make a half-hearted attempt at anything else”.  Office on the  Mac?  It’s a pale imitation of the full office suite.  Office for iPhone.  A joke.  Office for Linux?  Android?  *crickets*

The Office division clearly places Microsoft’s interests ahead of consumers.  They’re starting to dabble with Office on the web – which may be a long-term solution to cross-platform support – but it certainly has the feel of a revenue play (“our existing customers will pay every month forever!”) more than a way to support millions of new customers using Android.

What is Microsoft’s Mobile Windows strategy?

To create the best phone operating system for our mobile partners to leverage.

To create the best phone operating system for Nokia to leverage.

To create the best tablet operating system for our desktop partners to leverage.

To create a whole new version of Windows specifically designed for the tablet environment.

To see if we can cram our desktop operating system on to a slim PC that kind-of looks like a tablet.


Microsoft’s “strategy” for Windows in the mobile space feels like a ship without a rudder.  They can’t seem to decide where the industry is headed or what their customers actually want.  Instead they’ve released a slew of reactionary products, changing their focus from mobile device makers to desktop device makers to doing it all in-house.  Refining your strategy over time is a wise business approach, but Microsoft seems to change theirs every time the wind blows.

The Microsoft of 2013 looks like a company that can’t believe how quickly things got away from them, and aren’t really sure what to do about it.  Without strong leadership and a cohesive plan for the road ahead, they seem unable to decide on a course of action that will keep their brand relevant in the mobile age.

One thing is clear:  What they’re doing is not working.

Office for iPhone: Microsoft hits the panic button

On June 10th, Apple announced iWork for iCloud, a web based suite of tools that allow users to create documents, spreadsheets and presentations from their browser. It works on iPhones, iPads, Macs and Windows computers.

On June 11th, Microsoft announced Office for iPhone, an app that allows iPhone users to create documents, create spreadsheets and view presentations.

In other words, Microsoft hit the panic button.

Panic button? Surely you’re being melodramatic Bryan?

No, I’m not, and here’s why:

  1. Office for iOS has been rumored for a long time now. Journalists claimed to see it running on an iPad more than a year ago. Releasing it a day after the iWork for iCloud announcement is a knee jerk reaction. It’s Microsoft realizing that iOS users don’t really need Office if they’ve got a competent alternative. Office may dominate the desktop landscape, but the mobile world offers a chance to break that monopoly. A serious competitor like Apple or Google could sweep up those millions of users on their post-PC devices and cut the head off of Microsoft’s productivity cash cow. That scares the hell out of them.
  2. Office for iPhone is incomplete. Sure, you can do basic editing of Word Documents and Excel files, but you can only view Powerpoint presentations. You can’t edit them. If this were a strategic product to ensure the future of Office on the mobile landscape, wouldn’t it be feature complete on launch day?
  3. There is no iPad support. Let’s be honest, creating Excel files on your 4″ iPhone screen is a nice parlor trick, but the iPad is where real document creation will take place. So why is there no iPad support on day one? Two reasons:

    First, it’s probably not done. See my bullet point above. Not having PowerPoint fully functional on the iPhone tells us that the iOS office suite isn’t fully baked yet. It’s likely that iPad version just isn’t ready yet, and Apple’s surprise WWDC announcement forced Microsoft’s hand to ship now.

    Second – and perhaps even worse – is that Microsoft has a conflict of interests.

    On one hand they have hundreds of millions of potential Microsoft Office customers using iOS. Microsoft is already losing the mobile war with their devices and operating system. They can’t afford to lose their lucrative grip on the productivity software market too. They need a version of Office for the iPad.

    On the other hand, they have the Microsoft Surface. You might have seen their not-so-subtle ads mocking the iPad for not being a serious work machine. It would look pretty bad if the Office team cut the legs out from under the Surface team by shipping Office for iPad while those commercials are still running.

    The result? Microsoft chose their own interests over what’s best for customers. No Office for iPad. At least not yet.

So where does that leave us? With a company gripped with indecision. They really want to back their own tablet – not Apple’s – but the that pesky iOS market is just too big to ignore. Apple forced their hand during the WWDC keynote, and Microsoft panicked. They shipped a half-baked version of Office in the hopes that they could keep those 500 million iOS customers from standardizing on something other than Microsoft Office.

Half baked ideas are why Microsoft is struggling in the mobile market in general. Office for iPhone is just another prime example.